Branko Čibej <email@example.com> writes:
> Zack Weinberg wrote:
>>Peter Davis <firstname.lastname@example.org> writes:
>>>(2d): Subversion currently doesn't do "smart merging", but neither
>>>does CVS, and it will in the future.
>>I may try to implement this myself, sometime early next year, if no
>>one beats me to it. Shouldn't be hard.
> Er, Zack? I suggest you think twice before saying "shouldn't be hard"
> regarding something most of us have carefully avoided, for sanity's
> sake. :-)
> Seriously: This is something that's fairly easy to hack up, but
> excruciatingly difficult to get right.
I'm aware of the difficulties and I have no intention of doing
anything half-assed. However, I think that the feature can be phased
in. In 1.0 I would really like to see Subversion record merge
parents, even if it doesn't do anything with the information yet,
because it's useful to humans and to future versions of the software.
This is easy, if properties are used carry the information, which I
think is reasonable.
The second stage is 'smart merge' to the extent that ClearCase
implements it: handling only intra-file changes and only when the
entire content of a branch up to some point has been merged to another
branch. It seems to me that this should also be easy, because the
effect is simply to change the greatest common ancestor of the files
involved in the merge. Just having this is enough for the feature to
be broadly useful. I'd like to squeeze this into 1.0 but I wouldn't
mind if it got delayed till 1.1.
The third stage is handling extra-file changes -- tree rearrangements
and so on. This may fall nicely out of the way the SVN filesystem
works, or it may not; I'm not sure.
The fourth stage is what you're probably thinking of as
'excruciatingly difficult to get right': handling merges intelligently
in the presence of single deltas that have been added to or removed
from a branch. I agree that's hard, but I don't think it's necessary
for the first cut of the feature.
If I'm missing something, please tell me.
To unsubscribe, e-mail: email@example.com
For additional commands, e-mail: firstname.lastname@example.org
Received on Wed Dec 11 09:11:28 2002