[svk-devel] copy->add->copy->move->smerge: File not found error

"Bernhard K. Weißhuhn" bkw at weisshuhn.de
Thu Mar 1 12:45:07 EST 2007


Hi *,

back in June 2006 I sent the following report to the old mailinglist at
openfoundry, and never received a response. The behaviour still exists
in 2.0:

> we just sumbled upon the following error in svk, reproductible with
> svk trunk:
> 
>   svnadmin create /tmp/sandbox
> 
>   svk mirror file:///tmp/sandbox //sandbox
>   svk sync //sandbox
> 
>   svk mkdir -m "Creating trunk" //sandbox/trunk
>   svk mkdir -m "Creating branches" //sandbox/branches
> 
>   svk copy -m "first copy" //sandbox/trunk //sandbox/branches/newbranch
> 
>   svk checkout //sandbox/branches/newbranch sandbox
> 
>   cd sandbox
>   svk mkdir dir_added_in_newbranch
>   touch dir_added_in_newbranch/file_added_in_newbranch
>   svk add dir_added_in_newbranch/file_added_in_newbranch
>   svk commit -m "New files in newbranch"
> 
>   svk copy -m "second copy" \
>     //sandbox/branches/newbranch //sandbox/branches/branchcopy
> 
>   svk switch //sandbox/branches/branchcopy
> 
>   svk move dir_added_in_newbranch/file_added_in_newbranch \
>     dir_added_in_newbranch/file_moved_in_branchcopy
> 
>   svk commit -m "Renamed file in branchcopy"
> 
>   svk smerge --sync --log --message "Merge branchcopy back into trunk" \
>     --remoterev //sandbox/branches/branchcopy //sandbox/trunk
> 
> 
> The last command gives the following error:
> 
>   Filesystem has no item: File not found: revision 1, path
>     '/trunk/dir_added_in_newbranch/file_added_in_newbranch'
> 
> 
> We also tried with RA via https, which gives a 404 error instead.
> 
> Removing the file in branchcopy and readding it fixed the problem, but
> loses history.

I attached the old test-script and a current transcript with svk-2.0.

One workaround is to smerge back the way you came from, like so:

  svk smerge //sandbox/branches/branchcopy //sandbox/branches/newbranch
  svk smerge //sandbox/branches/newbranch //sandbox/branches/trunk

Is this manual backtracking really necessary or is it just a
longstanding bug?


regards,
  bkw
-------------- next part --------------
A non-text attachment was scrubbed...
Name: svkbug.sh
Type: application/x-shellscript
Size: 940 bytes
Desc: not available
Url : http://lists.bestpractical.com/pipermail/svk-devel/attachments/20070301/4de23024/svkbug.bin
-------------- next part --------------
% sh Desktop/svkbug.sh 
+ svnadmin create /tmp/sandbox
+ svk mirror file:///tmp/sandbox //sandbox
Repository /home/bkwlocal/.svk/local does not exist, create? (y/n)y
Mirror initialized.  Run svk sync //sandbox to start mirroring.
+ svk sync //sandbox
Syncing file:///tmp/sandbox
+ svk mkdir -m 'Creating trunk' //sandbox/trunk
Merging back to mirror source file:///tmp/sandbox.
Merge back committed as revision 1.
Syncing file:///tmp/sandbox
Retrieving log information from 1 to 1
Committed revision 2 from revision 1.
+ svk mkdir -m 'Creating branches' //sandbox/branches
Merging back to mirror source file:///tmp/sandbox.
Merge back committed as revision 2.
Syncing file:///tmp/sandbox
Retrieving log information from 2 to 2
Committed revision 3 from revision 2.
+ svk copy -m 'first copy' //sandbox/trunk //sandbox/branches/newbranch
Merging back to mirror source file:///tmp/sandbox.
Merge back committed as revision 3.
Syncing file:///tmp/sandbox
Retrieving log information from 3 to 3
Committed revision 4 from revision 3.
+ svk checkout //sandbox/branches/newbranch sandbox
Syncing //sandbox/branches/newbranch(/sandbox/branches/newbranch) in /home/bkwlocal/sandbox to 4.
+ cd sandbox
+ svk mkdir dir_added_in_newbranch
A   dir_added_in_newbranch
+ touch dir_added_in_newbranch/file_added_in_newbranch
+ svk add dir_added_in_newbranch/file_added_in_newbranch
A   dir_added_in_newbranch/file_added_in_newbranch
+ svk commit -m 'New files in newbranch'
Commit into mirrored path: merging back directly.
Merging back to mirror source file:///tmp/sandbox.
Merge back committed as revision 4.
Syncing file:///tmp/sandbox
Retrieving log information from 4 to 4
Committed revision 5 from revision 4.
+ svk copy -m 'second copy' //sandbox/branches/newbranch //sandbox/branches/branchcopy
Merging back to mirror source file:///tmp/sandbox.
Merge back committed as revision 5.
Syncing file:///tmp/sandbox
Retrieving log information from 5 to 5
Committed revision 6 from revision 5.
+ svk switch //sandbox/branches/branchcopy
Syncing //sandbox/branches/newbranch(/sandbox/branches/newbranch) in /home/bkwlocal/sandbox to 6.
+ svk move dir_added_in_newbranch/file_added_in_newbranch dir_added_in_newbranch/file_moved_in_branchcopy
A   dir_added_in_newbranch/file_moved_in_branchcopy
D   dir_added_in_newbranch/file_added_in_newbranch
+ svk commit -m 'Renamed file in branchcopy'
Commit into mirrored path: merging back directly.
Merging back to mirror source file:///tmp/sandbox.
Merge back committed as revision 6.
Syncing file:///tmp/sandbox
Retrieving log information from 6 to 6
Committed revision 7 from revision 6.
+ svk smerge --sync --log --message 'Merge branchcopy back into trunk' --remoterev //sandbox/branches/branchcopy //sandbox/trunk
Syncing file:///tmp/sandbox
Auto-merging (0, 7) /sandbox/branches/branchcopy to /sandbox/trunk (base /sandbox/trunk:2).
Merging back to mirror source file:///tmp/sandbox.
A   dir_added_in_newbranch
Filesystem has no item: File not found: revision 1, path '/trunk/dir_added_in_newbranch/file_added_in_newbranch'


More information about the svk-devel mailing list