Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/config-test.c URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/config-test.c?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/config-test.c (original) +++ subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/config-test.c Mon Jan 16 12:32:43 2012 @@ -211,7 +211,7 @@ test_boolean_retrieval(apr_pool_t *pool) } static svn_error_t * -test_has_section(apr_pool_t *pool) +test_has_section_case_insensitive(apr_pool_t *pool) { svn_config_t *cfg; const char *cfg_file; @@ -225,12 +225,50 @@ test_has_section(apr_pool_t *pool) if (! svn_config_has_section(cfg, "section1")) return fail(pool, "Failed to find section1"); + if (! svn_config_has_section(cfg, "SECTION1")) + return fail(pool, "Failed to find SECTION1"); + + if (! svn_config_has_section(cfg, "UpperCaseSection")) + return fail(pool, "Failed to find UpperCaseSection"); + + if (! svn_config_has_section(cfg, "uppercasesection")) + return fail(pool, "Failed to find UpperCaseSection"); + if (svn_config_has_section(cfg, "notthere")) return fail(pool, "Returned true on missing section"); return SVN_NO_ERROR; } +static svn_error_t * +test_has_section_case_sensitive(apr_pool_t *pool) +{ + svn_config_t *cfg; + const char *cfg_file; + + if (!srcdir) + SVN_ERR(init_params(pool)); + + cfg_file = apr_pstrcat(pool, srcdir, "/", "config-test.cfg", (char *)NULL); + SVN_ERR(svn_config_read2(&cfg, cfg_file, TRUE, TRUE, pool)); + + if (! svn_config_has_section(cfg, "section1")) + return fail(pool, "Failed to find section1"); + + if (svn_config_has_section(cfg, "SECTION1")) + return fail(pool, "Returned true on missing section"); + + if (! svn_config_has_section(cfg, "UpperCaseSection")) + return fail(pool, "Failed to find UpperCaseSection"); + + if (svn_config_has_section(cfg, "uppercasesection")) + return fail(pool, "Returned true on missing section"); + + if (svn_config_has_section(cfg, "notthere")) + return fail(pool, "Returned true on missing section"); + + return SVN_NO_ERROR; +} /* ==================================================================== If you add a new test to this file, update this array. @@ -246,7 +284,9 @@ struct svn_test_descriptor_t test_funcs[ "test svn_config"), SVN_TEST_PASS2(test_boolean_retrieval, "test svn_config boolean conversion"), - SVN_TEST_PASS2(test_has_section, - "test svn_config_has_section"), + SVN_TEST_PASS2(test_has_section_case_insensitive, + "test svn_config_has_section (case insensitive)"), + SVN_TEST_PASS2(test_has_section_case_sensitive, + "test svn_config_has_section (case sensitive)"), SVN_TEST_NULL };
Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/config-test.cfg URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/config-test.cfg?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/config-test.cfg (original) +++ subversion/branches/showing-merge-info/subversion/tests/libsvn_subr/config-test.cfg Mon Jan 16 12:32:43 2012 @@ -41,6 +41,9 @@ h= %(unterminated # Multiple expansions i=%(a)s %(b)s +[UpperCaseSection] +a=Aa + [booleans] true1 = true true2 = Yes Modified: subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/op-depth-test.c URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/op-depth-test.c?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/op-depth-test.c (original) +++ subversion/branches/showing-merge-info/subversion/tests/libsvn_wc/op-depth-test.c Mon Jan 16 12:32:43 2012 @@ -1731,7 +1731,7 @@ test_wc_move(const svn_test_opts_t *opts { 2, "A/B", "base-deleted", NO_COPY_FROM }, { 2, "A/B/C", "base-deleted", NO_COPY_FROM }, { 2, "A/B-move", "normal", 1, "A/B", MOVED_HERE }, - { 2, "A/B-move/C", "normal", 1, "A/B/C" }, + { 2, "A/B-move/C", "normal", 1, "A/B/C", MOVED_HERE }, { 3, "A/B-move/C", "base-deleted", NO_COPY_FROM }, { 3, "A/B-move/C-move", "normal", 1, "A/B/C", MOVED_HERE }, { 0 } @@ -3790,7 +3790,7 @@ nested_moves_child_first(const svn_test_ {2, "A/B", "base-deleted", NO_COPY_FROM}, {2, "A/B/C", "base-deleted", NO_COPY_FROM}, {2, "A/B2", "normal", 1, "A/B", MOVED_HERE}, - {2, "A/B2/C", "normal", 1, "A/B/C"}, + {2, "A/B2/C", "normal", 1, "A/B/C", MOVED_HERE}, {3, "A/B2/C", "base-deleted", NO_COPY_FROM}, {3, "A/B2/C2", "normal", 1, "A/B/C", MOVED_HERE}, {0} @@ -3808,12 +3808,12 @@ nested_moves_child_first(const svn_test_ {1, "A/B", "base-deleted", NO_COPY_FROM}, {1, "A/B/C", "base-deleted", NO_COPY_FROM}, {1, "A2", "normal", 1, "A", MOVED_HERE}, - {1, "A2/B", "normal", 1, "A/B"}, - {1, "A2/B/C", "normal", 1, "A/B/C"}, + {1, "A2/B", "normal", 1, "A/B", MOVED_HERE}, + {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE}, {2, "A2/B", "base-deleted", NO_COPY_FROM}, {2, "A2/B/C", "base-deleted", NO_COPY_FROM}, {2, "A2/B2", "normal", 1, "A/B", MOVED_HERE}, - {2, "A2/B2/C", "normal", 1, "A/B/C"}, + {2, "A2/B2/C", "normal", 1, "A/B/C", MOVED_HERE}, {3, "A2/B2/C", "base-deleted", NO_COPY_FROM}, {3, "A2/B2/C2","normal", 1, "A/B/C", MOVED_HERE}, {0} @@ -3821,6 +3821,26 @@ nested_moves_child_first(const svn_test_ SVN_ERR(check_db_rows(&b, "", nodes)); } + /* Revert should leave the A to A2 move */ + SVN_ERR(wc_revert(&b, "A2/B2", svn_depth_infinity)); + SVN_ERR(wc_revert(&b, "A2/B", svn_depth_infinity)); + { + nodes_row_t nodes[] = { + {0, "", "normal", 1, ""}, + {0, "A", "normal", 1, "A", FALSE, "A2"}, + {0, "A/B", "normal", 1, "A/B"}, + {0, "A/B/C", "normal", 1, "A/B/C"}, + {1, "A", "base-deleted", NO_COPY_FROM}, + {1, "A/B", "base-deleted", NO_COPY_FROM}, + {1, "A/B/C", "base-deleted", NO_COPY_FROM}, + {1, "A2", "normal", 1, "A", MOVED_HERE}, + {1, "A2/B", "normal", 1, "A/B", MOVED_HERE}, + {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE}, + {0} + }; + SVN_ERR(check_db_rows(&b, "", nodes)); + } + return SVN_NO_ERROR; } @@ -3864,8 +3884,7 @@ nested_moves_child_last(const svn_test_o }; SVN_ERR(check_db_rows(&b, "", nodes)); } - SVN_ERR(wc_move(&b, "A2/B", "A2/B2")); /* ### Leaves moved-here on lines - marked XFAIL */ + SVN_ERR(wc_move(&b, "A2/B", "A2/B2")); { nodes_row_t nodes[] = { {0, "", "normal", 1, ""}, @@ -3876,8 +3895,8 @@ nested_moves_child_last(const svn_test_o {1, "A/B", "base-deleted", NO_COPY_FROM}, {1, "A/B/C", "base-deleted", NO_COPY_FROM}, {1, "A2", "normal", 1, "A", MOVED_HERE}, - {1, "A2/B", "normal", 1, "A/B"}, /* XFAIL */ - {1, "A2/B/C", "normal", 1, "A/B/C"}, /* XFAIL */ + {1, "A2/B", "normal", 1, "A/B", MOVED_HERE}, + {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE}, {2, "A2/B", "base-deleted", NO_COPY_FROM}, {2, "A2/B/C", "base-deleted", NO_COPY_FROM}, {2, "A2/B2", "normal", 1, "A/B", MOVED_HERE}, @@ -3886,8 +3905,7 @@ nested_moves_child_last(const svn_test_o }; SVN_ERR(check_db_rows(&b, "", nodes)); } - SVN_ERR(wc_move(&b, "A2/B2/C", "A2/B2/C2")); /* ### Leaves moved-here on line - marked XFAIL */ + SVN_ERR(wc_move(&b, "A2/B2/C", "A2/B2/C2")); { nodes_row_t nodes[] = { {0, "", "normal", 1, ""}, @@ -3898,12 +3916,12 @@ nested_moves_child_last(const svn_test_o {1, "A/B", "base-deleted", NO_COPY_FROM}, {1, "A/B/C", "base-deleted", NO_COPY_FROM}, {1, "A2", "normal", 1, "A", MOVED_HERE}, - {1, "A2/B", "normal", 1, "A/B"}, - {1, "A2/B/C", "normal", 1, "A/B/C"}, + {1, "A2/B", "normal", 1, "A/B", MOVED_HERE}, + {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE}, {2, "A2/B", "base-deleted", NO_COPY_FROM}, {2, "A2/B/C", "base-deleted", NO_COPY_FROM}, {2, "A2/B2", "normal", 1, "A/B", MOVED_HERE}, - {2, "A2/B2/C", "normal", 1, "A/B/C"}, /* XFAIL */ + {2, "A2/B2/C", "normal", 1, "A/B/C", MOVED_HERE}, {3, "A2/B2/C", "base-deleted", NO_COPY_FROM}, {3, "A2/B2/C2","normal", 1, "A/B/C", MOVED_HERE}, {0} @@ -3911,6 +3929,26 @@ nested_moves_child_last(const svn_test_o SVN_ERR(check_db_rows(&b, "", nodes)); } + /* Revert should leave the A to A2 move */ + SVN_ERR(wc_revert(&b, "A2/B2", svn_depth_infinity)); + SVN_ERR(wc_revert(&b, "A2/B", svn_depth_infinity)); + { + nodes_row_t nodes[] = { + {0, "", "normal", 1, ""}, + {0, "A", "normal", 1, "A", FALSE, "A2"}, + {0, "A/B", "normal", 1, "A/B"}, + {0, "A/B/C", "normal", 1, "A/B/C"}, + {1, "A", "base-deleted", NO_COPY_FROM}, + {1, "A/B", "base-deleted", NO_COPY_FROM}, + {1, "A/B/C", "base-deleted", NO_COPY_FROM}, + {1, "A2", "normal", 1, "A", MOVED_HERE}, + {1, "A2/B", "normal", 1, "A/B", MOVED_HERE}, + {1, "A2/B/C", "normal", 1, "A/B/C", MOVED_HERE}, + {0} + }; + SVN_ERR(check_db_rows(&b, "", nodes)); + } + return SVN_NO_ERROR; } @@ -3919,7 +3957,7 @@ move_in_copy(const svn_test_opts_t *opts { svn_test__sandbox_t b; - SVN_ERR(svn_test__sandbox_create(&b, "move_in_replace", opts, pool)); + SVN_ERR(svn_test__sandbox_create(&b, "move_in_copy", opts, pool)); SVN_ERR(wc_mkdir(&b, "A")); SVN_ERR(wc_mkdir(&b, "A/B")); @@ -4116,10 +4154,10 @@ move_to_swap(const svn_test_opts_t *opts {0, "X", "normal", 1, "X", FALSE, "A"}, {0, "X/Y", "normal", 1, "X/Y", FALSE, "X/Y"}, {1, "A", "normal", 1, "X", MOVED_HERE}, - {1, "A/Y", "normal", 1, "X/Y"}, /* moved-here? */ + {1, "A/Y", "normal", 1, "X/Y", MOVED_HERE}, {1, "A/B", "base-deleted", NO_COPY_FROM}, {1, "X", "normal", 1, "A", MOVED_HERE}, - {1, "X/B", "normal", 1, "A/B"}, /* moved-here? */ + {1, "X/B", "normal", 1, "A/B", MOVED_HERE}, {1, "X/Y", "base-deleted", NO_COPY_FROM}, {2, "A/Y", "base-deleted", NO_COPY_FROM}, {2, "X/B", "base-deleted", NO_COPY_FROM}, @@ -4158,8 +4196,6 @@ move_to_swap(const svn_test_opts_t *opts SVN_ERR(wc_move(&b, "A/Y", "X/Y")); SVN_ERR(wc_move(&b, "X/B", "A/B")); - /* Currently XFAIL on because marked lines set moved-here. Perhaps - this is correct and it should XFAIL on the earlier order? */ { nodes_row_t nodes[] = { {0, "", "normal", 1, ""}, @@ -4168,10 +4204,10 @@ move_to_swap(const svn_test_opts_t *opts {0, "X", "normal", 1, "X", FALSE, "A"}, {0, "X/Y", "normal", 1, "X/Y", FALSE, "X/Y"}, {1, "A", "normal", 1, "X", MOVED_HERE}, - {1, "A/Y", "normal", 1, "X/Y"}, /* XFAIL */ + {1, "A/Y", "normal", 1, "X/Y", MOVED_HERE}, {1, "A/B", "base-deleted", NO_COPY_FROM}, {1, "X", "normal", 1, "A", MOVED_HERE}, - {1, "X/B", "normal", 1, "A/B"}, /* XFAIL */ + {1, "X/B", "normal", 1, "A/B", MOVED_HERE}, {1, "X/Y", "base-deleted", NO_COPY_FROM}, {2, "A/Y", "base-deleted", NO_COPY_FROM}, {2, "X/B", "base-deleted", NO_COPY_FROM}, @@ -4393,6 +4429,43 @@ move_on_move2(const svn_test_opts_t *opt return SVN_NO_ERROR; } +static svn_error_t * +move_added(const svn_test_opts_t *opts, apr_pool_t *pool) +{ + svn_test__sandbox_t b; + + SVN_ERR(svn_test__sandbox_create(&b, "move_added", opts, pool)); + + SVN_ERR(wc_mkdir(&b, "A")); + SVN_ERR(wc_mkdir(&b, "A/B")); + SVN_ERR(wc_commit(&b, "")); + SVN_ERR(wc_update(&b, "", 1)); + + SVN_ERR(wc_mkdir(&b, "A/B/C")); + SVN_ERR(wc_move(&b, "A", "A2")); + SVN_ERR(wc_mkdir(&b, "A2/B/C2")); + + /* Both A2/B/C and A2/B/C2 are simple adds inside the move. It + doesn't seem right for A2/B/C to be marked moved_here. */ + { + nodes_row_t nodes[] = { + {0, "", "normal", 1, ""}, + {0, "A", "normal", 1, "A", FALSE, "A2"}, + {0, "A/B", "normal", 1, "A/B"}, + {1, "A", "base-deleted", NO_COPY_FROM}, + {1, "A/B", "base-deleted", NO_COPY_FROM}, + {1, "A2", "normal", 1, "A", MOVED_HERE}, + {1, "A2/B", "normal", 1, "A/B", MOVED_HERE}, + {3, "A2/B/C", "normal", NO_COPY_FROM}, /* XFAIL */ + {3, "A2/B/C2", "normal", NO_COPY_FROM}, + {0} + }; + SVN_ERR(check_db_rows(&b, "", nodes)); + } + + return SVN_NO_ERROR; +} + /* ---------------------------------------------------------------------- */ @@ -4465,7 +4538,7 @@ struct svn_test_descriptor_t test_funcs[ "incomplete_switch (issue 4040)"), SVN_TEST_OPTS_PASS(nested_moves_child_first, "nested_moves_child_first"), - SVN_TEST_OPTS_XFAIL(nested_moves_child_last, + SVN_TEST_OPTS_PASS(nested_moves_child_last, "nested_moves_child_last"), SVN_TEST_OPTS_XFAIL(move_in_copy, "move_in_copy"), @@ -4473,7 +4546,7 @@ struct svn_test_descriptor_t test_funcs[ "move_in_replace"), SVN_TEST_OPTS_PASS(copy_a_move, "copy_a_move"), - SVN_TEST_OPTS_XFAIL(move_to_swap, + SVN_TEST_OPTS_PASS(move_to_swap, "move_to_swap"), SVN_TEST_OPTS_PASS(revert_nested_move, "revert_nested_move"), @@ -4481,5 +4554,7 @@ struct svn_test_descriptor_t test_funcs[ "move_on_move"), SVN_TEST_OPTS_XFAIL(move_on_move2, "move_on_move2"), + SVN_TEST_OPTS_XFAIL(move_added, + "move_added"), SVN_TEST_NULL }; Modified: subversion/branches/showing-merge-info/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd (original) +++ subversion/branches/showing-merge-info/tools/buildbot/slaves/win32-SharpSvn/svntest-cleanup.cmd Mon Jan 16 12:32:43 2012 @@ -32,7 +32,7 @@ IF NOT EXIST "imports\" ( ) IF NOT EXIST build\imports.done ( copy /y imports\dev-default.build default.build - nant build %NANTARGS% + nant prep-dev %NANTARGS% IF ERRORLEVEL 1 ( exit /B 1 ) @@ -54,6 +54,7 @@ taskkill /im svnserve.exe /f 2> nul: taskkill /im svnrdump.exe /f 2> nul: taskkill /im svnsync.exe /f 2> nul: taskkill /im httpd.exe /f 2> nul: +taskkill /im op-depth-test.exe /f 2> nul: IF EXIST "%TESTDIR%\tests\subversion\tests\cmdline\httpd\" ( rmdir /s /q "%TESTDIR%\tests\subversion\tests\cmdline\httpd" ) Modified: subversion/branches/showing-merge-info/tools/client-side/svn-ssl-fingerprints.sh URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/client-side/svn-ssl-fingerprints.sh?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/tools/client-side/svn-ssl-fingerprints.sh (original) +++ subversion/branches/showing-merge-info/tools/client-side/svn-ssl-fingerprints.sh Mon Jan 16 12:32:43 2012 @@ -28,6 +28,6 @@ CONFIG_DIR=${1-$HOME/.subversion} for i in $CONFIG_DIR/auth/svn.ssl.server/????????????????????????????????; do grep :// $i - grep '.\{80\}' $i | sed 's/\(.\{64\}\)/\1\n/g' | openssl base64 -d | openssl x509 -inform der -noout -fingerprint | sed 's/=/\n/' + grep '.\{80\}' $i | sed 's/\(.\{64\}\)/\1 /g' | xargs -n1 | openssl base64 -d | openssl x509 -inform der -noout -fingerprint | sed 's/=/ /' | xargs -n1 echo done Modified: subversion/branches/showing-merge-info/tools/client-side/svnmucc/svnmucc.c URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/client-side/svnmucc/svnmucc.c?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/tools/client-side/svnmucc/svnmucc.c (original) +++ subversion/branches/showing-merge-info/tools/client-side/svnmucc/svnmucc.c Mon Jan 16 12:32:43 2012 @@ -109,6 +109,7 @@ create_ra_callbacks(svn_ra_callbacks2_t const char *username, const char *password, const char *config_dir, + svn_config_t *cfg_config, svn_boolean_t non_interactive, svn_boolean_t no_auth_cache, apr_pool_t *pool) @@ -119,7 +120,8 @@ create_ra_callbacks(svn_ra_callbacks2_t non_interactive, username, password, config_dir, no_auth_cache, - FALSE, NULL, NULL, NULL, pool)); + FALSE /* trust_server_certs */, + cfg_config, NULL, NULL, pool)); (*callbacks)->open_tmp_file = open_tmp_file; @@ -629,13 +631,17 @@ execute(const apr_array_header_t *action struct operation root; svn_error_t *err; apr_hash_t *config; + svn_config_t *cfg_config; int i; SVN_ERR(svn_config_get_config(&config, config_dir, pool)); SVN_ERR(svn_cmdline__apply_config_options(config, config_options, "svnmucc: ", "--config-option")); + cfg_config = apr_hash_get(config, SVN_CONFIG_CATEGORY_CONFIG, + APR_HASH_KEY_STRING); SVN_ERR(create_ra_callbacks(&ra_callbacks, username, password, config_dir, - non_interactive, no_auth_cache, pool)); + cfg_config, non_interactive, no_auth_cache, + pool)); SVN_ERR(svn_ra_open4(&session, NULL, anchor, NULL, ra_callbacks, NULL, config, pool)); Modified: subversion/branches/showing-merge-info/tools/dev/po-merge.py URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dev/po-merge.py?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/tools/dev/po-merge.py (original) +++ subversion/branches/showing-merge-info/tools/dev/po-merge.py Mon Jan 16 12:32:43 2012 @@ -52,7 +52,7 @@ def parse_translation(f): line = f.readline() if line[0] != '"': break - msgid += '\n' + line[:-1] + msgid = msgid[:-1] + line[1:-1] # Parse optional msgid_plural msgid_plural = None @@ -64,7 +64,7 @@ def parse_translation(f): line = f.readline() if line[0] != '"': break - msgid_plural += '\n' + line[:-1] + msgid_plural = msgid_plural[:-1] + line[1:-1] # Parse msgstr msgstr = [] @@ -117,9 +117,9 @@ def main(argv): argv0 = os.path.basename(argv[0]) sys.exit('Usage: %s <lang.po>\n' '\n' - 'This script will replace the translations and flags in lang.po with\n' - 'the translations and flags in the source po file read from standard\n' - 'input. Strings that are not found in the source file are left untouched.\n' + 'This script will replace the translations and flags in lang.po (LF line endings)\n' + 'with the translations and flags in the source po file read from standard input.\n' + 'Strings that are not found in the source file are left untouched.\n' 'A backup copy of lang.po is saved as lang.po.bak.\n' '\n' 'Example:\n' Modified: subversion/branches/showing-merge-info/tools/dist/backport.pl URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/dist/backport.pl?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/tools/dist/backport.pl (original) +++ subversion/branches/showing-merge-info/tools/dist/backport.pl Mon Jan 16 12:32:43 2012 @@ -68,12 +68,12 @@ sub merge { if ($entry{branch}) { # NOTE: This doesn't escape the branch into the pattern. - $pattern = printf '^ [*] %s branch\|Branch:\n *%s', $entry{branch}, $entry{branch}; + $pattern = sprintf '\V\(%s branch\|branches\/%s\|Branch:\n *%s\)', $entry{branch}, $entry{branch}, $entry{branch}; $mergeargs = "--reintegrate $BRANCHES/$entry{branch}"; print $logmsg_fh "Reintergrate the $entry{header}:"; print $logmsg_fh ""; } elsif (@{$entry{revisions}}) { - $pattern = 'r' . $entry{revisions}->[0]; + $pattern = '^ [*] \V' . 'r' . $entry{revisions}->[0]; $mergeargs = join " ", (map { "-c$_" } @{$entry{revisions}}), '^/subversion/trunk'; if (@{$entry{revisions}} > 1) { print $logmsg_fh "Merge the $entry{header} from trunk:"; @@ -88,7 +88,6 @@ sub merge { print $logmsg_fh $_ for @{$entry{entry}}; close $logmsg_fh or die "Can't close $logmsg_filename: $!"; - $pattern = '\V'.$pattern; my $script = <<"EOF"; #!/bin/sh set -e @@ -96,7 +95,7 @@ $SVN diff > $backupfile $SVN revert -R . $SVN up $SVN merge $mergeargs -$VIM -e -s -n -N -i NONE -u NONE -c '/^ [*] $pattern/normal! dap' -c wq $STATUS +$VIM -e -s -n -N -i NONE -u NONE -c '/$pattern/normal! dap' -c wq $STATUS if $WET_RUN; then $SVN commit -F $logmsg_filename else @@ -109,8 +108,7 @@ EOF $script .= <<"EOF" if $entry{branch}; reinteg_rev=\`$SVN info $STATUS | sed -ne 's/Last Changed Rev: //p'\` if $WET_RUN; then - $SVN rm $BRANCHES/$entry{branch}\ - -m "Remove the '$entry{branch}' branch, reintegrated in r\$reinteg_rev." + $SVN rm $BRANCHES/$entry{branch} -m "Remove the '$entry{branch}' branch, reintegrated in r\$reinteg_rev." else echo "Removing reintegrated '$entry{branch}' branch" fi @@ -205,15 +203,17 @@ sub main { usage, exit 0 if @ARGV; usage, exit 1 unless -r $STATUS; + my $sawapproved; @ARGV = $STATUS; while (<>) { my @lines = split /\n/; # Section header? + next unless $sawapproved ||= /^Approved changes/; print "\n\n=== $lines[0]" and next if $lines[0] =~ /^[A-Z].*:$/i; # Backport entry? - handle_entry @lines and next if $lines[0] =~ /^ \*/; + handle_entry @lines and next if $lines[0] =~ /^ \*/ and $sawapproved; warn "Unknown entry '$lines[0]' at $ARGV:$.\n"; } Modified: subversion/branches/showing-merge-info/tools/examples/SvnCLBrowse URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/examples/SvnCLBrowse?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/tools/examples/SvnCLBrowse (original) +++ subversion/branches/showing-merge-info/tools/examples/SvnCLBrowse Mon Jan 16 12:32:43 2012 @@ -161,7 +161,7 @@ class _item: class SvnCLBrowse(wx.App): def __init__(self, wc_dir): svn.core.svn_config_ensure(None) - self.svn_ctx = svn.client.ctx_t() + self.svn_ctx = svn.client.svn_client_create_context() self.svn_ctx.config = svn.core.svn_config_get_config(None) if wc_dir is not None: self.wc_dir = svn.core.svn_path_canonicalize(wc_dir) Modified: subversion/branches/showing-merge-info/tools/examples/get-location-segments.py URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/examples/get-location-segments.py?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/tools/examples/get-location-segments.py (original) +++ subversion/branches/showing-merge-info/tools/examples/get-location-segments.py Mon Jan 16 12:32:43 2012 @@ -124,7 +124,7 @@ ERROR: %s sys.exit(1) core.svn_config_ensure(None) - ctx = client.ctx_t() + ctx = client.svn_client_create_context() providers = [ client.get_simple_provider(), core.svn_auth_get_ssl_server_trust_file_provider(), Modified: subversion/branches/showing-merge-info/tools/server-side/svnpredumpfilter.py URL: http://svn.apache.org/viewvc/subversion/branches/showing-merge-info/tools/server-side/svnpredumpfilter.py?rev=1231975&r1=1231974&r2=1231975&view=diff ============================================================================== --- subversion/branches/showing-merge-info/tools/server-side/svnpredumpfilter.py (original) +++ subversion/branches/showing-merge-info/tools/server-side/svnpredumpfilter.py Mon Jan 16 12:32:43 2012 @@ -33,6 +33,7 @@ log -vq' when run against the root of th will be filtered by a user with universal read access to the repository's data. Do not use the --use-merge-history (-g) or --stop-on-copy when generating this revision log stream. +Use the default ordering of revisions (that is, '-r HEAD:0'). Return errorcode 0 if there are no additional dependencies found, 1 if there were; any other errorcode indicates a fatal error.
