Checkout
Julian Foad
committed
on 22 Jan 18
Copy the main part of Shelving v2 (that is, with checkpointing) into trunk
from the 'shelve-checkpoint' branch.

Leave Shelving v1 active, a… Show more
Copy the main part of Shelving v2 (that is, with checkpointing) into trunk

from the 'shelve-checkpoint' branch.

Leave Shelving v1 active, add the new APIs, disable the new CLI using

'#ifdef WITH_SHELVE_V1', and don't update the tests and Bash-completion yet.

* subversion/include/svn_client.h

 (svn_client_shelf_t,

  svn_client_shelf_version_t,

  svn_client_shelf_open,

  svn_client_shelf_close,

  svn_client_shelf_delete,

  svn_client_shelf_save_new_version,

  svn_client_shelf_set_current_version,

  svn_client_shelf_version_open,

  svn_client_shelf_apply,

  svn_client_shelf_unapply,

  svn_client_shelf_get_patch_abspath,

  svn_client_shelf_export_patch,

  svn_client_shelf_paths_changed,

  svn_client_shelf_set_log_message,

  svn_client_shelf_get_log_message,

  svn_client_shelf_info_t,

  svn_client_shelf_list): New.

* subversion/libsvn_client/client.h

 (svn_client__shelf_revprop_set,

  svn_client__shelf_revprop_get,

  svn_client__shelf_revprop_list): New.

* subversion/libsvn_client/shelf.c

 subversion/svn/shelf-cmd.c

 New files.

* subversion/svn/cl.h

 (svn_cl__shelf_diff,

  svn_cl__shelf_drop,

  svn_cl__shelf_list,

  svn_cl__shelf_log,

  svn_cl__shelf_save,

  svn_cl__shelf_shelve,

  svn_cl__shelf_unshelve): New declarations.

* subversion/svn/svn.c

 (WITH_SHELVE_V1): New.

 (svn_cl__options, svn_cl__cmd_table, sub_main):

   Add the new CLI. Switch between old and new based on WITH_SHELVE_V1.

Show less