This test fails for me under RA-local, when my working copy is checked
out via HTTPS.
CMD: svn mergeinfo
file:///opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/svn-test-work/repositories/mergeinfo_tests-4/iota
--config-dir /opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/svn-test-work/local_tmp/config
--password rayjandom --no-auth-cache --username jrandom <TIME =
0.318293>
EXPECTED STDERR (regexp):
.*File not found.*iota.*|.*iota.*path not found.*
ACTUAL STDERR:
Error validating server certificate for 'https://svn.collab.net:443':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: svn.collab.net
- Valid: from Sep 24 22:01:07 2007 GMT until Sep 23 22:01:07 2011 GMT
- Issuer: svn, CollabNet, Brisbane, California, US
- Fingerprint: aa:5b:74:b1:e2:7f:38:b3:2b:c2:b1:60:6e:01:bb:f5:7c:37:98:46
(R)eject or accept (t)emporarily?
subversion/libsvn_ra_neon/util.c:601: (apr_err=175002)
svn: OPTIONS of
'https://svn.collab.net/repos/svn/branches/in-memory-cache/subversion/tests/cmdline':
Server certificate verification failed: issuer is not trusted
(https://svn.collab.net)
EXCEPTION: SVNUnmatchedError
Traceback (most recent call last):
File "/opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/svntest/main.py",
line 1066, in run
rc = apply(self.pred.run, (), kw)
File "/opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/svntest/testcase.py",
line 121, in run
return self.func(sandbox)
File "/opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/mergeinfo_tests.py",
line 116, in mergeinfo_on_unknown_url
"mergeinfo", url)
File "/opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/svntest/actions.py",
line 211, in run_and_verify_svn
expected_exit, *varargs)
File "/opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/svntest/actions.py",
line 248, in run_and_verify_svn2
verify.verify_outputs(message, out, err, expected_stdout, expected_stderr)
File "/opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/svntest/verify.py",
line 331, in verify_outputs
compare_and_display_lines(message, label, expected, actual, raisable)
File "/opt/svn/checkouts/in-memory-cache/subversion/tests/cmdline/svntest/verify.py",
line 303, in compare_and_display_lines
raise raisable
SVNUnmatchedError
FAIL: mergeinfo_tests.py 4: mergeinfo of an unknown url should return error
Technically this is a failure on the in-memory-cache branch, not
trunk, but I'd be shocked if it isn't in trunk as well.
The problem here is that the URL you specified is being parsed as the
source URL (is that what you intended), and the target is being parsed
from the WC. I guess you should specify both?
--dave
On Fri, Apr 4, 2008 at 10:04 AM, <lgo_at_tigris.org> wrote:
> Author: lgo
> Date: Fri Apr 4 10:04:43 2008
> New Revision: 30281
>
> Log:
> ra_serf: Fix issue #3138: make get_locations and get_location_segments return
> an error when the target url isn't found in the repository. This also fixes an
> abort on exit of 'svn merge'.
>
> * subversion/libsvn_ra_serf/getlocations.c
> (svn_ra_serf__get_locations): Raise SVN_ERR_RA_DAV_PATH_NOT_FOUND error when
> the target item doesn't exist in the repository.
>
> * subversion/libsvn_ra_serf/getlocationsegments.c
> (svn_ra_serf__get_location_segments): idem.
>
> * subversion/libsvn_ra_serf/mergeinfo.c
> (svn_ra_serf__get_mergeinfo): Raise the error when the target item doesn't
> exist in the repository.
>
> * subversion/tests/cmdline/merge_tests.py
> (merge_unknown_url): New test.
> (test_list): Run the new test.
>
> * subversion/tests/cmdline/mergeinfo_tests.py
> (mergeinfo_on_unknown_url): New test.
> (test_list): Run the new test.
>
> Modified:
> trunk/subversion/libsvn_ra_serf/getlocations.c
> trunk/subversion/libsvn_ra_serf/getlocationsegments.c
> trunk/subversion/libsvn_ra_serf/mergeinfo.c
> trunk/subversion/tests/cmdline/merge_tests.py
> trunk/subversion/tests/cmdline/mergeinfo_tests.py
>
> Modified: trunk/subversion/libsvn_ra_serf/getlocations.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/getlocations.c?pathrev=30281&r1=30280&r2=30281
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/getlocations.c Fri Apr 4 09:51:52 2008 (r30280)
> +++ trunk/subversion/libsvn_ra_serf/getlocations.c Fri Apr 4 10:04:43 2008 (r30281)
> @@ -274,5 +274,12 @@ svn_ra_serf__get_locations(svn_ra_sessio
> SVN_ERR(parser_ctx->error);
> }
>
> + if (loc_ctx->status_code == 404)
> + {
> + return svn_error_create(SVN_ERR_RA_DAV_PATH_NOT_FOUND, NULL,
> + apr_psprintf(pool, _("'%s' path not found"),
> + req_url));
> + }
> +
> return err;
> }
>
> Modified: trunk/subversion/libsvn_ra_serf/getlocationsegments.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/getlocationsegments.c?pathrev=30281&r1=30280&r2=30281
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/getlocationsegments.c Fri Apr 4 09:51:52 2008 (r30280)
> +++ trunk/subversion/libsvn_ra_serf/getlocationsegments.c Fri Apr 4 10:04:43 2008 (r30281)
> @@ -224,6 +224,14 @@ svn_ra_serf__get_location_segments(svn_r
> SVN_ERR(parser_ctx->error);
> }
>
> +
> + if (gls_ctx->status_code == 404)
> + {
> + return svn_error_create(SVN_ERR_RA_DAV_PATH_NOT_FOUND, NULL,
> + apr_psprintf(pool, _("'%s' path not found"),
> + req_url));
> + }
> +
> svn_pool_destroy(gls_ctx->subpool);
>
> if (err && (err->apr_err == SVN_ERR_UNSUPPORTED_FEATURE))
>
> Modified: trunk/subversion/libsvn_ra_serf/mergeinfo.c
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/libsvn_ra_serf/mergeinfo.c?pathrev=30281&r1=30280&r2=30281
> ==============================================================================
> --- trunk/subversion/libsvn_ra_serf/mergeinfo.c Fri Apr 4 09:51:52 2008 (r30280)
> +++ trunk/subversion/libsvn_ra_serf/mergeinfo.c Fri Apr 4 10:04:43 2008 (r30281)
> @@ -290,10 +290,22 @@ svn_ra_serf__get_mergeinfo(svn_ra_sessio
> svn_error_clear(err);
> return svn_error_createf(SVN_ERR_RA_DAV_PATH_NOT_FOUND, NULL,
> _("'%s' path not found"), handler->path);
> + }
> +
> + if (parser_ctx->error)
> + {
> + svn_error_clear(err);
> + SVN_ERR(parser_ctx->error);
> }
> else
> SVN_ERR(err);
>
> + if (status_code == 404)
> + {
> + return svn_error_createf(SVN_ERR_RA_DAV_PATH_NOT_FOUND, NULL,
> + _("'%s' path not found"), handler->path);
> + }
> +
> if (mergeinfo_ctx->done)
> *catalog = mergeinfo_ctx->result_catalog;
>
>
> Modified: trunk/subversion/tests/cmdline/merge_tests.py
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/tests/cmdline/merge_tests.py?pathrev=30281&r1=30280&r2=30281
> ==============================================================================
> --- trunk/subversion/tests/cmdline/merge_tests.py Fri Apr 4 09:51:52 2008 (r30280)
> +++ trunk/subversion/tests/cmdline/merge_tests.py Fri Apr 4 10:04:43 2008 (r30281)
> @@ -10749,7 +10749,25 @@ def merge_added_subtree(sbox):
> expected_output, expected_disk,
> expected_status, expected_skip)
>
> -
> +#----------------------------------------------------------------------
> +# Issue #3138
> +def merge_unknown_url(sbox):
> + "merging an unknown url should return error"
> +
> + sbox.build()
> + wc_dir = sbox.wc_dir
> +
> + # remove a path from the repo and commit.
> + iota_path = os.path.join(wc_dir, 'iota')
> + svntest.actions.run_and_verify_svn(None, None, [], 'rm', iota_path)
> + svntest.actions.run_and_verify_svn("", None, [],
> + "ci", wc_dir, "-m", "log message")
> +
> +
> + url = sbox.repo_url + "/iota"
> + expected_err = ".*File not found.*iota.*|.*iota.*path not found.*"
> + svntest.actions.run_and_verify_svn("", None, expected_err,
> + "merge", url, wc_dir)
>
> ########################################################################
> # Run the tests
> @@ -10851,6 +10869,7 @@ test_list = [ None,
> foreign_repos,
> foreign_repos_2_url,
> XFail(merge_added_subtree),
> + merge_unknown_url,
> ]
>
> if __name__ == '__main__':
>
> Modified: trunk/subversion/tests/cmdline/mergeinfo_tests.py
> URL: http://svn.collab.net/viewvc/svn/trunk/subversion/tests/cmdline/mergeinfo_tests.py?pathrev=30281&r1=30280&r2=30281
> ==============================================================================
> --- trunk/subversion/tests/cmdline/mergeinfo_tests.py Fri Apr 4 09:51:52 2008 (r30280)
> +++ trunk/subversion/tests/cmdline/mergeinfo_tests.py Fri Apr 4 10:04:43 2008 (r30281)
> @@ -93,8 +93,27 @@ def explicit_mergeinfo_source(sbox):
>
> # Now check on a source we haven't "merged" from.
> svntest.actions.run_and_verify_mergeinfo(adjust_error_for_server_version(""),
> - [2], H2_url, H_path)
> -
> + [2], H2_url, H_path)
> +
> +#----------------------------------------------------------------------
> +# Issue #3138
> +def mergeinfo_on_unknown_url(sbox):
> + "mergeinfo of an unknown url should return error"
> +
> + sbox.build()
> + wc_dir = sbox.wc_dir
> +
> + # remove a path from the repo and commit.
> + iota_path = os.path.join(wc_dir, 'iota')
> + svntest.actions.run_and_verify_svn(None, None, [], 'rm', iota_path)
> + svntest.actions.run_and_verify_svn("", None, [],
> + "ci", wc_dir, "-m", "log message")
> +
> +
> + url = sbox.repo_url + "/iota"
> + expected_err = ".*File not found.*iota.*|.*iota.*path not found.*"
> + svntest.actions.run_and_verify_svn("", None, expected_err,
> + "mergeinfo", url)
>
> ########################################################################
> # Run the tests
> @@ -105,6 +124,7 @@ test_list = [ None,
> no_mergeinfo,
> mergeinfo,
> XFail(explicit_mergeinfo_source),
> + mergeinfo_on_unknown_url,
> ]
>
> if __name__ == '__main__':
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: svn-unsubscribe_at_subversion.tigris.org
> For additional commands, e-mail: svn-help_at_subversion.tigris.org
>
>
--
David Glasser | glasser@davidglasser.net | http://www.davidglasser.net/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-04-04 20:19:41 CEST