Although git-imerge isn't the newest of news, I've never announced it
on this mailing list, and I think it might be interesting to many users.

git-imerge [1] is an open-source tool that helps you perform difficult
Git merges and rebases by allowing conflicts to be resolved
incrementally.  The tool breaks the full merge down into pairwise merges
of one commit from each branch.  When a pairwise merge conflicts, the
tool asks you to resolve the conflict, which is hopefully small enough
to be tractable.  Each completed pairwise merge is recorded as a step
towards completing the full merge.  When all of the pairwise merges are
done, the results can be converted into a merge or rebase as you choose.

git-imerge has two primary goals:

* Reduce the pain of resolving merge conflicts to its unavoidable
  minimum, by finding and presenting the smallest possible conflicts,
  namely those between the changes introduced by one commit from each

* Allow a merge to be saved, tested, interrupted, published, and
  collaborated on while it is in progress.

The hope is to rescue that branch that has diverged so far from master
that merging it seems intractable and the only alternative seems to be
to abandon the branch and start again.  (I think we've all been there!)

I think that it is easiest to understand the concept of incremental
merging visually, and therefore I recommend the video of my git-imerge
presentation [2] from the GitMerge 2013 conference (20 min) as a good
introduction.  The full slides for that talk are available in the
git-imerge repository under doc/presentations/GitMerge-2013.  At the
same conference, I was interviewed about git-imerge by Thomas Ferris
Nicolaisen for his GitMinutes Podcast #12 [3].

To learn how to use the git-imerge tool itself, I suggest the blog
article "git-imerge: A Practical Introduction" [4] and also the help
built unto the command ("git-imerge --help" and "git-imerge SUBCOMMAND
--help").  If you want more information, the theory and benefits of
incremental merging are described in minute detail in a series of blog
articles [5].

git-imerge is still experimental, due to a lack of time to work on it.
But it is already (cautiously) usable, and I am very excited about the
idea and would love to get feedback and help from the community.



Michael Haggerty

You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
For more options, visit

Reply via email to