Author: svn-role Date: Fri Sep 20 04:00:38 2019 New Revision: 1867196 URL: http://svn.apache.org/viewvc?rev=1867196&view=rev Log: Merge r1853483 from trunk:
* r1853483 Fix #4760 "Missing children when svnadmin dump --include/exclude converts copy-dir to add-dir". Justification: The new-in-1.10 feature was broken. Votes: +1: julianfoad, stsp Modified: subversion/branches/1.11.x/ (props changed) subversion/branches/1.11.x/STATUS subversion/branches/1.11.x/subversion/libsvn_repos/dump.c subversion/branches/1.11.x/subversion/tests/cmdline/svnadmin_tests.py Propchange: subversion/branches/1.11.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Fri Sep 20 04:00:38 2019 @@ -100,4 +100,4 @@ /subversion/branches/verify-at-commit:1462039-1462408 /subversion/branches/verify-keep-going:1439280-1546110 /subversion/branches/wc-collate-path:1402685-1480384 -/subversion/trunk:1840990-1840991,1840995,1840997,1841059,1841079,1841091,1841098,1841136,1841180,1841272,1841481,1841524-1841525,1841567,1841600-1841602,1841606,1841719,1841725,1841731,1841736,1841742-1841743,1841753-1841754,1841822,1841850,1841867,1842090,1842222-1842223,1842334,1842814,1842827,1842829,1842877,1843888,1844882,1844987,1845204,1845212,1845261,1845408,1845555-1845556,1845559,1845577,1846299,1846403,1846406,1846704,1847181-1847182,1847188,1847264,1847377,1847572,1847596,1847598,1847697,1847922,1847924,1847946,1850348,1850621,1850651,1851676,1851687,1851791,1852013,1853761 +/subversion/trunk:1840990-1840991,1840995,1840997,1841059,1841079,1841091,1841098,1841136,1841180,1841272,1841481,1841524-1841525,1841567,1841600-1841602,1841606,1841719,1841725,1841731,1841736,1841742-1841743,1841753-1841754,1841822,1841850,1841867,1842090,1842222-1842223,1842334,1842814,1842827,1842829,1842877,1843888,1844882,1844987,1845204,1845212,1845261,1845408,1845555-1845556,1845559,1845577,1846299,1846403,1846406,1846704,1847181-1847182,1847188,1847264,1847377,1847572,1847596,1847598,1847697,1847922,1847924,1847946,1850348,1850621,1850651,1851676,1851687,1851791,1852013,1853483,1853761 Modified: subversion/branches/1.11.x/STATUS URL: http://svn.apache.org/viewvc/subversion/branches/1.11.x/STATUS?rev=1867196&r1=1867195&r2=1867196&view=diff ============================================================================== --- subversion/branches/1.11.x/STATUS (original) +++ subversion/branches/1.11.x/STATUS Fri Sep 20 04:00:38 2019 @@ -69,14 +69,6 @@ Veto-blocked changes: Approved changes: ================= - * r1853483 - Fix #4760 "Missing children when svnadmin dump --include/exclude converts - copy-dir to add-dir". - Justification: - The new-in-1.10 feature was broken. - Votes: - +1: julianfoad, stsp - * r1854072, r1854074, r1854216 Fix issue #4806: Remove on-disk trees with read-only directories in them. Justification: Modified: subversion/branches/1.11.x/subversion/libsvn_repos/dump.c URL: http://svn.apache.org/viewvc/subversion/branches/1.11.x/subversion/libsvn_repos/dump.c?rev=1867196&r1=1867195&r2=1867196&view=diff ============================================================================== --- subversion/branches/1.11.x/subversion/libsvn_repos/dump.c (original) +++ subversion/branches/1.11.x/subversion/libsvn_repos/dump.c Fri Sep 20 04:00:38 2019 @@ -44,6 +44,7 @@ #include "private/svn_sorts_private.h" #include "private/svn_utf_private.h" #include "private/svn_cache.h" +#include "private/svn_fspath.h" #define ARE_VALID_COPY_ARGS(p,r) ((p) && SVN_IS_VALID_REVNUM(r)) @@ -1972,6 +1973,11 @@ dump_filter_authz_func(svn_boolean_t *al { dump_filter_baton_t *b = baton; + /* For some nodes (e.g. files under copied directory) PATH may be + * non-canonical (missing leading '/'). Canonicalize PATH before + * passing it to FILTER_FUNC. */ + path = svn_fspath__canonicalize(path, pool); + return svn_error_trace(b->filter_func(allowed, root, path, b->filter_baton, pool)); } Modified: subversion/branches/1.11.x/subversion/tests/cmdline/svnadmin_tests.py URL: http://svn.apache.org/viewvc/subversion/branches/1.11.x/subversion/tests/cmdline/svnadmin_tests.py?rev=1867196&r1=1867195&r2=1867196&view=diff ============================================================================== --- subversion/branches/1.11.x/subversion/tests/cmdline/svnadmin_tests.py (original) +++ subversion/branches/1.11.x/subversion/tests/cmdline/svnadmin_tests.py Fri Sep 20 04:00:38 2019 @@ -3913,6 +3913,51 @@ def recover_prunes_rep_cache_when_disabl check_recover_prunes_rep_cache(sbox, enable_rep_sharing=False) +@Issue(4760) +def dump_include_copied_directory(sbox): + "include copied directory with nested nodes" + + sbox.build(create_wc=False) + + svntest.actions.run_and_verify_svn(svntest.verify.AnyOutput, [], "copy", + sbox.repo_url + '/A/D', + sbox.repo_url + '/COPY', + "-m", "Create branch.") + + # Dump repository with only /COPY path included. + _, dump, _ = svntest.actions.run_and_verify_svnadmin(None, [], + 'dump', '-q', + '--include', '/COPY', + sbox.repo_dir) + + # Load repository from dump. + sbox2 = sbox.clone_dependent() + sbox2.build(create_wc=False, empty=True) + load_and_verify_dumpstream(sbox2, None, [], None, False, dump) + + # Check log. + expected_output = svntest.verify.RegexListOutput([ + '-+\\n', + 'r2\ .*\n', + # Only '/COPY' is added + re.escape('Changed paths:\n'), + re.escape(' A /COPY'), + re.escape(' A /COPY/G'), + re.escape(' A /COPY/G/pi'), + re.escape(' A /COPY/G/rho'), + re.escape(' A /COPY/G/tau'), + re.escape(' A /COPY/H'), + re.escape(' A /COPY/H/chi'), + re.escape(' A /COPY/H/omega'), + re.escape(' A /COPY/H/psi'), + re.escape(' A /COPY/gamma'), + '-+\\n', + 'r1\ .*\n', + '-+\\n' + ]) + svntest.actions.run_and_verify_svn(expected_output, [], + 'log', '-v', '-q', sbox2.repo_url) + ######################################################################## # Run the tests @@ -3990,6 +4035,7 @@ test_list = [ None, dump_no_canonicalize_svndate, recover_prunes_rep_cache_when_enabled, recover_prunes_rep_cache_when_disabled, + dump_include_copied_directory, ] if __name__ == '__main__':