Hi, I've noticed that git-cvsimport can under some circumstances produce broken repositories. This appears to only occur when using pserver access to the CVS repo; running with a local repo is apparently fine, with all tested versions giving the same repo (master head has same hash for the last commit). In all cases cvsps version 2.1 was used. Repo source: pserver :pserver:anonymous@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/cvsroot/gimp-print local rsync -av 'rsync://gimp-print.cvs.sourceforge.net/cvsroot/gimp-print/*' cvs-backup I've tested with a number of git versions, including git.git as of yesterday: git version repo last commit URI 1.5.5.GIT local a51c479826 git://git.debian.org/git/users/rleigh/gutenprint-upstream.git 1.5.5.GIT (2 failures) pserver bfa6f8248a git://git.debian.org/git/users/rleigh/gutenprint-upstream-broken.git 1.5.5.GIT (no failure) pserver bfa6f8248a git://git.debian.org/git/users/rleigh/gutenprint-upstream-pserver.git 1.5.6.5 local a51c479826 git://git.debian.org/git/users/rleigh/gutenprint-upstream-git1.5.6.5-local.git 1.5.6.5 pserver 6f0950c097 git://git.debian.org/git/users/rleigh/gutenprint-upstream-git1.5.6.5-pserver.git git.git 1.6.0.3.517.g759a local a51c479826 git://git.debian.org/git/users/rleigh/gutenprint-upstream-git1.6-local.git git.git 1.6.0.3.517.g759a pserver 6f0950c097 git://git.debian.org/git/users/rleigh/gutenprint-upstream-git1.6-pserver.git With git 1.5.5 I'm tracking the CVS repo running git-cvsimport every 20 mins from a cron job. A few months ago it managed to botch, resulting in a broken repo (it didn't delete files deleted from CVS). I think this occurs when git-cvsimport fails (I get a perl error, though I'm afraid I don't have the log anymore); running again results in successful completion, but the repo is screwed, I think due to that commit being incomplete or something. This occured twice during the import in the second line in the above table, in this case resulting in missing files (src/cups/i18n.*). Again, I'm afraid I don't have the logs, but I can repeat again if this is not an already known/fixed issue. The repo is quite big, taking several hours to import, so it might possibly be a network connection problem and it's not handling that correctly on failure. However, even when the import comples successfully (line 3), the hash is still the same as line 2 where it failed twice and needed restarting. So, it looks like depending on if I use a local repo directly or remove via pserver, I get a different repo. 1.5.5 using pserver is different to later versions, presumably this is a buggy version because it's broken whether or not I get a failure. Later versions always completed without failure; while the local and pserver using repos differ, they do both seem OK. However, I would have expected identical results, given that they are all created from the same data. The script I used to do the import is attached. Regards, Roger -- .''`. Roger Leigh : :' : Debian GNU/Linux http://people.debian.org/~rleigh/ `. `' Printing on GNU/Linux? http://gutenprint.sourceforge.net/ `- GPG Public Key: 0x25BFB848 Please GPG sign your mail.
#!/bin/bash CVSROOT=:pserver:anonymous@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:/cvsroot/gimp-print CVSMODULE=print HOME=/home/users/rleigh GIT_DIR=/var/lib/gforge/chroot/home/users/rleigh/public_git/gutenprint-upstream.git LOGDIR=${HOME}/log LOCKFILE=${HOME}/gutenprint-cvs.lock AUTHORS=${HOME}/gutenprint-auth #date -R lockfile -2 -r 2 ${LOCKFILE} # If we managed to lock the file if [ $? -eq 0 ]; then # echo "Running git-cvsimport" export GIT_DIR export CVSROOT git-cvsimport -A $AUTHORS -i -v print rm -f ${LOCKFILE} else echo "Couldn't get lock for cvssuck" fi #date -R
andystewart=Andy Stewart <andystewart@xxxxxxxxx> anikin=Eugene Anikin <eugene@xxxxxxxxxx> cpbs=Charles Briscoe-Smith <cpbs@xxxxxxxxxx> daberti=Daniele Berti <daberti@xxxxxxxxxxxxxxxxxxxxx> davehill=Dave Hill <dave@xxxxxxxxxxxxxxxxxx> degger=Daniel Egger <degger@xxxxxxxxxxxxxxxxxxxxx> doctormo=Martin Owens <doctormo@xxxxxxxxxxxxxxxxxxxxx> dpace=David Pace <dpace@xxxxxxxxxxx> easysw=Mike Sweet <msweet@xxxxxxxxx> faust3=Sascha Sommer <saschasommer@xxxxxxxxxx> gandy=Andy Thaller <thaller@xxxxxxxxx> gtaylor=Grant Taylor <gtaylor@xxxxxxxxxxxxxxxxxxxxx> iay=Ian Young <ian@xxxxxxxxxx> jmv=Jean-Marc Verbavatz <verbavatz@xxxxxxxxxx> julianbradfield=Julian Bradfield <julianbradfield@xxxxxxxxxxxxxxxxxxxxx> khk=Karl Heinz Kremer <khk@xxxxxxx> m0m=Michael Mraka <michael.mraka@xxxxxxxx> mbroughtn=mbroughtn <mbroughtn@xxxxxxxxxxxxxxxxxxxxx> menthos=Christian Rose <menthos@xxxxxxxxxxxxxxxxxxxxx> mitsch=Michael Natterer <mitschel@xxxxxxxxxxxxxxx> mtomlinson=Mark Tomlinson <mark.tomlinson@xxxxxxxxxx> nestordi=nestor di <nestordi@xxxxxxxxxxxxxxxxxxxxx> nicholas=nicholas <nicholas@xxxxxxxxxxxxxxxxxxxxx> peter_missel=Peter Missel <peter_missel@xxxxxxxxxxxxxxxxxxxxx> rblancha=Richard Blanchard <rblancha@xxxxxxxxxxxxxxxxxxxxx> rleigh=Roger Leigh <rleigh@xxxxxxxxxx> rlk=Robert Krawitz <rlk@xxxxxxxxxxxx> rwisi=Richard Wisenoecker <Richard.Wisenoecker@xxxxxx> sharkey=Eric Sharkey <sharkey@xxxxxxxxxx> smiller=Steve Miller <smiller@xxxxxxx> spa=Salvador Abreu <spa@xxxxxxxxxxxxxxxxxxxxx> stevek=Steve Kann <stevek@xxxxxxxxxx> tillkamppeter=Till Kamppeter <till.kamppeter@xxxxxxxxx> ttonino=Thomas Tonino <ttonino@xxxxxxxxx> tylerb=Tyler Blessing <tylerb@xxxxxxxxxxxxxxxxxxxxx> uid21630=uid21630 <uid21630@xxxxxxxxxxxxxxxxxxxxx> wiz=Joseph S. Wisniewski <wiz@xxxxxxxxxxxxxxxxxxxxx> wollvieh=Wolfgang Bauer <wollvieh@xxxxxxxxxxxxxxxxxxxxx> zoopa =Pete Parks <zoopa@xxxxxxxxxxxxxxxxxxxxx>
Attachment:
signature.asc
Description: Digital signature