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

Changeset 1835698 is being indexed.

* 1.9.x/STATUS: Vote for r1830883 group (externals pruning). Vote for

r1811189 (rewording <Location/> block warning), approving.

* STATUS: Vote for conflict resolver fixes: r1830083 (issue #4739) and

r1833895 (issue #4744) groups.

* STATUS: Vote for r1833836 group (conflict resolver search limit), approving.

* STATUS: Vote for r1830883 group (externals pruning), approving.

* STATUS: Vote for r1833621, approving.

Sync merge from publish to staging.
* docs/community-guide/releasing.part.html

(#tarball-signing): Update following r1835195. Improve phrasing and apply

minor corrections.

Suggested by: danielsh

Shelving: Cross-reference from 'svn shelf-diff' to 'svn diff'.

* subversion/svn/svn.c

(svn_cl__cmd_table): Add a note.

Fix 'svn shelf-diff' breakage in r1835446.

* subversion/svn/shelf-cmd.c


svn_cl__shelf_diff): Pass 'depth' and 'ignore_ancestry' arguments through.

Shelving: implement 'svn diff' on shelves.

'svn diff --cl=svn:shelf:SHELF' runs a diff on the shelf named SHELF. This

is an alternative to the 'svn shelf-diff' command. Most 'svn diff' options

are supported; --depth and --ignore-ancestry are not yet supported.

* subversion/include/private/svn_client_private.h,


(svn_client__shelf_diff): Add depth and ignore-ancestry options (not yet

supported). Constify the diff processor parameter.

(file_changed, file_deleted, file_added, diff_baton_t): Adjust for that

'const' change.

* subversion/libsvn_client/diff.c

(diff_shelf, diff_shelves): New.

(do_diff): Look for shelf diffs in the WC-WC diff case.

Remove an unused parameter.

* subversion/include/private/svn_diff_tree.h,



svn_diff__tree_processor_reverse_create): Remove 'prefix'.

* subversion/libsvn_client/conflicts.c,


subversion/libsvn_wc/deprecated.c: Update callers.

Shelving: Don't hide errors.

* subversion/libsvn_client/shelf.c

(svn_client__shelf_diff): Don't suppress all 'file not found' errors.

Shelving: implement shelf diff summary mode.

"svn shelf-diff --summarize"

* subversion/include/private/svn_client_private.h,



(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_summarize_peg2): Tweak to match that 'const' change.

* subversion/svn/cl.h,


(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_diff_simple): Extend to test summary mode.

* tools/client-side/bash_completion

(_svn): Add '--summarize' option to shelf-diff.

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


* 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_diff_simple): New test.

(test_list): Run it.

* subversion/tests/cmdline/

Remove accidentally duplicated import symbols.

* subversion/libsvn_client/diff.c

(adjust_paths_for_diff_labels): Add a helpful comment.

Another step in reducing coupling between diff drivers and diff writers.

Let diff_wc_wc() anchor the diff processor API at the requested target path

always, even when it is not a directory.

* subversion/libsvn_client/diff.c

(diff_wc_wc): Always anchor at the requested target path. Remove the (now

unused) 'ddi' parameter.

(do_diff): Initialize the prefix for diff header paths here, instead.

Another step in reducing coupling between diff drivers and diff writers.

Let svn_client__arbitrary_nodes_diff() anchor the diff processor API at the

requested target paths always, rather than sometimes there and sometimes at

the parent of one of them.

Move the responsibility for prefixing diff header paths with the first

path's basename in certain cases (when the targets are not both directories)

to the caller, where it is more appropriate since it is a presentation


* subversion/libsvn_client/client.h,


(svn_client__arbitrary_nodes_diff): Always anchor at the requested target

paths, even when they are not both directories. Remove the (now unused)

'anchor_at_given_paths' flag and (already unused) 'result_pool' params.

* subversion/libsvn_client/diff.c

(do_diff): Determine the prefix for diff header paths here, instead.

* subversion/tests/cmdline/

(diff_arbitrary_files_and_dirs): Extend this case a little, adding a file

that is modified and a node that is replaced by a different kind.

Fix r1835239 (make test failures a little more descriptive).

* subversion/tests/cmdline/svntest/

(ExpectedOutput.display_differences): Correctly refer to 'self.match_all'.

* subversion/libsvn_client/diff_local.c

(svn_client__arbitrary_nodes_diff): Remove a debug print, following r1835234.

Make test failures a little more descriptive.

* subversion/tests/cmdline/svntest/

(*.display_differences): Show the 'match_all' setting, where applicable.

Reduce coupling between diff drivers and diff writers.

Let diff drivers anchor the diff-processor at the requested target paths,

rather than sometimes there and sometimes at the parent of one of them, in

summarize mode. The quirky anchoring still persists in non-summarize mode.

* subversion/libsvn_client/diff.c

(diff_driver_info_t): Expand comments.



diff_repos_wc): Remove 'root_relpath' and 'root_is_dir' outputs; instead

anchor the diff processor at the requested targets if no 'ddi' coupling

parameter is given.





svn_client_diff_summarize_peg2): Update the calls accordingly.

* subversion/libsvn_client/diff_local.c,


(svn_client__arbitrary_nodes_diff): Remove 'root_relpath' and 'root_is_dir'

outputs. Take an 'anchor_at_given_paths' mode flag and obey it.

* subversion/libsvn_client/diff_summarize.c,



send_summary): Remove path adjustment.

(svn_client__get_diff_summarize_callbacks): Remove path adjustment and

an unused parameter.

* subversion/libsvn_wc/diff_local.c,


(svn_wc__diff7): Remove 'root_relpath' and 'root_is_dir' outputs. Take an

'anchor_at_given_paths' mode flag and obey it.

(svn_wc_diff6): Update the call to svn_wc__diff7() accordingly.

* subversion/libsvn_client/diff.c

(diff_repos_wc): Correct a comment.

Add a test: a summary-diff reports an unmodified copy as modified.

* subversion/tests/cmdline/

(diff_summary_repo_wc_local_copy_unmodified): New test, XFail.

(test_list): Run it.

Correct the diff test added in r1835188.

It failed on Windows, and worked on Linux only because of another bug

('diff --summarize' reporting 'M' even though the copied file was not in

fact modified).

* subversion/tests/cmdline/

(diff_summary_repo_wc_local_copy): Pass the right filename to simple_append().

Fix a crash in diff. 91: Summary diff with a repository source side and a local copy

target side. This particular combination crashed in 1.10.0 and earlier


* subversion/libsvn_client/diff.c

(diff_repos_wc): Ensure 'root_relpath' and 'root_is_dir' outputs are

written in all cases.

* subversion/tests/cmdline/

(diff_summary_repo_wc_local_copy): Remove XFail.

* build/generator/

(TargetJavaClasses.add_dependencies): Reverse check for valid filename to

fail early and avoid an extra level of indentation. No functional change.

Sync merge from publish to staging.
* docs/community-guide/releasing.part.html

(#tarball-signing): Update following r1835191. Correct the number of

required signatures per platform.

Sync merge from publish to staging.