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

From: "Neal Kreitzinger" <[email-masked]>
Date: Thu, 25 Mar 2010 20:04:11 -0500

In other words, when two people modify the same file in different places I 
want the automerge results file, but I want the resulting file marked as 
unmerged so the programmer can then run git-mergetool to review the merge 
results.  This also prevents the programmer from running git-commit 
immediately after the automerge without reviewing the merge results.  Can 
"mark automerge of samefile as 'unmerged'" be done in git via config 
settings or command options?

v/r,

Neal

"Neal Kreitzinger" <[email-masked]> wrote in message 
news:[email-masked]...
> 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
>
>