[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn: Checksum mismatch

From: Garrett Rooney <rooneg_at_electricjellyfish.net>
Date: 2006-09-06 15:47:15 CEST

On 9/6/06, Erik Huelsmann <ehuels@gmail.com> wrote:
> On 9/5/06, Jens Seidel <jensseidel@users.sf.net> wrote:
> > Hi,
> >
> > I have good news. I was able to create a small example which demonstrates
> > the checksum error in Version 1.4.0 (Release Candidate 5).
>
> > I attached a script which shows this error, here is the output:
> >
> > + mkdir /tmp/svn.test
> > + cd /tmp/svn.test
> > + svnadmin create repos
> > + R=file:///tmp/svn.test/repos
> > + svn co file:///tmp/svn.test/repos wc
> > Checked out revision 0.
> > + cd wc
> > + mkdir trunk
> > + mkdir trunk/project
> > + echo 'file 1'
> > + svn add trunk
> > A trunk
> > A trunk/project
> > A trunk/project/file1.old
> > + svn ci '-mInitial version'
> > Adding trunk
> > Adding trunk/project
> > Adding trunk/project/file1.old
> > Transmitting file data .
> > Committed revision 1.
> > + svn move '-mCreated file1' file:///tmp/svn.test/repos/trunk/project/file1.old file:///tmp/svn.test/repos/trunk/project/file1
> >
> > Committed revision 2.
> > + svn copy '-mCreated branch' file:///tmp/svn.test/repos/trunk file:///tmp/svn.test/repos/branch
> >
> > Committed revision 3.
> > + svn move '-mMoved trunk to trunk.old' file:///tmp/svn.test/repos/trunk file:///tmp/svn.test/repos/trunk.old
> >
> > Committed revision 4.
> > + svn mkdir '-mCreated new trunk' file:///tmp/svn.test/repos/trunk
> >
> > Committed revision 5.
> > + svn copy '-mRestore old trunk' -r 1 file:///tmp/svn.test/repos/trunk/project file:///tmp/svn.test/repos/trunk/src
> >
> > Committed revision 6.
> > + svn up
> > D trunk
> > A trunk
> > A trunk/src
> > A trunk/src/file1.old
> > A trunk.old
> > A trunk.old/project
> > A trunk.old/project/file1
> > A branch
> > A branch/project
> > A branch/project/file1
> > Updated to revision 6.
> > + echo 'file 1 (new)'
> > + svn add trunk/src/file1
> > A trunk/src/file1
> > + svn ci '-mAdded file1'
> > Adding trunk/src/file1
> > Transmitting file data .
> > Committed revision 7.
> > + echo 'file 1 (new)'
> > + svn ci '-mManual sync against trunk' branch/project/file1
> > Sending branch/project/file1
> > Transmitting file data .
> > Committed revision 8.
> > + oldRev=7
> > + cd branch
> > + svn up -r 7
> > U project/file1
> > Updated to revision 7.
> > + cd project
> > + svn merge file:///tmp/svn.test/repos/trunk/project_at_3 file:///tmp/svn.test/repos/trunk/src_at_7
> > D file1
> > A file1
> > A file1.old
> > + svn update
> > svn: Checksum mismatch for '.svn/text-base/file1.svn-base'; expected: 'e243bb39c844b3543a7726576c869caf', actual: '0ad777f8c28bdfc866607b87f653b5e8'
>
>
> I have been looking at svn_wc_crawl_revisions2 which drives the
> revision reporter for updates. I must assume the working copy isn't
> marked as incomplete, so that the crawler reports the entire working
> copy. It contains this segment:
>
> if (report_everything)
> {
> /* Report the file unconditionally, one way or another. */
> if (strcmp(current_entry->url, this_url) != 0)
> SVN_ERR(reporter->link_path(report_baton, this_path,
> current_entry->url,
> current_entry->revision,
> FALSE, current_entry->lock_token,
> iterpool));
> else
> SVN_ERR(reporter->set_path(report_baton, this_path,
> current_entry->revision,
> FALSE, current_entry->lock_token,
> iterpool));
> }
>
> But, in case of replaced paths, I think that the driver should call
> reporter->delete_path() for replace-no-history and
> reporter->link_path() for replace-with-history schedules.

That seems reasonable to me, although I don't know nearly enough about
how this stuff works, so take that with a grain of salt...

> There are some oddities wrt replaced paths a bit further down too (why
> don't we ->link_path() for replace-with-history scheduled files
> everywhere? Using set_path implies we want to receive updates from the
> file in the current location...)

It does seem like replacements should be handled specially there...

-garrett

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Sep 6 15:48:57 2006

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.