While messing around with things recently, I decided to try out shelve
to save some of my pending changes.  This didn't work as well as I
expected, since I wasn't in the root of my working copy.  Simplified
transcript below demonstrates the issue:

[[[
jamessan@freya:~/src/apache.org/subversion/trunk$ svn info | grep ^Work
Working Copy Root Path: /home/jamessan/src/apache.org/subversion
jamessan@freya:~/src/apache.org/subversion/trunk$ ./subversion/svn/svn stat
M       subversion/libsvn_client/shelve.c
jamessan@freya:~/src/apache.org/subversion/trunk$ ./subversion/svn/svn shelve 
demo
C         
/home/jamessan/src/apache.org/subversion/subversion/libsvn_client/shelve.c
>         rejected hunk @@ -216,7 +216,6 @@
shelved 'demo'
]]]

Notice that a conflict is shown and the full path is incorrect (missing
/trunk/).  It looks like the relative path from my working directory was
appended to the working copy root, which is clearly wrong.

[[[
jamessan@freya:~/src/apache.org/subversion/trunk$ svn stat
M       subversion/libsvn_client/shelve.c
jamessan@freya:~/src/apache.org/subversion/trunk$ ./subversion/svn/svn shelve 
--list
demo                                0 mins old        504 bytes    1 paths 
changed

 shelve.c |    1 +
 1 file changed, 1 insertion(+)

jamessan@freya:~/src/apache.org/subversion/trunk$ lsdiff 
../.svn/shelves/demo.patch
subversion/libsvn_client/shelve.c
jamessan@freya:~/src/apache.org/subversion/trunk$ ./subversion/svn/svn revert 
subversion/libsvn_client/shelve.c
Reverted 'subversion/libsvn_client/shelve.c'
jamessan@freya:~/src/apache.org/subversion/trunk$ ./subversion/svn/svn unshelve 
demo
C         
/home/jamessan/src/apache.org/subversion/subversion/libsvn_client/shelve.c
>         rejected hunk @@ -216,6 +216,7 @@
unshelved 'demo'
]]]

Cheers,
-- 
James
GPG Key: 4096R/91BF BF4D 6956 BD5D F7B7  2D23 DFE6 91AE 331B A3DB

Reply via email to