subversion

Checkout Tools
  • last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1835457 is being indexed.

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

(shelf_diff,

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,

subversion/libsvn_client/shelf.c

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

subversion/libsvn_diff/diff_tree.c

(reverse_*,

svn_diff__tree_processor_reverse_create): Remove 'prefix'.

* subversion/libsvn_client/conflicts.c,

subversion/libsvn_client/diff.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,

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.

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.

* subversion/tests/cmdline/diff_tests.py

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

issue.

* subversion/libsvn_client/client.h,

subversion/libsvn_client/diff_local.c

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

(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/verify.py

(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/verify.py

(*.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_wc_wc,

diff_repos_repos,

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.

(do_diff,

svn_client_diff7,

svn_client_diff_peg7,

svn_client_diff_summarize2,

svn_client_diff_summarize_peg2): Update the calls accordingly.

* subversion/libsvn_client/diff_local.c,

subversion/libsvn_client/client.h

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

subversion/libsvn_client/client.h

(summarize_baton_t,

send_summary): Remove path adjustment.

(svn_client__get_diff_summarize_callbacks): Remove path adjustment and

an unused parameter.

* subversion/libsvn_wc/diff_local.c,

subversion/include/private/svn_wc_private.h

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

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

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

Fix a crash in diff.

diff-tests.py 91: Summary diff with a repository source side and a local copy

target side. This particular combination crashed in 1.10.0 and earlier

releases.

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

(diff_summary_repo_wc_local_copy): Remove XFail.

* build/generator/gen_base.py

(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 - https://mail-archives.apache.org/mod_mbox/subversion-dev/201806.mbox/%3C20180624062057.GH79457%40ted.stsp.name%3E

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

* subversion/tests/cmdline/diff_tests.py

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

(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

Thread: https://mail-archives.apache.org/mod_mbox/subversion-users/201807.mbox/%3Calpine.WNT.2.20.1807041318540.19228%40MICHAEL-NB.tau-tec.tu%3E

* subversion/libsvn_subr/io.c

(svn_io_dir_walk2): Correct an old comment.

* tools/dist/backport_tests.py

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