[Svnmerge] [PATCH] Bidirectional patch take 2

Blair Zajac blair at orcaware.com
Fri Feb 24 12:06:43 PST 2006


Alan Barrett wrote:
> On Fri, 24 Feb 2006, Giovanni Bajo wrote:
> 
>>["svn log" is] the one command that weights most in the "svnmerge
>>avail" time. I don't consider making "svnmerge avail" twice as slow in
>>a repository without reflected revisions a good tradeoff for having an
>>improved correctness.
> 
> 
> Could we pay the penalty only for "svnmerge merge", and not for
> "svnmerge avail"?  If a reflected revision is marked as available and
> then the user tries to merge it, that could be detected and refused.

I think for consistency, merge and avail should work over the same revision 
ranges.  That may get confusing for users.

> It would also be possible to cache the list of available revisions in a
> property.  Then "svnmerge avail" would have to do the slow checking only
> for revisions newer than the data in th cache.

I think all of us have tried to think of ways to save this data in the 
repository or some external location and haven't come up with a satisfactory way 
of doing so.

I'm getting to thinking that svnmerge.py can use a pickled data file in 
~/.subversion to save any known data from the repository that can never be 
changed.  For example, the revisions that were modified in a particular 
directory, or the list of files changed for a revision.  This would prevent us 
having to do expensive svn logs over large revision ranges, just svn logs over 
short revision ranges since svnmerge.py svn log was last run.

I'm not talking about updating any .dot files or svn properties during the 'svn 
commit' phase.  This is just caching data that cannot be changed in the 
subversion repository.  So we should not cache the svn:log property when the svn 
commit message is generated.

Regards,
Blair



More information about the Svnmerge mailing list