/[Apache-SVN]/subversion/trunk/subversion/svn/shelf-cmd.c
ViewVC logotype

Log of /subversion/trunk/subversion/svn/shelf-cmd.c

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (download) (annotate)
Sticky Revision:

Revision 1875037 - (view) (download) (annotate) - [select for diffs]
Modified Tue Mar 10 12:16:26 2020 UTC (4 years, 4 months ago) by julianfoad
File length: 49756 byte(s)
Diff to previous 1853378 (colored)
Merge the 'decouple-shelving-cli' branch to trunk.

Summary:

Add the shelving v2 implementation from Subversion 1.11, as an alternative
to the shelving v3 implementation from Subversion 1.12.

They have substantially different pros and cons, so it is beneficial for the
user to be able to choose.

Make the shelving CLI version selectable by an environment variable:
  env. var. not set                 => shelving v3 enabled
  SVN_EXPERIMENTAL_COMMANDS=shelf3  => shelving v3 enabled
  SVN_EXPERIMENTAL_COMMANDS=shelf2  => shelving v2 enabled
  SVN_EXPERIMENTAL_COMMANDS=        => no shelving CLI



Revision 1853378 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 11 14:17:55 2019 UTC (5 years, 5 months ago) by julianfoad
File length: 42562 byte(s)
Diff to previous 1850720 (colored)
Let the WC mods editor and WC replay editor APIs take explicit notification
callbacks.

* subversion/include/private/svn_client_private.h
  (svn_client__wc_replay,
   svn_client__wc_copy_mods): Take a notification callback.

* subversion/libsvn_client/commit.c
  (svn_client__wc_replay): Take a notification callback.

* subversion/libsvn_client/wc_editor.c
  (svn_client__wc_copy_mods): Take a notification callback.

* subversion/svn/shelf-cmd.c
  (svn_cl__wc_copy_mods): Adjust caller.



Revision 1850720 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jan 8 09:40:32 2019 UTC (5 years, 6 months ago) by julianfoad
File length: 42488 byte(s)
Diff to previous 1841481 (colored)
Implement an experimental 'x-wc-copy-mods' command.

