Dear list, I am a little confused why the following yields a conflict: $ git init $ touch a; git add a; git commit -ma Created initial commit 0ba90cc: a 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 a # create merger branch for later $ git branch merger # create a file $ date > d; git add d; git commit -md1 Created commit 89d22eb: d 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 d # branch off a second branch and populate it $ git checkout -b second Switched to a new branch "second" $ touch b; git add b; git commit -mb Created commit 7370737: b 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 b # modify file changed in previous commit $ git checkout master Switched to branch "master" $ date >> d; git add d; git commit -md2 Created commit bb5f1b4: d2 1 files changed, 1 insertions(+), 1 deletions(-) Now the tree structure is x -- master: d2 | x -- second: b |/ x d1 | x -- merger: a # now octopus-merge master+second into merger $ git checkout merger Switched to branch "merger" $ git merge master second Trying simple merge with bb5f1b4f3a8cbfcbc9dbc97cc823f3ca05db2db1 Trying simple merge with 7370737ff3aa6540a425db015e194766d2cbda2e Simple merge did not work, trying automatic merge. Added d in both, but differently. error: Could not read .merge_file_mCwa4W ERROR: Merge conflict in d fatal: merge program failed Automatic merge failed; fix conflicts and then commit the result. I don't understand why these conflict. I mean, sure, it makes sense: after merging master, file d is at d2. Now when merging second, it tries to replace d by its ancestor, d1. What I don't understand is why Git does not understand that commit d is part of the path of arriving at d2, so when 'second' is merged, Git *should* really see that the change to file d in 'second' (d1) is an ancestor of the already present d2 commit, and *not* conflict. What am I misunderstanding here? Thanks, -- martin; (greetings from the heart of the sun.) \____ echo mailto: !#^."<*>"|tr "<*> mailto:" net@madduck "distrust all those who love you extremely upon a very slight acquaintance and without any visible reason." -- lord chesterfield spamtraps: madduck.bogus@xxxxxxxxxxx
Attachment:
digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/)