[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] no mergeinfo on 'mergeinfo NON-affecting' wc-to-wc copy

From: Mark Phippard <markphip_at_gmail.com>
Date: Wed, 10 Sep 2008 09:18:02 -0400

On Wed, Sep 10, 2008 at 9:13 AM, Vlad Georgescu <vgeorgescu_at_gmail.com> wrote:

> 2008/9/10 Danil Shopyrin <danil_at_visualsvn.com>:
>> Hi!
>>
>> Here is the patch that is trying to fix on of the problem discussed at
>> http://svn.haxx.se/dev/archive-2008-08/0793.shtml
>> [[
>> 2) Mergeinfo produced during WC-to-WC copy differs from equivalent
>> REPO-to-REPO copy. If you copy file in working copy and there is no
>> mergeinfo in the working copy then the new file will get an empty
>> mergeinfo record. Similar REPO-to-REPO copy operation doesn't produce
>> empty mergeinfo record.
>> ]]
>>
>> The general idea of the patch is as follows: we don't produce any
>> mergeinfo record if we [definitely] know that it's unnecessary. The
>> patch should ease the pain in the most cases. For example, it's not
>> needed to worry about mergeinfo in the cases when:
>> a. copy is performed within a working copy (it's just a 'local file
>> rename because of refactoring')
>> b. there is no merges except ones on the trunk/branches level (or
>> there is no merges at all)
>>
>
> The patch looks correct, but I think it's more complicated than it
> needs to be. I'd rather not put the extra checks in a different
> function, and I don't think you need to extend
> svn_client__get_wc_mergeinfo().
>
> In propagate_mergeinfo_within_wc(), we need to do the following:
>
> 1. Get the mergeinfo for the source. If it's explicit, not inherited,
> we're done, there's nothing to propagate, because the destination
> already has the same explicit mergeinfo as the source, as a result of
> the copy. Currently, propagate_mergeinfo_within_wc() calls
> calculate_target_mergeinfo(), we can replace this with a call to
> svn_client__get_wc_mergeinfo().
> 2. Figure out which path the destination inherits mergeinfo from, if any.
> 3. If the source and destination inherit from the same parent path (or
> no path at all), we're done.
> 4. Add the mergeinfo to the destination.
>
> If we want to be really smart, we can add a check between steps 1 and
> 2 to see if the source and destination are in the same directory, and
> bail out if they are.

+1. I think Vlad described the desired "logic" to use here perfectly.

-- 
Thanks
Mark Phippard
http://markphip.blogspot.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-09-10 15:18:16 CEST

This is an archived mail posted to the Subversion Dev mailing list.