[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