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

Re: Expected Behavior?

From: Petr Baudis <hidden>
Date: 2016-06-15 22:42:11

Possibly related (same subject, not in this thread)

Dear diary, on Tue, Nov 08, 2005 at 10:03:32PM CET, I got a letter
where Fredrik Kuivinen [off-list ref] said that...
On Mon, Nov 07, 2005 at 10:00:11PM -0800, Junio C Hamano wrote:
quoted
Jon Loeliger [off-list ref] writes:
quoted
That is, after the merge, file3 appears to have simply kept
the contents of the current, master branch.  Why wasn't the
dev branch represented here?

I _almost_ think I get it, and then *poof*...
Automerge completely punted for this path, and at this point, it
is still unmerged:

------------
$ git ls-files --unmerged
100644 c4da0eb.... 2       file3
100644 fbc2aa4.... 3       file3
------------

Three-way "git-read-tree -m -u O A B" (O is for old, A is ours
and B is hers) puts O in stage1, A in stage2 and B in stage3.
This path did not exist in O so we only have them in stage2 and
stage3.  You could compare the stages like this:
Jon: You could try to this merge with the recursive merge strategy
(git merge -s recursive 'merge message' master dev) If you do, you
_should_ get something like:

    CONFLICT (add/add): File file3 added non-identically in both
    branches. Adding as file3_master and file3_dev instead.

You will then end up with file3_master and file3_dev in your working
tree, which corresponds to file3 in the master branch and file3 in the
dev branch, respectively.
The world would be so much better if there would be just a _single_
per-file automerger instead of three right now...

I'm planning to feed back the automerger stuff from Cogito to GIT like I
already did once, but it's not a priority right now so it may take some
time (unless someone else does it, which is something I certainly
wouldn't oppose).

But in the longer term even the recursive merge should use the same one,
so either we should enhance the shell one to handle all the cases, or
split out the python per-file automerger from recursive merge and make
it possible to use this one separately. This is probably more viable
option in the longer term, even though I personally don't grok python
very well - whatever, at least I'll have to get better. ;-)

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
VI has two modes: the one in which it beeps and the one in which
it doesn't.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help