[SoC] Rebase feature - Introduction

Stefano Tortarolo stefano.tortarolo at gmail.com
Tue May 27 12:31:37 CDT 2008


Matt Mackall wrote:
> On Mon, 2008-05-26 at 16:09 +0200, Stefano Tortarolo wrote:
>> Hi,
>> I've been working on my SoC project for some time and now I'm ready to
>> show you something...
>> I'm also writing a paper to describe what my project consists in. I 
>> think it can be useful to create a common field between me and you.
>>
>> Currently it's available a very first prototype that can handle very
>> simple situations, but can't handle complex ones described in the paper
>> nor user interruption/restore.
>> Actually, if you try to rebase on the same branch it recognizes that
>> situation, but it won't allow you to do that.
> 
> This is good as far as it goes, but I think you ought to think through
> the trickier cases before you code too much further. Like how to rebase
> branches containing internal or external merges.
> 

Yes, I'm already working on it... I haven't found a solution yet, there
are a lot of corner cases.

For example, let's consider this situation:

o  9: R1
|
| o    8: L4
| |\
| | o  7: E3
| | |
| | o  6: E2
| | |
| o |  5: L3
| |\|
| | o  4: E1
| | |
| o |  3: L2
| |/
| o  2: L1
|/
o  1: C2
|
o  0: C1

What should happen if I tried to rebase 5 on 9? The parents of 5' should
be 9 and what? 3 or 4? I think none of them, that's why the rebasing of
a merge revision shouldn't be allowed in this case.
What do you think? Is there something wrong?

Stefano


More information about the Mercurial-devel mailing list