Thread (3 messages) flat view 3 messages, 2 authors, 2016-06-15

Re: Could this be done simpler?

From: Christian Couder <hidden>
Date: 2016-06-15 22:46:59

On Friday 26 June 2009, Christian Couder wrote:
On Thursday 25 June 2009, Junio C Hamano wrote:
quoted
Side note.

People sometimes say, and I am certain I agreed to them on more than
one occasions, that Octopus hurt bisectability and does not have much
value in real life.  I've always thought this bisectability issue was a
downside of Octopus merges, but now I think about it, perhaps "git
bisect" can be taught to dynamically decompose an Octopus merges into a
sequence of two-head virtual merges while bisecting.  We strongly
discourage and do not allow conflicting Octopus merges, so when you
need to bisect a history with an Octopus that looks like this:

    ---o---A
            \
  ---o---B---M---o
            /
    ---o---C

it should be able to mechanically decompose it, without conflicts, into


    ---o---A
            \
  ---o---B---M1--M2--o
                /
        ---o---C

where the tree of M and the tree of M2 are identical.
If someone creates a "git decompose-octopus <commit>" command then you
only need to do "git replace M M2" after that and you can bisect as
usual. (Of course after that you can remove the replacement with "git
replace -d M".)
(Or if we make the "refs/replace/bisect/" directory special so that it is 
only used when bisecting, and if the replace ref is created in this 
directory, then no need to remove the replacement ref. On the contrary it's 
better to leave it there so that people who fetch it benefit from it too.)

Best regards,
Christian.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help