subversion

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

Changeset 1836803 is being indexed.

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

* subversion/libsvn_client/conflicts.c

(configure_option_local_move_file_merge): Ensure that this resolution

option, which only applies to files, is not applied to directories.

Fix wrong expectations of an XFAIL conflict resolver test.

* subversion/tests/libsvn_client/conflict-tests.c

(test_cherry_pick_post_move_edit): The cherry-pick merge as run by this

test results in a text conflict. Update test expectations accordingly.

Code simplification.

* subversion/libsvn_client/repos_diff.c

(remove_non_prop_changes): Use an existing function to delete elements.

Fix libsvn_client 'repos-diff' which was incompletely filtering out no-op

property changes since r1097039.

Tested by temporarily inserting postcondition assertions.

* subversion/libsvn_client/repos_diff.c

(remove_non_prop_changes): Remove all redundant prop changes, not just some of them.

* publish/roadmap.html

(upcoming-releases): Note actual dates and version numbers of 1.9.9,1.10.2.

Teach 'release.py write-news' to insert the output into a file.

With the new option '--edit-html-file=FILE', it inserts the news item

before the first existing news item in FILE instead of printing it.

(It does not take care of remove old news items from 'index.html'.)

* /home/julianfoad/src/subversion-g/tools/dist/release.py

(write_news): Insert the news before a '<div class="h3" id="news-' line.

(main): Accept '--edit-html-file=' option.

In 'release.py write-news', allow specifying the announcement email URL.

The new option is 'release.py write-news --announcement-url=...'.

Previously it wrote out a blank field where we needed to insert the URL

manually.

* /home/julianfoad/src/subversion-g/tools/dist/release.py

(write_news): Pass the new argument to the templates.

(main): Add the '--announcement-url=' option.

* /home/julianfoad/src/subversion-g/tools/dist/templates/rc-news.ezt,

/home/julianfoad/src/subversion-g/tools/dist/templates/stable-news.ezt

Insert a replaceable '[announcement_url]' parameter in the templates.

* publish/index.html,

publish/news.html

Change dates on 1.10.2 and 1.9.9 news from yesterday to today.

Announce Subversion 1.10.2 and 1.9.9.

* publish/download.html

Update supported release tables.

* publish/index.html

Add news items; remove old news items.

* publish/news.html

Add news items.

subversion/tests/cmdline/patch_tests.py

(patch_git_wcroot2): New test.

(test_list): Run it.

subversion/tests/cmdline/patch_tests.py

(patch_git_wcroot): New test.

(test_list): Run it.

Patch by: Dmitry Pavlenko <pavlenko{_AT_}tmatesoft.com>

* subversion/tests/cmdline/diff_tests.py

(diff_file_replaced_by_symlink): New test.

(test_list): Run it.

Patch by: Dmitry Pavlenko <pavlenko{_AT_}tmatesoft.com

(tweaked by me, following danielsh's suggestions)

* subversion/libsvn_subr/io.c

(stringbuf_from_aprfile): If the file is a FIFO then do not rely on

the filesize as it will always be zero. This allows things like:

svn commit -F <(echo foo)

svnmucc propsetf p <(echo bar) URL

* tools/dist/release.py

(create_tag_only,

bump_versions_on_branch): Re-enable commits, following r1836012.

In 'release.py' separate out the bump-versions-on-branch step.

* tools/dist/release.py

(create_tag): Rename to create_tag_only; extract the second half as...

(bump_versions_on_branch,

create_tag_and_bump_versions): New.

(main): Document 'create-tag' as doing both. Add 'bump-versions-on-branch'.

* tools/dist/release.py

(create_tag): Fix pattern matching for bumping version numbers on the

branch, following r1836007.

* tools/dist/release.py

(create_tag): Take care not to commit a no-op when bumping version numbers

on the branch.

Post-release housekeeping: bump the 1.10.x branch to 1.10.3.

(This bumps the version in 'svn_version.h', following r1835936.)

Post-release housekeeping: bump the 1.10.x branch to 1.10.3.

(This bumps the version in 'STATUS' only; 'svn_version.h' was bumped later

in r1836006.)