subversion

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

Changeset 1837039 is being indexed.

On the '1.10.x' branch: Record-only merge r1837037 from trunk.

(The change itself was already merged in r1837038.)

On the '1.10.x' branch: Fix german translation for 'svn help merge'.

(Merge r1837037 from trunk.)

Patch by: Christoph Vogtländer <Christoph.Vogtlaender{_AT_}sigma-surface-science.com>

* subversion/subversion/po/de.po

Fix translation error and a typo in help text regarding the reintegration

of a feature branch back to trunk.

    • ?
    /branches/1.10.x/subversion/po/de.po
Fix german translation for 'svn help merge'.

Patch by: Christoph Vogtländer <Christoph.Vogtlaender{_AT_}sigma-surface-science.com>

* subversion/subversion/po/de.po

Fix translation error and a typo in help text regarding the reintegration

of a feature branch back to trunk.

* STATUS: Nominate r1836976.

Add an XFAIL resolver test for cherry-picking directory edits.

Add an XFAIL test which attempts to cherry-pick across a moved directory.

Incidentally, this test also covers the assertion failure fixed in r1836976.

* subversion/include/svn_client.h

(svn_client_conflict_option_local_move_dir_merge): New option ID.

* subversion/tests/libsvn_client/conflicts-test.c

(test_cherry_pick_post_move_edit_dir, test_list): New XFAIL test.

Fix relpath_is_canonical() assertion failure in the conflict resolver.

[Note from the future: r1836977 adds a test which triggers this problem]

* subversion/libsvn_client/conflicts.c

(find_modified_rev): Make sure to canonicalize copyfrom path to a relpath,

effectively stripping the leading slash.

Follow-up to r1836972: Fix accidental test fallout.

* subversion/tests/cmdline/tree_conflict_tests.py

(ensure_tree_conflict): Pass --accept=postpone to 'svn merge' to override

the conflict resolver and get the behaviour these tests are expecting.

Revert r1783879. Again recommend the "move + merge" option during merges.

The "apply edits to old location" resolver option mentioned in the log

message of r1783879 has now been implemented. It is in fact handled in

