Checkout Tools
  • last updated 4 hours ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1833480 is being indexed.

* STATUS: Vote/appprove path to rdoc fix.
* STATUS: Fix syntax to make happy.
* subversion/mod_dav_svn/repos.c

(open_stream): Return an error if a non-conforming client sends

a PUT before the corresponding CHECKOUT when attempting a v1

protocol commit. This is required for strict v1 compliance

and does not affect the v2 protocol.

Shelving: add tests for a binary file conflict.

* subversion/tests/cmdline/


unshelve_binary_mod_conflict): New tests.

(test_list): Run them.

Shelving: in the tests, tweak some test names and variable names.
Shelving: Add tests for merging a prop change, cleanly and with conflict.

* subversion/tests/cmdline/

(unshelve_with_merge): New, factored out...


unshelve_text_mod_conflict): ... from here.


unshelve_text_prop_conflict): New tests.

(test_list): Run them.

Shelving: Add tests for merging a text change, cleanly and with conflict.

* subversion/tests/cmdline/


unshelve_text_mod_conflict): New tests.

(test_list): Run them.

In the test suite, when displaying unexpected differences, don't hide

binary file contents.

* subversion/tests/cmdline/svntest/

(SVNTreeNode.print_script): Just print file content's repr() regardless of MIME-type.

Shelving: Test a little more thoroughly.

Verify also the contents of on-disk files and their versioned properties,

not just the status that 'svn status' shows.

* subversion/tests/cmdline/


check_wc_state): New.



unshelve_refuses_if_conflicts): Use them.

Shelving: Add a test for refusing to shelve a conflict.

A follow-up to r1833141.

* subversion/tests/cmdline/

(refuse_to_shelve_conflict): New test.

(test_list): Run it.

Shelving: Improve 'svn help shelve'.

* subversion/svn/svn.c

(svn_cl__cmd_table): For 'shelve', better describe the supported kinds of change.

Shelving: Detect and refuse to shelve an unversioned tree-conflicted victim path.

Previously a path with this status was silently skipped.

* subversion/libsvn_client/shelf.c

(write_changes_visitor): Detect and refuse all conflicts.

[A test was added later in r1833168.]

Shelving: better reporting of shelved and not-shelved changes.

* subversion/include/svn_client.h,


(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.

In the test suite, make some expected output checking more robust.

Require that the regexes in RegexListOutput and UnorderedRegexListOutput

classes match a whole actual line, not just a prefix.

Adjust the few callers that were not already expecting to match a whole


This patch does not yet do the same for RegexOutput. Many callers assume

the regex in that class matches a prefix.

* subversion/tests/cmdline/,





Append '.*' or other suitable ending to patterns that lacked it.

* subversion/tests/cmdline/svntest/


regex_fullmatch): New.


UnorderedRegexListOutput): Use them to match the whole line, not just a

prefix. When printing differences, print the expected regex and actual

text in such a way that control characters and trailing spaces can be


Shelving: In help text, say 'SHELF' rather than 'NAME'.

* subversion/svn/svn.c

(svn_cl__cmd_table): s/NAME/SHELF/g in shelving commands.

Shelving: Improve 'svn help unshelve'.

* subversion/svn/svn.c

(svn_cl__cmd_table): For 'unshelve', describe roll-back and clarify other points.

Shelving: add a test for 'shelf-list'.

* subversion/tests/cmdline/

(list_shelves): New test.

(test_list): Run it.

Shelving: Refuse to shelve a 'copied' state, as it isn't yet supported.

* subversion/libsvn_client/shelf.c

(write_changes_visitor): Refuse a 'copied' state.

* subversion/tests/cmdline/


shelve_dir_copy): New tests.

(test_list): Run them.

Shelving: follow-up to r1833082: tweak a dependant test.

* subversion/tests/cmdline/

(shelf_status): Don't (yet) include a 'rmdir' among the changes.

Shelving: refuse to shelve mkdir/rmdir, as it is not yet supported.

* subversion/libsvn_client/shelf.c

(write_changes_visitor): Refuse add/del/replace directory.

* subversion/tests/cmdline/


shelve_unshelve): Support an expected 'cannot shelve' error.


shelve_rmdir): Expect refusal; remove XFail.

(shelve_replace_dir): New test.

(test_list): Run the new test.

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.

Shelving: Adjust 'svn help shelve' now that binary files are supported.

They are supported since r1831344.

* subversion/svn/svn.c

(svn_cl__cmd_table): Remove 'binary files not supported' note in 'x-shelve'.

* tools/server-side/svnpubsub/ Clarify comment by expanding

an acronym.

Shelving: Fix test added in r1832179.

* subversion/tests/cmdline/

(state_from_status): Allow overriding '-v -u -q' options.


run_and_verify_shelf_status): New.

(shelf_status): Compare shelf status with previous WC status instead

of writing the expected status data in the test.

Shelving: add XFail tests for shelving 'mkdir' and 'rmdir'.

* subversion/tests/cmdline/

(shelve_mkdir, shelve_rmdir): New tests.

(test_list): Run them.

Shelving: test 'svn status' a little more comprehensively.

* subversion/tests/cmdline/

(shelf_status): Test more changes than just an add.

Shelving: Tweak 'svn status' on a shelf.

* subversion/libsvn_client/shelf.c

Save and recall the base revision number. Use appropriate

values for unavailable fields.

Shelving: fix crashes, following r1831908.

* subversion/libsvn_client/status.c

(shelves_status): Allow changelists array to be null.

Shelving: Add SVN_EXPERIMENTAL and suppress warnings related to it.

A follow-up to r1831908.

* subversion/include/svn_client.h

(svn_client_shelf_version_status_walk): Add 'experimental' mark-up.

* subversion/libsvn_client/status.c

Suppress 'experimental function used' warnings, because on some platforms

it maps to a 'deprecated' warning and we don't like those.

Shelving: implement 'svn status' for a shelf.

The interface uses a special form of changelist name, 'svn:shelf:SHELFNAME',

to request operating on a shelf.


$ svn st --cl svn:shelf:foo

--- Changelist 'svn:shelf:foo':

A add.txt

MM mod.txt

D del.txt

TODO: specialize the command-line syntax and output format to say 'shelf'

and hide the 'svn:shelf:' prefix.

* subversion/include/svn_client.h

(svn_client_shelf_version_status_walk): New.

* subversion/libsvn_client/shelf.c

(wc_status_unserialize): Rename the unused pool parameter.

(status_read): Fill in the changelist name as 'svn:shelf:SHELFNAME'.




shelf_status_walk): Allow starting the walk at a given top relpath.



svn_client_shelf_version_status_walk): New.



svn_client_shelf_export_patch): Adjust callers (top relpath = "").

* subversion/libsvn_client/status.c


shelves_status): New.

(svn_client_status6): Run status on any requested shelves, before the

main WC.

* subversion/tests/cmdline/

(shelf_status): New test.

(test_list): Run it.