subversion-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Johan Corveleyn <jcor...@gmail.com>
Subject Re: svn merge operation extremely slow
Date Mon, 03 Oct 2011 13:55:22 GMT
On Mon, Oct 3, 2011 at 3:04 PM, Stefan Sperling <stsp@elego.de> wrote:
> On Mon, Oct 03, 2011 at 02:59:25PM +0200, Johan Corveleyn wrote:
>> On Mon, Oct 3, 2011 at 2:35 PM, Johan Corveleyn <jcorvel@gmail.com> wrote:
>> > On Mon, Oct 3, 2011 at 2:16 PM, Kyle Leber <kyle.leber@gmail.com> wrote:
>> >> I set the mime-type to "application/octet-stream" in the working copy prior
>> >> to merge and this fixed the problem.  No more heavy CPU usage or excessive
>> >> time spent on the file.
>> >
>> > I'm glad it helped. Apart from the performance, it's important that
>> > svn does this merge the "binary way", because as you said line-based
>> > merges are not correct for this file.
>>
>> It may also interest you (and other readers of this thread) that there
>> is an open enhancement request for making text-merges take the same
>> shortcut as binary-merges (if mine == merge-left then set merged :=
>> merge-right), to avoid expensive diffing [1]. But that hasn't been
>> addressed yet.
>>
>>
>> [1] http://subversion.tigris.org/issues/show_bug.cgi?id=4009 : Big
>> trivial text files merged MUCH slower than binary - pls optimize.
>>
>
> I think we should also file an issue about the problem discussed
> in this thread. svn should take properties on the left/right side of the
> merge into account when determining whether to treat a file as binary.
> I guess it should run the binary merge if any of left, right, or the
> target are marked as binary.

Yes, maybe you're right. I don't know the specifics / historics of
this behavior (maybe there is a reason for this?). But on the surface
it looks like it should indeed do a binary merge if either one of
left, right or target is marked as binary.

Even if #4009 would be addressed, it would still make a difference in
the situation where the shortcut-condition (mine == merge-left)
doesn't hold. In that case, I think the "binary-merge" would always
flag a conflict (because it can't do a line-based merge). Is that also
the behavior we want f.i. if only merge-left (or only merge-right)
were marked as binary, and all the other "players" are marked as text?
I guess it's the safest thing to do ...

-- 
Johan

Mime
View raw message