From: Deskin Miller Date: Thu, 02 Oct 2008 14:59:44 GMT Subject: Re: git svn bug? Message-ID: <86d4c5e00810020759n6f64f0acx575a1dede5d7aba8@mail.gmail.com> In-Reply-To: <20081002144916.GA3644@atjola.homenet> On Thu, Oct 2, 2008 at 10:49 AM, Björn Steinbrink wrote: > On 2008.10.02 16:50:45 +0800, Ark Xu wrote: >> Now I got a tough problem which stopping me for any svn related >> operations. There is a file log4j.xml that is somehow strange because >> when I fetch it, i got the following message: >> >> tms-service/src/test/resources/log4j.xml has mode 120000 but is not a >> link at /opt/local/bin/git-svn line 3230. >> M tms-service/src/test/resources/log4j.xml >> >> And then, all the operation will lead to : >> Checksum mismatch: branches/5.3/tms-service/src/test/resources/log4j.xml >> 51031cbb0e1a2e878e4a3836cf0baa9b80a037a5 >> expected: fab6daef9fc355b9342e26047f5d0141 >> got: 0e7e9081d608c80d2de0340ba5cd1600 > > Which git version? And is your /tmp large enough to store that file? I've had issues similar to this when I did Ctrl+C during git svn fetch. Prior to the issue you've pointed out popping up, though, I could compare the repo against another git svn fetch which was not interrupted, and the commits would diverge at some point. When I looked into the commit which diverged, the commit object was present in my interrupted repo, but the diff was empty, while it was non-empty in the other repo. It seems there's an issue with git svn fetch atomically fetching and updating its refs. I've not had time to investigate further, but I certainly want to. In the meantime, I worked around it on initial fetch from a big svn repository by using git svn fetch -r1:n , and increasing n in increments, so it could run to completion without me interrupting it. This was seen using git 1.5.4.3 from Ubuntu. Deskin Miller