neels in subversion

COMMITTERS: Change my email address.

* STATUS: Nominate r1525902.

* STATUS: nominate r1525902 (#4428, #4429).

Backport r1525902: issues #4428, #4429: external points at redirected URL.

* subversion/libsvn_client/externals.c


Pass the possibly redirected URL to switch_dir_external(), not the old one.

Create backport branch for issues #4428, #4429, i.e. r1525902.

Fix issues #4428 and #4429: external pointing at redirected URL.

* subversion/libsvn_client/externals.c


Pass the possibly redirected URL to switch_dir_external(), not the old one.


* subversion/libsvn_repos/commit.c

(check_cntrl): Rename to...

(check_valid_path): ...this.

(add_file_or_directory): Move comment to function check_valid_path().

Cosmetic tweaks to a hook script.

* tools/hook-scripts/

Change top comment into a python doc string. Expand that doc string. Add

comment. Replace loop with list-comprehension.

Change implementation of issue #4227: move the svn:externals duplication check

from svn_wc_parse_externals_description3() to svn_wc_canonicalize_svn_prop().

Thus, show duplication errors only during propset/propedit.

TODO: print warnings about duplicate targets during co/up/merge.

* subversion/include/svn_error_codes.h


* subversion/libsvn_wc/externals.c

(svn_wc_parse_externals_description3): Remove dup check.

(svn_wc__externals_find_target_dups): New function.

* subversion/libsvn_wc/wc.h

(svn_wc__externals_find_target_dups): Declare new function.

* subversion/libsvn_wc/props.c


Check against duplicate externals targets. Add missing "not" in comment.


* subversion/include/svn_wc.h (svn_wc_external_item2_t): Clarify URL.

* subversion/include/svn_error_codes.h: Indent comment.

* subversion/libsvn_wc/wc-metadata.sql: Indent / Whitespace.

* subversion/libsvn_wc/externals.c (svn_wc_parse_externals_description3):

Proper signedness for LEN.

Externals parsing optimisation -- waste memory, not execution time.

Suggested by: danielsh

* subversion/libsvn_wc/externals.c (svn_wc_parse_externals_description3):

Don't iterate the list to check for duplicates, use a hash table.

* subversion/tests/cmdline/

(duplicate_targets): Blind attempt to fix windows buildbot.

* subversion/tests/cmdline/svntest/ special config for 'svn pg'.

* subversion/tests/cmdline/ (duplicate_targets):

Fix on windows.

Implement issue #4227: Externals: Multiple definitions for the same path;

limitation: only check for duplicates within the same svn:externals prop.

* subversion/libsvn_wc/externals.c


Return an error when DESC contains the same WC target twice (or more). For

that purpose, always compose the list of items, regardless of whether it

will be returned or not. Side effect: if EXTERNALS_P is nonzero, and if

parsing of DESC returns an error,

* subversion/tests/cmdline/

(duplicate_targets): New test for above.

* subversion/tests/cmdline/svntest/ tweak, add abs_wc_dir var.
Move the single test in libsvn_wc/externals-test.c over to

libsvn_client/client-test.c (and simplify).

* subversion/tests/libsvn_wc/externals-test.c,

* build.conf:

Remove externals-test.c

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

(test_externals_parse_erratic, test_funcs): New test.

Suggested by: rhuijben

Follow-up to r1409852.

* subversion/tests/libsvn_wc (svn:ignore): Add 'externals-test'.

Make svn_wc_parse_externals_description3 behave as described.

* subversion/libsvn_wc/externals.c (svn_wc_parse_externals_description3):

If DESC is invalid, really do not touch *EXTERNALS_P, as advertised in


* subversion/tests/libsvn_wc/externals-test.c,

* build.conf (externals-test, __ALL_TESTS__):

Add new test for above.

    • ?

* subversion/libsvn_client/commit.c

(append_externals_as_explicit_targets): Fix indent.

* subversion/tests/cmdline/

(include_immediate_dir_externals): Mark with #4252, fix comment.

Tweak benchmark suite1.

* tools/dev/benchmarks/suite1/

tweak chart title position.

* tools/dev/benchmarks/suite1/run:

remove a line of output.

* tools/dev/benchmarks/suite1/ (cmdline_show): fix missing '*'.

Tweak and automate benchmark suite1 chart generation.

* tools/dev/benchmarks/suite1/

Add 'lastN' keyword, add --title option. Tweak chart arrangement. Simplify

some code.

* tools/dev/benchmarks/suite1/cronjob: Simplify, call generate_charts script.

* tools/dev/benchmarks/suite1/generate_charts: New shell script.

* tools/dev/benchmarks/suite1/run: Add charts URL hint after disclaimer.

Tweak benchmark suite1's charts and timings selection capabilities.

* tools/dev/benchmarks/suite1/

<top>: Wade through docs.

(bail): New function, monopolizes error handling.

(parse_timings_selections): New function, understands '@each' keyword.

(cmdline_run, cmdline_list, cmdline_show, cmdline_chart_compare):

Use parse_timings_selections(). Diffs are mostly indents.


Arrange charts vertically, tweak the hell out of everything.

benchmark suite1: tiny tweak so charts work on svn-qavm, our ASF VM. For some

weird reason, choosing edgecolor="none" hides all chart bars, and only so on

svn-qavm. On my laptop at home edgecolor="none" works fine.

* tools/dev/benchmarks/suite1/

(cmdline_chart_compare): Use edgecolor="white" so bars are not hidden.

Tweak benchmark suite1.

* tools/dev/benchmarks/suite1/

(cmdline_compare): Reverse order on one line of output.


Try to make chart creation xserver independent by using 'Agg'. Fix an

item-deleting loop so that it keeps track of deletions.

Some tweaks on benchmark suite1 and remove/clarify reversing confusion.

* tools/dev/benchmarks/suite1/

(do_div, do_diff):

Reverse and more clearly name params, to avoid swapping confusion. This

in effect reverses/fixes 'chart compare' subcommand.


Make propsets ten times less likely, there were way too many propset

timings growing the database. And another cosmetic change.

(n_label, cmdline_show): show 'N' column with SI units (>= 1000).


SI units for 'N' column, and reverse the maths, so one doesn't need to

reverse cmdline args. Half the reverse is from do_div()/do_diff().

* tools/dev/benchmarks/suite1/run:


make N=1 for SVN_A more clear and fix missing '@SVN_B_REV' for 'show'.

* tools/dev/benchmarks/suite1/run: disable debug flag.

* tools/dev/benchmarks/suite1/run.bat: Mark outdated.