On Nov 2, 2007 8:12 AM, Hyrum K. Wright <hyrum_wright@mail.utexas.edu> wrote:
> I think the problem is a little deeper than just replacing the abort.
> The abort is occurring in diff_repos_wc(), and it ensures that the
> internal API for that function isn't violated. Somewhere, we're
> violating it, and *that's* the real problem.
>
> From a little bit of investigation, it appears that check_paths(),
> called from do_diff(), is saying that path1 (in do_diff()) is a working
> copy path, when it really isn't. Could it be because we are using the
> BASE revision keyword, which is a local keyword, and that is causing a
> problem somewhere? If so, that might be the error, which should be
> caught, and probably documented somewhere.
>
> Keegan, would you like to look at this and see what you can come up with?
Alrighty, here's patch attempt number two. As I understand it, when
running a svn diff against a base revision, a working path must be
specified as the target, not a URL. I backtracked up the function
chain to find the earliest point it seemed most sensible to test for
this situation, which left me with this little patch in
subversion/svn/diff-cmd.c. It averts the abort and instead displays
an error message. All tests under "make check" passed.
[[[
Fix issue #2996: Catch improper argument to diff against base.revision.
*subversion/svn/diff-cmd.c
(svn_cl__diff): Added block to throw an error in the event of invalid
arguments to diff.
]]]
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Nov 13 07:43:53 2007