Subject: Challenges for an octopus merge

From: Markus Elfring <[email-masked]>
Date: Thu, 10 Feb 2011 15:30:44 +0100

Hello,

I have got an update history like the following in a local repository with ten 
patches in separate topic branches on my openSUSE 11.3 system.

master -> tag: v3.0 -> compilation_maintenance
               /->  errno => C1
              /->   braces => C2
             /->    string => C3
            /->     binary_search => C4
  -> route1 --->    temporary_files => C5
            \->     make_functions_static => C6
             \->    const-correctness => C7
              \->   signal_handling => C8
               \->  enum => C9
                \-> double_declaration_deletion => C10

elfring@Sonne:~/Projekte/BtYacc/lokal2> git --version && git checkout -b test3
git version 1.7.3.4
Switched to a new branch 'test3'
elfring@Sonne:~/Projekte/BtYacc/lokal2> git merge --no-ff --stat --verbose --log 
-m 'Combination of six topics' errno braces string binary_search temporary_files 
make_functions_static
Fast-forwarding to: errno
Trying simple merge with braces
Trying simple merge with string
Trying simple merge with binary_search
Trying simple merge with temporary_files
Simple merge did not work, trying automatic merge.
Auto-merging defs.h
Trying simple merge with make_functions_static
Simple merge did not work, trying automatic merge.
Auto-merging defs.h
ERROR: content conflict in defs.h
Auto-merging main.c
Auto-merging mkpar.c
fatal: merge program failed
Automatic merge failed; fix conflicts and then commit the result.

The merge description (suggested commit message) was fine in the display of the 
tool "Git GUI 0.13.0" (Tcl/Tk version 8.5.8).
I delete the conflict section in the header file "defs.h" completely.

elfring@Sonne:~/Projekte/BtYacc/lokal2> git merge --no-ff --stat --verbose --log 
-m 'Combination of four topics' const-correctness double_declaration_deletion 
enum signal_handling
Trying simple merge with const-correctness
Simple merge did not work, trying automatic merge.
Auto-merging defs.h
Auto-merging output.c
Auto-merging reader.c
Trying simple merge with double_declaration_deletion
Simple merge did not work, trying automatic merge.
Auto-merging mkpar.c
ERROR: content conflict in mkpar.c
fatal: merge program failed
Automated merge did not work.
Should not be doing an Octopus.
Merge with strategy octopus failed.

The merge description was missing (no commit message) in this case.
Is this omission acceptable?

I have also got the impression that the corresponding source files did not 
contain enough conflict markers.
Is my use case relevant for further considerations of details with this merging 
process?

Regards,
Markus