On Wed, Sep 10, 2008 at 9:13 AM, Vlad Georgescu <vgeorgescu_at_gmail.com> wrote:
> Hi,
>
> 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.
Hi Vlad,
Agreed, but doesn't this already work this way?
> 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.
How do we account for mixed-revision working copies? Do we give up
and set empty mergeinfo in that case or do you think it can be worked
around?
While on that topic: Danil - I noticed in your original patch
svn_client__get_wc_mergeinfo was tweaked to support inheritance of
mergeinfo across mixed-revision boundaries. It seems to me we might
easily inherit incorrect mergeinfo if doing this, am I missing
something?
Paul
> 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.
---------------------------------------------------------------------
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 16:57:34 CEST