Re: question about a merge result

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2009.04.30 17:05:19 +0200, Francis Moreau wrote:
> On Thu, Apr 30, 2009 at 4:26 PM, Jeff King <peff@xxxxxxxx> wrote:
> > On Thu, Apr 30, 2009 at 02:34:43PM +0200, Michael Gaber wrote:
> >
> >> > So merging 'b1' into master removed the B file even if in branch 'b1'
> >> > I restored it.
> >> >
> >> > Could anybody explain me why this is the correct behaviour and why not
> >> > file 'B' is not restored as it was done in branch 'b1' ?
> >>
> >> well, I'd say the thing is, that in b1 there is no change at all to the
> >> tree anymore, so when applied to master (without B) there is no b restored
> >
> > That is exactly it. Git's 3-way merge doesn't look at the intervening
> > history at all. It looks _only_ at the two endpoints and their
> > merge-base (well, that is a bit of a simplification, as there may be
> > multiple merge-bases, but it is what is happening here).
> >
> 
> Well, obviously it's how git works since it's what I got.
> 
> But the question was more about if the cortectness of the end result:
> should 'B' removed after the merge.
> 
> IOW if someone works on its own branch remove B file and thought it
> was a bad idea and restore it whereas another person remove B file but
> miss the fact that it was a bad idea, does the merge should silently
> remove B file ?

You can also have that in the opposite direction. You make a bugfix in
your "master" branch, then cherry-pick that to "maint", but later
realize that you actually can't backport it like and and revert the
cherry-pick.  Then, later, you go to merge "maint" to "master" (to get
other bugfixes that were done directly on "maint"): Should the bugfix be
reverted on "master"? Obviously not.

git takes an approach that's easy to understand: Look at the changes
that the branch made compared to the common ancestor and apply those.
And for a "do it and then revert it" case, the answer is: There are no
changes.

Björn
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]