This can be used to comprehensively test the WC editor (issue #4786).

* subversion/include/private/svn_client_private.h,
  subversion/libsvn_client/wc_editor.c
  (svn_client__wc_copy_mods): New.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Add 'x-wc-copy-mods' command.

* subversion/svn/cl.h
  (svn_opt_subcommand_t): Declare 'svn_cl__wc_copy_mods'.

* subversion/svn/shelf-cmd.c
  (svn_cl__wc_copy_mods): New.


Revision 1841481 - (view) (download) (annotate) - [select for diffs]
Modified Thu Sep 20 16:45:22 2018 UTC (5 years, 10 months ago) by julianfoad
File length: 41690 byte(s)
Diff to previous 1835449 (colored)
Move all experimental APIs to the private namespace.

Part of issue SVN-4775 "Add x- prefix to experimental APIs".

* subversion/include/svn_client.h
  (svn_client__layout_func_t): Renamed from 'svn_client_layout_func_t'.
  (svn_client__layout_list): Renamed from 'svn_client_layout_list'.
  (svn_client_shelf_*): Rename to 'svn_client__shelf_*'.

* subversion/include/private/svn_client_private.h
  (svn_client__shelf_diff): Track the renames.

* subversion/libsvn_client/diff.c
  (diff_shelf): Track the renames.

* subversion/libsvn_client/layout.c
  (client_layout_baton_t,
   svn_client__layout_list): Track the renames.

* subversion/libsvn_client/shelf.c
  Track the renames.

* subversion/libsvn_client/status.c
  (shelf_status): Track the renames.

* subversion/svn/info-cmd.c
  Track the renames.

* subversion/svn/shelf-cmd.c
  Track the renames.


Revision 1835449 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jul 9 16:31:26 2018 UTC (6 years ago) by julianfoad
File length: 41631 byte(s)
Diff to previous 1835407 (colored)
Fix 'svn shelf-diff' breakage in r1835446.

* subversion/svn/shelf-cmd.c
  (shelf_diff,
   svn_cl__shelf_diff): Pass 'depth' and 'ignore_ancestry' arguments through.


Revision 1835407 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jul 9 10:34:28 2018 UTC (6 years ago) by julianfoad
File length: 41435 byte(s)
Diff to previous 1835398 (colored)
Shelving: implement shelf diff summary mode.

"svn shelf-diff --summarize"

* subversion/include/private/svn_client_private.h,
  subversion/libsvn_client/client.h,
  subversion/libsvn_client/diff_summarize.c
  (svn_client__get_diff_summarize_callbacks): Move from a private to a
    semi-public header file. Remove 'const' from the output parameter.

* subversion/libsvn_client/diff.c
  (svn_client_diff_summarize2,
   svn_client_diff_summarize_peg2): Tweak to match that 'const' change.

* subversion/svn/cl.h,
  subversion/svn/diff-cmd.c
  (svn_cl__get_diff_summarize): Newly exposed API.
  (svn_cl__diff): Use it.

* subversion/svn/shelf-cmd.c
  (shelf_diff): Implement summary mode.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Add '--summarize' option to shelf-diff.

* subversion/tests/cmdline/shelf_tests.py
  (shelf_diff_simple): Extend to test summary mode.

* tools/client-side/bash_completion
  (_svn): Add '--summarize' option to shelf-diff.


Revision 1835398 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jul 9 09:53:37 2018 UTC (6 years ago) by julianfoad
File length: 40453 byte(s)
Diff to previous 1834810 (colored)
Shelving: Implement 'svn shelf-diff', issue SVN-4745.

This is a first pass. It drives only the file methods in the diff processor
API, not the open- and close-directory methods, and not reporting changes on
directories.

* subversion/include/svn_client.h
  (svn_client_shelf_export_patch): Deprecate.

* subversion/include/private/svn_client_private.h
  (svn_client__get_diff_writer_unidiff): New.
  (svn_client__shelf_diff): New.

* subversion/libsvn_client/diff.c
  (svn_client__get_diff_writer_unidiff): New.

* subversion/libsvn_client/shelf.c
  (file_changed, file_deleted, file_added): New.
  (diff_baton_t, diff_visitor): Drive a diff-processor from shelved changes.
  (svn_client__shelf_diff): New.
  (svn_client_shelf_export_patch): Delete the body; it is deprecated and did
    nothing before.

* subversion/svn/shelf-cmd.c
  (shelf_diff): First obtain a diff writer. Then call the shelf-diff API,
    driving that writer.

* subversion/tests/cmdline/shelf_tests.py
  (shelf_diff_simple): New test.
  (test_list): Run it.


Revision 1834810 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jul 2 02:27:29 2018 UTC (6 years ago) by jamessan
File length: 39687 byte(s)
Diff to previous 1834335 (colored)
Fix use of implicit path when calling shelf-{list,log,drop} from a wc-subdir

* subversion/svn/shelf-cmd.c:
  (svn_cl__shelf_list, svn_cl__shelf_drop, svn_cl__shelf_log): Convert targets
   to absolute paths

* subversion/tests/cmdline/shelf_tests.py:
  (shelve_unshelve_verify): Add an assertion for "svn shelves"


Revision 1834335 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jun 25 14:27:47 2018 UTC (6 years, 1 month ago) by julianfoad
File length: 39361 byte(s)
Diff to previous 1834063 (colored)
Shelving: tweak top-of-file comments.

Revision 1834063 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jun 21 22:02:21 2018 UTC (6 years, 1 month ago) by philip
File length: 39360 byte(s)
Diff to previous 1834055 (colored)
Allow "svn x-shelf-log" from outside the working copy.

* subversion/svn/shelf-cmd.c
  (svn_cl__shelf_log): Accept path arguments, supply default '.' path.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Update help text.


Revision 1834055 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jun 21 20:40:56 2018 UTC (6 years, 1 month ago) by julianfoad
File length: 39015 byte(s)
Diff to previous 1833937 (colored)
Shelving: Handle no-such-version scenarios better.

* subversion/libsvn_client/shelf.c
  (svn_client_shelf_set_current_version): Don't try to open version 0.
  (svn_client_shelf_version_open): Throw an error on trying to open
    a non-existent version, as is already documented.

* subversion/svn/shelf-cmd.c
  (get_newest_version_existing): New.
  (shelf_restore,
   shelf_diff): Use it, thus throwing a suitable error on a non-existent version.
  (shelves_list): Write "no versions" explicitly when it is so.
  (shelf_list_by_paths): Don't try to read from shelves with no versions.

Revision 1833937 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jun 20 19:19:52 2018 UTC (6 years, 1 month ago) by philip
File length: 38051 byte(s)
Diff to previous 1833936 (colored)
Allow "svn x-shelf-drop" from outside the working copy.

* subversion/svn/shelf-cmd.c
  (svn_cl__shelf_drop): Accept path arguments, supply default '.' path.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Update help text.


Revision 1833936 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jun 20 19:13:20 2018 UTC (6 years, 1 month ago) by philip
File length: 37730 byte(s)
Diff to previous 1833935 (colored)
* subversion/svn/shelf-cmd.c
  (svn_cl__shelf_list): Rename subpool and use it properly.


Revision 1833935 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jun 20 19:02:37 2018 UTC (6 years, 1 month ago) by philip
File length: 37693 byte(s)
Diff to previous 1833135 (colored)
Allow "svn x-shelf-list" from outside the working copy.

* subversion/svn/shelf-cmd.c
  (svn_cl__shelf_list): Accept path arguments, supply default '.' path.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Update help text.


Revision 1833135 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jun 7 18:17:53 2018 UTC (6 years, 1 month ago) by julianfoad
File length: 37343 byte(s)
Diff to previous 1833081 (colored)
Shelving: better reporting of shelved and not-shelved changes.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelf.c
  (svn_client_shelf_save_new_version3): New.
  (svn_client_shelf_save_new_version2): Deprecate.

* subversion/svn/shelf-cmd.c
  Use callbacks to report shelved and not-shelved paths.


Revision 1833081 - (view) (download) (annotate) - [select for diffs]
Modified Wed Jun 6 20:21:19 2018 UTC (6 years, 1 month ago) by julianfoad
File length: 38784 byte(s)
Diff to previous 1831884 (colored)
Shelving: Make the 'conflict on unshelving' error more informative.

* subversion/svn/shelf-cmd.c
  (status_to_char): New.
  (test_apply): Report the WC status code of the conflicting path.
  (shelf_restore): Tweak the conflict error message.

Revision 1831884 - (view) (download) (annotate) - [select for diffs]
Modified Sat May 19 10:36:24 2018 UTC (6 years, 2 months ago) by julianfoad
File length: 37271 byte(s)
Diff to previous 1827512 (colored)
Shelving: Use whole-file storage and 3-way merge.

Use whole-file storage completely, instead of patch storage, and use
3-way merge to apply changes to a working file (and dir props).

Don't discriminate 'binary' files at storage time. When unshelving
(applying) a change, treat 'binary' files by the choose-one-or-the-other
method; raise a conflict if the working file differs from the stored
base.

In other words, this is closer to how a normal merge works.

TODO:
  - The svn_client_shelf_export_patch() API is disabled for now.
  - Handling of conflicts is weak.

* subversion/include/svn_client.h
  (svn_client_shelf_test_apply_file): Avoid using the term 'patch' in the
    doc string.

* subversion/libsvn_client/shelf.c
  Implement storage of base and working text and props. Remove storage in
  patch files.

* subversion/svn/shelf-cmd.c
  Remove detection of 'reject' notifications from patching. Avoid using the
  term 'patch' in doc strings.

* subversion/tests/cmdline/shelf_tests.py
  (shelve_empty_deletes): Remove XFail, as now passes.


Revision 1827512 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 22 16:15:18 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 38253 byte(s)
Diff to previous 1827503 (colored)
* subversion/svn/shelf-cmd.c
  (check_no_modified_paths): Remove unused function.

Revision 1827503 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 22 15:01:07 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 40299 byte(s)
Diff to previous 1827477 (colored)
Shelving: refuse to unshelve if there are conflicts.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelf.c
  (svn_client_shelf_apply): Document better.
  (patch_filter_baton_t, patch_filter,
   patch_notify_baton_t, patch_notify,
   svn_client_shelf_test_apply_file): New.

* subversion/svn/shelf-cmd.c
  (test_apply): New.
  (shelf_restore): Error if any path would have a conflict, unless forced.

* subversion/tests/cmdline/shelf_tests.py
  (state_from_status): Move to top of file...
  (shelve_unshelve_verify): ... and use to simplify here.
  (unshelve_refuses_if_conflicts): New.
  (test_list): Run it.


Revision 1827477 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 22 11:15:54 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 39194 byte(s)
Diff to previous 1826834 (colored)
Shelving: unshelve --force will bypass the check for local modifications.

* subversion/svn/shelf-cmd.c
  (shelf_restore): Don't check for mods if so requested.
  (svn_cl__shelf_unshelve): Pass through the option.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Add and document 'unshelve --force' option.


Revision 1826834 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 15 16:01:45 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 39021 byte(s)
Diff to previous 1826791 (colored)
Shelving: fix problems when a shelf has zero versions.

* subversion/libsvn_client/shelf.c
  (shelf_read_revprops): Document better.
  (shelf_read_current): Distinguish no versions from non-existent.
  (svn_client_shelf_open_existing): Allow opening a shelf with no versions.
  (svn_client_shelf_open_or_create): Handle creating a shelf with no
    versions.

* subversion/svn/shelf-cmd.c
  (shelves_list): Display the shelf name even if it has no versions.


Revision 1826791 - (view) (download) (annotate) - [select for diffs]
Modified Thu Mar 15 10:40:58 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 39003 byte(s)
Diff to previous 1826620 (colored)
* subversion/svn/shelf-cmd.c
  (stats): Restore a newline dropped accidentally in r1826614.

Revision 1826620 - (view) (download) (annotate) - [select for diffs]
Modified Tue Mar 13 10:10:42 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 39001 byte(s)
Diff to previous 1826619 (colored)
* subversion/svn/shelf-cmd.c
  (svn_cl__shelf_log): Remove unused variable.

Revision 1826619 - (view) (download) (annotate) - [select for diffs]
Modified Tue Mar 13 10:09:31 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 39080 byte(s)
Diff to previous 1826614 (colored)
Shelving: drop the 'diffstat' from 'list' and 'log' output because it's a
non-universal external dependency and wasn't really important.

We can add a proper 'diffstat' mode to Subversion in future if we want to,
independent of shelving.

Revision 1826614 - (view) (download) (annotate) - [select for diffs]
Modified Tue Mar 13 08:52:29 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 41087 byte(s)
Diff to previous 1826559 (colored)
Shelving: make UI strings better for localization.

Suggested by: mattiase

Revision 1826559 - (view) (download) (annotate) - [select for diffs]
Modified Mon Mar 12 16:05:20 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 40644 byte(s)
Diff to previous 1825911 (colored)
Shelving: reduce the API's reliance on integer version numbers.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelf.c
  (svn_client_shelf_t): Deprecate 'max_version'.
  (svn_client_shelf_version_t): Add the version number as a private member.
  (svn_client_shelf_save_new_version2): New.
  (svn_client_shelf_save_new_version): Deprecate.
  (svn_client_shelf_delete_newer_versions): New.
  (svn_client_shelf_set_current_version): Deprecate.
  (svn_client_shelf_version_open): Tweak docs and parameter name.
  (svn_client_shelf_get_newest_version): New.
  (svn_client_shelf_get_all_versions): New.

* subversion/svn/shelf-cmd.c
  Update accordingly.


Revision 1825911 - (view) (download) (annotate) - [select for diffs]
Modified Mon Mar 5 16:32:52 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 40600 byte(s)
Diff to previous 1825728 (colored)
Shelving: new 'shelf-list-by-paths' command.

* subversion/svn/cl.h
  (svn_cl__shelf_list_by_paths): New.

* subversion/svn/shelf-cmd.c
  (targets_relative_to_wcs,
   targets_relative_to_a_wc,
   shelf_list_by_paths,
   svn_cl__shelf_list_by_paths): New.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Describe the new command.

* tools/client-side/bash_completion
  (_svn): Add the new command.


Revision 1825728 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 2 14:25:25 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 33856 byte(s)
Diff to previous 1825727 (colored)
Shelving: add 'svn unshelve --drop' option.

* subversion/svn/cl.h
  (svn_cl__opt_state_t): Add new 'drop' flag.

* subversion/svn/shelf-cmd.c
  (svn_cl__shelf_unshelve): Drop after shelving, if successful.

* subversion/svn/svn.c
  (svn_cl__longopt_t,
   svn_cl__options,
   svn_cl__cmd_table,
   sub_main): Add new 'drop' option.

* tools/client-side/bash_completion
  (_svn): Add new 'drop' option.


Revision 1825727 - (view) (download) (annotate) - [select for diffs]
Modified Fri Mar 2 14:22:04 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 33666 byte(s)
Diff to previous 1825354 (colored)
Shelving: Detect when there is a conflict in unshelving.

* subversion/svn/shelf-cmd.c
  (patch_notify_baton_t, patch_notify): New.
  (shelf_restore): Intercept patch notifications and error if there is a conflict.

Revision 1825354 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 26 11:24:19 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 32676 byte(s)
Diff to previous 1825353 (colored)
Shelving: Follow-up to r1825353: fix crashes and beautify the API.

* subversion/svn/shelf-cmd.c
  (shelve): Don't assume the revprops table is non-null.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelf.c
  (svn_client_shelf_set_log_message): Make the input message 'const'.


Revision 1825353 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 26 10:52:10 2018 UTC (6 years, 4 months ago) by julianfoad
File length: 32587 byte(s)
Diff to previous 1825049 (colored)
Shelving: Make a simpler log message set/get API.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelf.c
  (svn_client_shelf_revprop_set_all): New
  (svn_client_shelf_set_log_message): Simply set a log message; no callback
    and no other revprops.
  (svn_client_shelf_get_log_message): Document more fully.

* subversion/svn/shelf-cmd.c
  (shelve): Do the client-specific callback dance here instead.


Revision 1825049 - (view) (download) (annotate) - [select for diffs]
Modified Thu Feb 22 11:49:58 2018 UTC (6 years, 5 months ago) by julianfoad
File length: 31882 byte(s)
Diff to previous 1823966 (colored)
Shelving: clarify the API a little.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelf.c
  (svn_client_shelf_open_or_create): Rename from svn_client_shelf_open().
  Improve documentation in several shelving APIs.

* subversion/svn/shelf-cmd.c
  (shelve): Track the rename.


Revision 1823966 - (view) (download) (annotate) - [select for diffs]
Modified Mon Feb 12 13:17:16 2018 UTC (6 years, 5 months ago) by julianfoad
File length: 31820 byte(s)
Diff to previous 1822586 (colored)
Shelving: fix unsafe 'system' calls.

Found by: danielsh

* subversion/svn/shelf-cmd.c,
  subversion/svn/shelve-cmd.c
  (run_cmd): New, using svn_io_run_cmd() .
  (show_diffstat, shelves_list): Use that instead of system("...").

Revision 1822586 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 29 21:33:46 2018 UTC (6 years, 5 months ago) by julianfoad
File length: 30897 byte(s)
Diff to previous 1822008 (colored)
* subversion/svn/shelf-cmd.c
  (shelve): Fix an outdated comment.

Found by: danielsh

Revision 1822008 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jan 23 14:19:48 2018 UTC (6 years, 6 months ago) by julianfoad
File length: 31000 byte(s)
Diff to previous 1822006 (colored)
Shelving: Make 'shelf-list' and 'shelf-log' quieter with '-q' and noisier
with '-v'.

Do not print version, age and paths changed with 'shelf-list --quiet'.
Print diffstat only when '--verbose' is given.

Now 'shelf-list -q' prints only the shelf names.

* subversion/svn/shelf-cmd.c
  (shelves_list): In quiet mode, print only the shelf names.
  (svn_cl__shelf_list,
   svn_cl__shelf_log): Pass the appropriate parameters.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Let 'shelf-list' and 'shelf-log' accept '-v'.


Revision 1822006 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jan 23 13:50:57 2018 UTC (6 years, 6 months ago) by julianfoad
File length: 30902 byte(s)
Diff to previous 1821994 (colored)
Shelving: consistently error on reading a nonexistent shelf.

* subversion/include/svn_client.h
  (svn_client_shelf_open_existing): New.

* subversion/libsvn_client/shelf.c
  (shelf_construct): New, factored out.
  (svn_client_shelf_open_existing): New.
  (svn_client_shelf_open): Use 'shelf_construct()'.

* subversion/svn/shelf-cmd.c
  (shelves_list,
   shelf_log,
   shelf_restore,
   shelf_diff): Use svn_client_shelf_open_existing().


Revision 1821994 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jan 23 12:34:48 2018 UTC (6 years, 6 months ago) by julianfoad
File length: 31238 byte(s)
Diff to previous 1821860 (colored)
Shelving: let 'shelve' and 'shelf-save' accept --with-revprop.

This is for consistency with other commands that take a log message, as in
principle there is nothing ultra-special about the log message property.

At present any non-log-message revprops are saved in the shelf but there are
only private APIs to retrieve them (svn_client__shelf_revprop_get, _list).

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelf.c
  (svn_client_shelf_t): Add a comment.
  (svn_client_shelf_set_log_message): Add revprops parameter.

* subversion/svn/shelf-cmd.c
  (shelve,
   shelf_shelve,
   svn_cl__shelf_shelve): Pass the revprops through.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Let 'shelf-save' and 'shelve' accept the standard set
    of log-message options which includes --with-revprop.

* tools/client-side/bash_completion
  (_svn): Let 'shelf-save' and 'shelve' accept the standard set
    of log-message options which includes --with-revprop.


Revision 1821860 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 22 13:04:31 2018 UTC (6 years, 6 months ago) by julianfoad
File length: 31023 byte(s)
Diff to previous 1821858 (colored)
Don't cast away 'const'.

Found by: warnings buildbots.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelf.c
  (svn_client_shelf_get_patch_abspath): Let the output be const.

* subversion/svn/shelf-cmd.c
  (show_diffstat): Update caller.


Revision 1821858 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 22 12:47:45 2018 UTC (6 years, 6 months ago) by julianfoad
File length: 31017 byte(s)
Diff to previous 1821855 (colored)
Don't use deprecated functions.

Found by: MacOS warnings buildbot.

* subversion/svn/shelf-cmd.c
  (run_status_on_wc_paths,
   check_no_modified_paths): s/svn_path_join/svn_dirent_join/.

Revision 1821855 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 22 12:40:06 2018 UTC (6 years, 6 months ago) by julianfoad
File length: 31009 byte(s)
Copied from: subversion/branches/shelve-checkpoint/subversion/svn/shelf-cmd.c revision 1821835
Diff to previous 1821835 (colored)
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.


Revision 1821835 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 22 11:14:20 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelf-cmd.c
File length: 31009 byte(s)
Copied from: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c revision 1821831
Diff to previous 1821831 (colored)
On the 'shelve-checkpoint' branch: Rename some files so as not to clash
with the shelving v1 files on trunk.

Also fix a compile error introduced in r1821831.


Revision 1821831 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 22 09:52:24 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 31003 byte(s)
Diff to previous 1821508 (colored)
On the 'shelve-checkpoint' branch: Rename some functions so as not to clash
with the shelving v1 functions on trunk.


Revision 1821508 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jan 18 15:12:01 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 31011 byte(s)
Diff to previous 1821034 (colored)
On the 'shelve-checkpoint' branch: Remove 'shelf xxx' 2-word command forms.

It was too messy in our current command handling infrastructure. Use
'shelf-xxx' command forms for most of the commands, plus 'shelve' and
'shelves' and 'unshelve'.

Revision 1821034 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 12 21:12:15 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 32043 byte(s)
Diff to previous 1821005 (colored)
On the 'shelve-checkpoint' branch: let 'shelve' say what it's going to do.

Revision 1821005 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 12 16:39:06 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 29081 byte(s)
Diff to previous 1821003 (colored)
On the 'shelve-checkpoint' branch: lose --diff,--drop,--list,--log CLI options.

Revision 1821003 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 12 16:32:25 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 29695 byte(s)
Diff to previous 1820997 (colored)
On the 'shelve-checkpoint' branch: a more regular CLI command set.

Revision 1820997 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 12 14:47:10 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 32855 byte(s)
Diff to previous 1820979 (colored)
On the 'shelve-checkpoint' branch: factor out repeated code.

Revision 1820979 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jan 12 13:28:42 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 32967 byte(s)
Diff to previous 1820901 (colored)
On the 'shelve-checkpoint' branch: refactor APIs to use a shelf-version object.

Revision 1820901 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jan 11 17:13:34 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 32139 byte(s)
Diff to previous 1820873 (colored)
On the 'shelve-checkpoint' branch: 'svn unshelve' prints shelf info and
any conflicting modifications in the WC.

Revision 1820873 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jan 11 12:51:52 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 29116 byte(s)
Diff to previous 1820714 (colored)
On the 'shelve-checkpoint' branch: formal correctness fixes in the new revprop support.

Revision 1820714 - (view) (download) (annotate) - [select for diffs]
Modified Tue Jan 9 22:24:02 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 29049 byte(s)
Diff to previous 1820588 (colored)
On the 'shelve-checkpoint' branch: Let shelves store all revprops, not just
svn:log.


Revision 1820588 - (view) (download) (annotate) - [select for diffs]
Modified Mon Jan 8 17:49:28 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 28887 byte(s)
Diff to previous 1820136 (colored)
On the 'shelve-checkpoint' branch: changes to the set of shelving subcommands.

Revision 1820136 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jan 4 17:11:41 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 25274 byte(s)
Diff to previous 1820048 (colored)
On the 'shelve-checkpoint' branch: Factor out common code.

This also makes the checkpoint 'log' output show WC-relative paths,
like the 'shelves' list does since r1820044.

Revision 1820048 - (view) (download) (annotate) - [select for diffs]
Modified Thu Jan 4 10:06:53 2018 UTC (6 years, 6 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 25306 byte(s)
Diff to previous 1818285 (colored)
On the 'shelve-checkpoint' branch: catch up with trunk@1820047.

Revision 1818285 - (view) (download) (annotate) - [select for diffs]
Modified Fri Dec 15 13:16:10 2017 UTC (6 years, 7 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 25302 byte(s)
Diff to previous 1817394 (colored)
On the 'shelve-checkpoint' branch: Rename 'savepoint list' to 'savepoint log'.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Rename 'list' to 'log'. Drop '--list' option.

* subversion/svn/shelve-cmd.c
  (checkpoint_log): Was 'checkpoint_list'.
  (svn_cl__checkpoint): Rename 'list' to 'log'. Drop '--list' option.

* tools/client-side/bash_completion
  (_svn): Rename 'list' to 'log'. Drop '--list' option.


Revision 1817394 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 7 16:25:44 2017 UTC (6 years, 7 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 25371 byte(s)
Diff to previous 1817375 (colored)
On the 'shelve-checkpoint' branch: Implement an export-as-patch command.

svn savepoint|sp|checkpoint export NAME [VERSION]

(The change to shelve.c was committed in the previous commit, r1817393.)

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelve.c
  (svn_client_shelf_export_patch): New.
  (svn_client_shelf_version_get_info): Bail out if not found. (Unrelated.)

* subversion/svn/shelve-cmd.c
  (export_as_patch): New.
  (svn_cl__checkpoint): Call it when 'export' command is used.

* subversion/svn/svn.c
  (svn_cl__cmd_table): Update the command help.


Revision 1817375 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 7 14:42:10 2017 UTC (6 years, 7 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 23889 byte(s)
Diff to previous 1817370 (colored)
On the 'shelve-checkpoint' branch: catch up with trunk@1817373.

Revision 1817370 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 7 13:33:07 2017 UTC (6 years, 7 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 23665 byte(s)
Diff to previous 1817360 (colored)
On the 'shelve-checkpoint' branch: Bail out if unshelving would affect a path
that is already modified in the WC.

* subversion/svn/shelve-cmd.c
  (modification_checker,
   check_no_modified_paths): New.
  (restore): Check for modified paths before restoring.

Revision 1817360 - (view) (download) (annotate) - [select for diffs]
Modified Thu Dec 7 11:49:07 2017 UTC (6 years, 7 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 21125 byte(s)
Diff to previous 1817320 (colored)
On the 'shelve-checkpoint' branch: Bail out if 'shelve' finds no modifications.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelve.c
  (svn_client_shelf_save_new_version): Don't bump the version number if the
    attempted new version is empty.
  (svn_client_shelf_get_paths): Add missing 'experimental' tag.
  (write_patch): When overwriting an existing file, truncate it.

* subversion/svn/shelve-cmd.c
  (shelve): If no modifications found, throw an error.

Revision 1817320 - (view) (download) (annotate) - [select for diffs]
Modified Wed Dec 6 21:36:57 2017 UTC (6 years, 7 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 20713 byte(s)
Diff to previous 1815634 (colored)
On the 'shelve-checkpoint' branch: Add an API to get the affected paths.
Use it in 'svn shelves' to print how many paths are affected.

* subversion/include/svn_client.h,
  subversion/libsvn_client/shelve.c
  (svn_client_shelf_version_get_info,
   svn_client_shelves_list): Minor fixes to doc-strings.
  (svn_client_shelf_get_paths): New.

* subversion/svn/shelve-cmd.c
  (shelves_list): Use it.

Revision 1815634 - (view) (download) (annotate) - [select for diffs]
Modified Fri Nov 17 22:02:35 2017 UTC (6 years, 8 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 20424 byte(s)
Diff to previous 1815432 (colored)
On the 'shelve-checkpoint' branch: Implement a step towards a new v1 design.

It includes: basic shelve/save, unshelve/restore, deleting and listing.

It does not: detect whether any paths that are about to be restored are
already modified in the WC; avoid storing a version containing no changes or
changes identical to the previous version; integrate with changelists.


Revision 1815432 - (view) (download) (annotate) - [select for diffs]
Modified Thu Nov 16 10:32:27 2017 UTC (6 years, 8 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 9803 byte(s)
Diff to previous 1813860 (colored)
On the 'shelve-checkpoint' branch: catch up with ^/subversion/branches/shelve@1815226.

Revision 1813860 - (view) (download) (annotate) - [select for diffs]
Modified Tue Oct 31 09:39:59 2017 UTC (6 years, 8 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 9634 byte(s)
Diff to previous 1806001 (colored)
On the 'shelve-checkpoint' branch: catch up with ^/subversion/branches/shelve@1813857.

Revision 1806001 - (view) (download) (annotate) - [select for diffs]
Modified Thu Aug 24 08:32:36 2017 UTC (6 years, 11 months ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 9019 byte(s)
Diff to previous 1801970 (colored)
On the 'shelve-checkpoint' branch: Catch up with 'shelve' branch.

Revision 1801970 - (view) (download) (annotate) - [select for diffs]
Modified Fri Jul 14 14:21:35 2017 UTC (7 years ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 7149 byte(s)
Diff to previous 1801595 (colored)
On the 'shelve-checkpoint' branch: make 'svn shelve --list' more verbose.

Print the patch file age and size, and (unless '-q') also a diffstat.

* subversion/libsvn_client/shelve.c
  (svn_client_shelves_list): Retrieve more stats including file size and
    mtime.

* subversion/svn/shelve-cmd.c
  (shelves_list): Print each patch's age and size, and run 'diffstat' if
    found in the path.
  (svn_cl__shelve,
   svn_cl__shelves): Update callers.


Revision 1801595 - (view) (download) (annotate) - [select for diffs]
Added Tue Jul 11 11:55:45 2017 UTC (7 years ago) by julianfoad
Original Path: subversion/branches/shelve-checkpoint/subversion/svn/shelve-cmd.c
File length: 6415 byte(s)
Implement svn shelving, in prototype form.

Commands are:
    svn shelve NAME PATH...
    svn shelve --delete NAME
    svn shelves OR svn shelve --list
    svn unshelve [--keep] NAME

* subversion/include/private/svn_wc_private.h,
  subversion/libsvn_wc/wcroot_anchor.c
  (svn_wc__get_shelves_dir): New function.

* subversion/include/svn_client.h
  (svn_client_shelve,
   svn_client_unshelve,
   svn_client_shelves_delete,
   svn_client_shelves_list): New functions.

* subversion/libsvn_client/shelve.c
  New file.

* subversion/svn/cl.h
  (svn_cl__opt_state_t): Add the '--list' option.
  (svn_cl__shelve,
   svn_cl__unshelve,
   svn_cl__shelves): New.

* subversion/svn/shelve-cmd.c
  New file.

* subversion/svn/svn.c
  Add the new commands and options.

* tools/client-side/bash_completion
  (_svn): Add the 'shelve' commands and options.


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.


infrastructure at apache.org
ViewVC Help
Powered by ViewVC 1.1.26