Philip, the comments I committed below were written with you in mind.
Maybe you have thoughts on how to improve the fix of revision 3150.
Didn't we recently have a discussion here about whether
svn_path_split("/") should return "/" vs ""? If so, did we change its
behavior to return "/" when given "/" as input? Such a change could
have caused the bug that rev 3150 fixed, but I'm not sure what the
best course is, in that case.
Anyway, hoping you have some insight...
-Karl
kfogel@tigris.org writes:
> + # The bug was that
> + #
> + # $ svn log file:///nonexistent_path
> + #
> + # would go into an infinite loop, instead of failing immediately as
> + # it should. The loop was because svn_ra_local__split_URL() used
> + # svn_path_split() to lop off components and look for a repository
> + # in each shorter path in turn, depending on svn_path_is_empty_nts()
> + # to test if it had reached the end. Somewhere along the line we
> + # changed the path functions (perhaps revision 3113?), and
> + # svn_path_split() stopped cooperating with svn_path_is_empty() in
> + # this particular context -- svn_path_split() would reach "/",
> + # svn_path_empty() would correctly claim that "/" is not empty, the
> + # next svn_path_split() would return "/" again, and so on, forever.
> + #
> + # This bug was fixed in revision 3150, by checking for "/"
> + # explicitly in svn_ra_local__split_URL(). By the time you read
> + # this, that may or may not be the settled fix, however, so check
> + # the logs to see if anything happened later.
> + #
> + # Anyway: this test _always_ operates on a file:/// path. Note that
> + # if someone runs this test on a system with "/nonexistent_path" in
> + # the root directory, the test could fail, and that's just too bad :-).
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Sep 10 07:36:39 2002