James McCoy wrote:
While messing around with things recently, I decided to try out shelve
to save some of my pending changes.
Thanks for trying it!
[...]> 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.
Ugh. Thanks for finding this.
Fixed in http://svn.apache.org/r1819804
Please could you check it.
The working directory still needs to be within the WC for all the
shelving commands. When you specify a path ("svn shelve foo
path-to-wc/...") this is counter-intuitive, and probably should be
changed: it should check all given paths (default: ".") are in the same
WC and use that WC.
The other commands, "svn unshelve foo", "svn shelve --delete foo" and
"svn shelves" don't currently accept paths but maybe they could.
When listing shelves, maybe we should list only those that affect paths
entirely within the given path(s), or only those that affect at least
some paths within the given path(s). E.g. (just thinking out loud):
[[[
$ svn shelves
--- shelves entirely within '.':
foo
--- shelves partially within '.':
bar
--- 13 shelves are outside '.'; specify '--all' to list them
]]]
It would be good to hear any thoughts you have about how to improve it.
- Julian