Log Message: |
On the 'shelve-checkpoint' branch: Let revision specifiers access shelves.
Support a new kind of revision specifier: '-r SHELF_NAME' or
'path@SHELF_NAME', in the CLI and in svn_opt_revision_t.
Initially this is implemented just for revprop commands, to access the
shelf's log message. These work:
$ svn propset -r foo --revprop svn:log 'New log msg.'
$ svn propget -r foo --revprop svn:log
New log msg.
And 'proplist' and 'propedit' and 'propdel'.
Error handling for the rev spec is not in place; any rev spec other than a
previously known kind is now assumed to be the name of a shelf.
* subversion/include/svn_opt.h
(svn_opt_revision_kind): Add a new kind, 'svn_opt_revision_shelf'.
(svn_opt_revision_value_t): Add a new value store, 'shelf'.
(svn_opt_parse_path): Document new pool lifetime consideration.
* subversion/libsvn_client/client.h
(svn_client__shelf_revprop_set,
svn_client__shelf_revprop_get,
svn_client__shelf_revprop_list): New.
* subversion/libsvn_client/shelve.c
(shelf_read_log_message): Read the whole log message instead of just the
first line. Simplify.
(shelf_write_log_message): Truncate the file, so that shortening the log
message works properly.
(svn_client__shelf_revprop_set,
svn_client__shelf_revprop_get,
svn_client__shelf_revprop_list): New.
(svn_client_shelf_set_log_message): Adjust
* subversion/libsvn_client/prop_commands.c
(svn_client_revprop_set2,
svn_client_revprop_get,
svn_client_revprop_list): Read/write to a shelf if revision says so.
* subversion/libsvn_subr/opt.c
(parse_one_rev): Allow only a single 'r' prefix on a number, instead of any
number of 'r's on any rev spec.
(svn_opt__revision_to_string): Support shelf rev specs.
(svn_opt_parse_revision_to_range,
svn_opt_parse_path): If no other kind of rev spec matches, assume it's a
shelf specifier.
* subversion/svn/props.c
(svn_cl__revprop_prepare): Support shelf rev-specs.
|