Thread (7 messages) flat view 7 messages, 5 authors, 2016-06-15

Re: question about a merge result

From: Björn Steinbrink <hidden>
Date: 2016-06-15 22:46:41

On 2009.04.30 17:05:19 +0200, Francis Moreau wrote:
On Thu, Apr 30, 2009 at 4:26 PM, Jeff King [off-list ref] wrote:
quoted
On Thu, Apr 30, 2009 at 02:34:43PM +0200, Michael Gaber wrote:
quoted
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help