a different code path (for "local missing" conflicts, rather than "local

deletion"). Which means we can now simply revert r1783879 to see less

resolver questions during merges.

* STATUS: Propose issue #4766 fix.

* STATUS: Nominate r1836963.

Merge r1833895, r1833897, r1833899, and r1833901 from trunk:

* r1833895, r1833897, r1833899, r1833901

Fix issue #4744 "during merge: assertion failed (start_rev > end_rev)"

Justification:

Fixes undesirable conflict resolver behaviour.

Notes:

r1833895 adds a regression test

r1833897 prevents offer of a non-working resolution option

r1833899 fixes accidental test breakage introduced by r1833897

r1833901 prevents the assertion failure and adjusts the test

Issue #4739 fix should be merged before this to avoid merge conflicts.

Votes:

+1: stsp, jcorvel, philip

Fix issue #4766, "resolver adds unrelated moves to move target list"

* subversion/libsvn_client/conflicts.c

(find_operative_moves): Fix the logic which detects operative nested moves

to keep a couple of unrelated conflict resolver tests passing; some tests

were only passing because this code added *every* move found in the deleted

revision. Add only operative moves to the list to fix issue #4766.

Note to reviewers: See notes/resolve-moves for definition of "nested move".

(reparent_session_and_fetch_node_kind): Remove, now unused.

* subversion/tests/libsvn_client/conflicts-test.c

(test_funcs): Issue #4766 test is now passing.

* STATUS: Vote/approve issue 4744 fix.
Fix a potential NULL dereference in the conflict resolver.

* subversion/libsvn_client/conflicts.c

(map_deleted_path_to_move): Check the result of svn_relpath_skip_ancestor().

add an XFAIL test for issue #4766 (resolver adds unrelated moves)

* subversion/libsvn_client/conflicts-test.c

(new_file2_name): New constant.

(create_wc_with_incoming_delete_file_merge_conflict): Optionally create

an unrelated move within the same commit of the existing move.

This triggers issue #4766.

(test_merge_incoming_delete_file_ignore,

test_merge_incoming_delete_file_accept

test_merge_incoming_move_file_text_merge

test_switch_incoming_move_file_text_merge): Update callers.

(test_merge_incoming_delete_file_unrelated_move, test_funcs): New test.

Merge the r1830083 group from trunk:

* r1830083, r1833864, r1833866

Fix issue #4739, "Accept incoming deletion" option doing nothing

for a locally deleted file

Justification:

Fixes undesirable conflict resolver behaviour.

Notes:

r1830083 adds a regression test

r1833864 fixes the issue

r1833866 is a small follow-up fix

Issue #4744 fix should be merged after this to avoid merge conflicts.

Votes:

+1: stsp, jcorvel, philip

* STATUS: Vote/approve issue 4739 fix.
Add a test for a bug where git-diff errors out on a copy.

* subversion/tests/cmdline/diff_tests.py

(diff_git_format_copy): New test, XFail.

(test_list): Run it.

Fix a potential crash in JavaHL.

* subversion/bindings/javahl/native/JNIUtil.cpp

(JNIUtil::wrappedCreateClientException): Don't store an invalid pointer to

out-of-scope std::streambuf contents.

Found by: David Binderman

Fixes #4764

* STATUS: Extend client cert password proposal.
Followup to r1836762, now that we store client cert passwords it

turns out that the libsecret gnome keyring doesn't accept NULL

usernames. Pass a dummy username as a workaround.

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c

(DUMMY_USERNAME): New.

(svn_auth__ssl_client_cert_pw_cache_get,

svn_auth__ssl_client_cert_pw_cache_set): Pass dummy username.

* STATUS: Propose client cert password saving fix.
Allow the client cert password to be saved. The ra_neon library

used to do this but the fuction was lost when we switched to serf.

* subversion/libsvn_ra_serf/util.c

(handle_client_cert_pw): Add comment.

(handle_response): Invoke svn_auth_save_credentials for the client

cert creds.

Make diff code a tiny bit easier to follow. No functional change.

* subversion/libsvn_client/diff.c

(adjust_paths_for_diff_labels): Use separate inputs and outputs. Document better.

(print_diff_index_header): New, extracted from five callers.

Elsewhere: adjust callers.

Fix double diff headers.

Diff printed the 'Index:' header twice in some cases. One case was if an

external diff showed nothing (e.g. whitespace-only changes with a

suppress-whitespace-diffs option) and a property diff was shown.

* subversion/libsvn_client/diff.c

(diff_content_changed): Always tell the caller if we printed a header.

* subversion/libsvn_diff/diff_tree.c

(tree_processor_t,

svn_diff__tree_processor_create): Remove 'wrapper' struct as it was just

confusing.

* STATUS: Propose pipe/fifo fix (danielsh via email).
* subversion/tests/cmdline/lock_tests.py

(delete_locked_file_with_percent): Enable for all RA layers, not just HTTP

where the problem originally showed up.

Follow-up to r1836409: Fix test fallout.

* subversion/tests/libsvn_wc/wc-queries-test.c

(slow_statements): Add the new query added in r1836409.

Fix issue #4694 "cherry-pick edit after file was moved on source branch"

Add conflict resolver support for cherry-picking changes from files which

have been moved on the merge source branch. Support multiple merge target

candidates, and run a file merge by default if only one candidate exists.

This implementation extends the existing "local move file text merge"

resolution option with support for 'move siblings' as merge targets.

I am still considering whether this case conceptually deserves a dedicated

resolution option. However, it would be nice to backport this feature to

SVN 1.10. The only API change required by this implementation is allowing

another 'option' parameter value for the existing API functions

svn_client_conflict_option_get_moved_to_abspath_candidates()

and svn_client_conflict_option_set_moved_to_abspath(). This change is

ABI compatible, with the only caveat that a new 'svn' binary running

on top of an older libsvn_client could trigger an input assertion.

Because we require 'svn' to be kept in sync with the libraries this

should not be a problem in practice.

We can still improve the API for >= 1.11 later.

* subversion/include/private/svn_wc_private.h

(svn_wc__find_working_nodes_with_basename): Declare.

* subversion/include/svn_client.h

(svn_client_conflict_option_get_moved_to_abspath_candidates,

svn_client_conflict_option_set_moved_to_abspath): Document that

svn_client_conflict_option_local_move_file_text_merge is now

a valid option parameter for these functions.

* subversion/libsvn_client/conflicts.c

(conflict_tree_local_missing_details): Add and document wc_siblings

and preferred_sibling_idx fields.

(collect_sibling_move_candidates): New helper function.

(conflict_tree_get_details_local_missing): Try to find the 'local missing'

node which corresponds to the conflict victim in the working copy.

Technically, this would require scanning the log for every item in the WC.

However, assuming a cherry-pick from a moved file to a non-moved file, we

can use a short-cut: The basename of the non-moved file is already known

because it must match one of the locations which the moved file was moved

from. So we can restrict tracing of log history to nodes with a basename

which occurs in the chain of file moves on the merge source branch.

(resolve_local_move_file_merge, configure_option_local_move_file_merge):

Add support for merging to WC siblings of conflict victims which are

'locally missing'.

(svn_client_conflict_option_get_moved_to_abspath_candidates,

svn_client_conflict_option_set_moved_to_abspath): Add support for the

svn_client_conflict_option_local_move_file_text_merge resolution option.

* subversion/libsvn_wc/node.c

(svn_wc__find_working_nodes_with_basename): New private API function which

simply forwards to wc_db.

* subversion/libsvn_wc/wc-queries.sql

(STMT_SELECT_PRESENT_HIGHEST_WORKING_NODES_BY_BASENAME_AND_KIND): New query.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_find_working_nodes_with_basename): New wc_db API function which

finds present working nodes with a given basename.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_find_working_nodes_with_basename): Declare.

* subversion/svn/conflict-callbacks.c

(build_tree_conflict_options, handle_tree_conflict): Support multiple merge target

candidates with the svn_client_conflict_option_local_move_file_text_merge option.

* subversion/tests/libsvn_client/conflicts-test.c

(test_funcs): Mark test_cherry_pick_post_move_edit as PASS.