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

Changeset 1835254 is being indexed.

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.
* docs/community-guide/releasing.part.html

(#tarball-signing): Relax the signing restrictions per the dev-list

discussion -

Correct expectations of diff test added in r1835188 (still XFail).

* subversion/tests/cmdline/

(diff_summary_repo_wc_local_copy): Expect 'M' not 'A' for a copied, modified file.

Add a test for a summary-diff case that crashes.

I found this case by code inspection.

* subversion/tests/cmdline/

(diff_summary_repo_wc_local_copy): New test, XFail.

(test_list): Run it.

* subversion/tests/libsvn_repos/authz-test.c

(reposful_reposless_stanzas_inherit): New regression test.

I've manually verified that `svnauthz accessof --repository project1 --path

/foo --username user1 --recursive ./bar` outputs 'rw' in 1.9 and 'no' in trunk,

where 'bar' contains the value of the newly-added variable 'rules'.

Reported by: Michael Ruder


* subversion/libsvn_subr/io.c

(svn_io_dir_walk2): Correct an old comment.

* tools/dist/

(chdir): Add a docstring emphasising that this isn't fchdir(). Not driven so

much by needs of this file as by the likelihood that someone (possibly

future me) will crib this function for use elsewhere.

On the 1.10.x branch: Add r1834835 to r1834612 group (SVN-4758).
On the '1.10.x-issue4758' branch: restore config even on error.

* subversion/libsvn_client/shelve.c

(shelf_write_patch): Don't let an error return leave the client context in

a modified state.

Follow-up to r1834810:

* subversion/tests/cmdline/

Avoid using undefined string escapes, which are deprecated.

* subversion/libsvn_wc/wc_db_wcroot.c

(svn_wc__db_wcroot_parse_local_abspath): Extend use of iterpool, and

destroy it, following r1834812.

* subversion/libsvn_wc/wc_deb_wcroot.c

(svn_wc__db_wcroot_parse_local_abspath) Use an iterpool while trying to find

the abspath of the wcroot

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/

(shelve_unshelve_verify): Add an assertion for "svn shelves"

Correct the use of backslash-space sequence in Python strings.

Python docs state: "Changed in version 3.6: Unrecognized escape sequences

produce a DeprecationWarning. In some future version of Python they will be

a SyntaxError."

Where meant to be a literal string, replace with backslash-backslash-space;

where meant to be a regex, remove the backslash as it is unnecessary in

ordinary regular expressions.

Suggested by: danielsh

* subversion/tests/cmdline/

Double the backslashes in externals definitions.

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

* subversion/tests/cmdline/

Double the backslashes in "\ No newline at end of..." diff lines.

* subversion/tests/cmdline/

(dump_exclude_all_rev_changes): Remove unnecessary escapes in regexes.

Following r1834628, mark new test as XFail.

* subversion/tests/cmdline/

(patch_empty_prop): Mark as XFail, as this tests a reported bug.

Add a test for 'patch' changing an empty prop val to non-empty.

Bug report: thread "SVN patch issue with property changes" on users@ 2018-06-29 by "Dipu H",

* subversion/tests/cmdline/

(patch_empty_prop): New test.

(test_list): Run it.

On the 1.10.x branch: Nominate r1834612 (SVN-4758: can't shelve with custom diff-cmd).
On the '1.10.x-issue4758' branch: Fix SVN-4758 "Unable to shelve changes

when using custom diff-cmd".

* subversion/libsvn_client/shelve.c

(shelf_write_patch): Ignore any config file while executing the diff, so

as to use the internal diff code.

* subversion/tests/cmdline/


shelve_unshelve): Allow specifying global options.

(shelve_ignores_external_diff): New test.

(test_list): Run it.