Subject: force "unmerged" for same-file auto-merges

From: "Neal Kreitzinger" <[email-masked]>
Date: Tue, 23 Mar 2010 20:44:05 -0500

Scenario:  "same-file auto-merge":  when two different people change the 
same file in their separate repos.  Their changes do not conflict in the 
sense that they are changes to the same lines.  However, their changes do 
conflict in the sense that the resulting merged logic is incorrect.

Concern:
The same-file auto-merge results are overlooked (not reviewed) by the 
programmer because there is nothing preventing a git-commit immediately 
after the auto-merge completes.

Desired Solution:
Perform same-file auto-merge and produce auto-merge results, but mark all 
such auto-merged files as "unmerged" so that they must be reviewed/resolved 
before a git-commit.  The "unmerged" status allows git-mergetool to be run 
(e.g. kdiff3) so that the merged lines can be reviewed.  In this way, all 
auto-merged files are reviewed.

Does anyone know if there are configuration and/or command-line options in 
git that can accomplish this in a fairly straightforward manner?  For 
example, something like this:

Example config:
$ cat gitconfig
[merge]
            samefileauto = forceconflict

Example command:
$ git merge -s sameautoforceconflict branchx

Example results:
$ git merge -s sameautoforceconflict branchx
Merging:
11a99zz examplecommitb
virtual branchx
found 1 common ancestor(s):
22b88yy examplecommita
Auto-merging examplepgm
Merge made by recursive.
 examplepgm |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
$git status
examplepgm: needs merge
# On branch branchx
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working 
directory)
#
#       unmerged:   examplepgm
#
no changes added to commit (use "git add" and/or "git commit -a")

v/r,
Neal