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

Re: wc in "the future", no error on commit, feature request?

From: geoff <ot0006_at_0x29a.org.uk>
Date: 2005-09-24 14:56:58 CEST

On Fri, 23 Sep 2005 17:18:00 +0100, geoff <ot0006@0x29a.org.uk> wrote:
<snip>
>Further testing reveals this to be a TortoiseSVN issue. When the scenario is recreated
>using a script and the SVN command line client, we see :
>
>svn: No such revision 3
>Sending testwcs/mytest/file1
>Transmitting file data .svn: Commit failed (details follow):
>svn: Base checksum mismatch on 'file1':
> expected: c2ff4b361ea9984f93b6a1e2a5c77a92
> actual: f14c077f10dcaad0ce42856b52cb50f4

No, this isn't a Tortoise issue either. My apologies to the Tortoise devs.

This script illustrates the situation:

---------- start script

#!/bin/bash
set -v

HERE=`pwd`
REPOPATH=$HERE
THEREPO=$REPOPATH/myrepo
WCPATH=$HERE
THEWC=$WCPATH/mywc

rm -rf $THEREPO
rm -rf $THEWC

# step 1
svnadmin create --fs-type fsfs $THEREPO

# step 2
svn checkout file:///$THEREPO $THEWC

# step 3
touch $THEWC/file1
svn add $THEWC/file1
echo "mod 1" > $THEWC/file1

# step 4
svn update $THEWC
svn commit -m "v1" $THEWC

# step 5
svnadmin dump $THEREPO > $WCPATH/dumpofv1

# step 6
touch $THEWC/file2
svn add $THEWC/file2

# step 6a
echo "mod 2" > $THEWC/file1

# step 7
svn update $THEWC
svn commit -m "v2" $THEWC

# step 8
rm -rf $THEREPO
svnadmin create --fs-type fsfs $THEREPO
cat $WCPATH/dumpofv1 | svnadmin load $THEREPO

# step 9
echo "mod 3" >> $THEWC/file1
svn commit -m "bogus v2" $THEWC

# step 10
svn update $THEWC

---------- end script

This produces the output:

[...]
# step 9
echo "mod 3" >> $THEWC/file1
svn commit -m "bogus v2" $THEWC
Sending mywc/file1
Transmitting file data .svn: Commit failed (details follow):
svn: Base checksum mismatch on 'file1':
   expected: d0b7e79d4a6ccfcf328b1d9b4a64279c
     actual: f14c077f10dcaad0ce42856b52cb50f4

# step 10
svn update $THEWC
svn: No such revision 2

If step 6a is commented out we get:

[...]
# step 9
echo "mod 3" >> $THEWC/file1
svn commit -m "bogus v2" $THEWC
Sending mywc/file1
Transmitting file data .
Committed revision 2.

# step 10
svn update $THEWC
svn: Working copy path 'file2' does not exist in repository

The mod3 change to file1 is committed if and only if the base content of file1 lines up
with the contents of the repo.

The situation my users were in was that of step 6a commented: commits proceeded until an
update was performed.

While mildly confusing to userss who don't do an update before a commit, this approach
seems maximally protective of changes in (broken) working copies.

--
best,
geoff
regrettably the email address above will bounce
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Sat Sep 24 15:02:23 2005

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