You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Lieven Govaerts <sv...@mobsol.be> on 2008/09/11 07:34:20 UTC

Re: svn commit: r32977 - trunk/subversion/libsvn_repos

cmpilato@tigris.org wrote:
> Author: cmpilato
> Date: Mon Sep  8 15:44:18 2008
> New Revision: 32977
> 
> Log:
> Fix the current early bailout of 'svn log' as exhibited during
> `svn log -gq -r31828 file:///usr/local/svn/subversion'.
> 
> * subversion/libsvn_repos/log.c
>   (get_combined_mergeinfo_changes, handle_merged_revisions): Squash
>     not-a-directory errors in the same places we squash not-found errors.
> 
> Modified:
>    trunk/subversion/libsvn_repos/log.c
> 

Can you describe an easy way to reproduce this in a greek repository? I
want to add a test but don't know the mergeinfo code well enough to
understand what was wrong from your patch, nor from your current repro
recipe.

Lieven

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn commit: r32977 - trunk/subversion/libsvn_repos

Posted by "C. Michael Pilato" <cm...@collab.net>.
Lieven Govaerts wrote:
> cmpilato@tigris.org wrote:
>> Author: cmpilato
>> Date: Mon Sep  8 15:44:18 2008
>> New Revision: 32977
>>
>> Log:
>> Fix the current early bailout of 'svn log' as exhibited during
>> `svn log -gq -r31828 file:///usr/local/svn/subversion'.
>>
>> * subversion/libsvn_repos/log.c
>>   (get_combined_mergeinfo_changes, handle_merged_revisions): Squash
>>     not-a-directory errors in the same places we squash not-found errors.
>>
>> Modified:
>>    trunk/subversion/libsvn_repos/log.c
>>
> 
> Can you describe an easy way to reproduce this in a greek repository? I
> want to add a test but don't know the mergeinfo code well enough to
> understand what was wrong from your patch, nor from your current repro
> recipe.

Sorry, I can't quick come up with a recipe, either.  The change makes sense
given the pre-existing comments:

      /* Figure out what path/rev to compare against.  Ignore
         not-found errors returned by the filesystem.  */

All I did was extend the errors disregarded from only SVN_FS_ERR_NOT_FOUND
(which works when its only the basename of the path that's missing) to also
include SVN_FS_ERR_NOT_DIRECTORY (which is the error you get when you can't
even get down to basename for lack of intermediate directories).

Now that I look at the recipe though, I'm wondering about the *root cause*.
 This business of masking errors might be hiding a real algorithmic problem.
 I'll spend some time looking into this (and hopefully come up with a
greek-tree recipe for you in the process).

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand