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

Changeset 1835736 is being indexed.

On the '1.10.x' branch: catch-up merge 'CHANGES' from trunk: 1.10.1 entries.
* CHANGES: Add changes for version 1.10.1.
On the '1.10.x' branch: catch-up merge 'CHANGES' from trunk.
Merge the r1833836 group from trunk:

* r1833836, r1833842

Fix issue #4740, "conflict resolver searches too far back ..."


The current behaviour is hard-coded to traverse all of history in

a "local missing vs incoming edit" situation. This is impractical

on repositories with a large number of revisions.

Easy fix which just runs an already existing YCA search a bit

earlier, falling back to full traversal if no YCA can be found.

User complained and provided a reproduction script:


+1: stsp, philip, jcorvel

Merge the r1830883 group from trunk:

* r1830883,r1830900,r1830901

Prune externals from excluded subtrees after 'update --set-depth=exclude'


Current behaviour is inconsistent: Setting depth to 'empty' prunes

externals while excluding a subtree does not.


+1: stsp, philip, jcorvel

+0: rhuijben (in concept, not reviewed)

Merge r1833621 from trunk:

* r1833621

Since on Windows Subversion does not handle symlinks, never check for reparse points.


Without this, shell extensions like TSVN fail with files in OneDrive on Windows.


+1: steveking, stsp, jcorvel

Merge r1811189 from trunk:

* r1811189

Reword warning message to avoid confusion: the word "nested" was interpreted

as nested <Location/> blocks in httpd.conf syntax.



Prevent user confusion.


+1: danielsh, stsp, jcorvel

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