Log of /subversion/trunk/subversion/svn/shelf-cmd.c
Parent Directory
|
Revision Log
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
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
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
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
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
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
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
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
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
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
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.