git-imerge/README.rst

74 lines
2.4 KiB
ReStructuredText
Raw Normal View History

2012-12-28 02:27:00 +04:00
==============================================
git-mergemate -- tools to help with git merges
==============================================
git-mergemate is an experimental tool to help in various ways with
difficult git merges. See `my blog`_ for more information.
**This tool is experimental! If it breaks, you get to keep the
pieces. For example, it is strongly recommended that you make a clone
of your git repository and run the script on the clone rather than the
original.**
2012-12-28 02:43:15 +04:00
git-mergemate is under the GNU General Public License (GPL), version 2
or later.
2012-12-28 02:27:00 +04:00
Usage::
git-mergemate --help
Output this message.
git-mergemate diagram [--full] BRANCH1...BRANCH2 >diagram.ppm
2012-12-28 02:27:00 +04:00
Determine which pairs of commits from the two branchs can be
merged together without conflict. Output the result as a
PPM-formatted image, where successful merges are shown as
green pixels and unsuccessful merges as red pixels.
2012-12-28 02:27:00 +04:00
git-mergemate merge BRANCH
2012-12-28 02:27:00 +04:00
Merge the commits from BRANCH into HEAD, one commit at a
time. In other words, transform this:
o---o---o---o HEAD
\
A---B---C---D BRANCH
into this:
o---o---o---o---A'--B'--C'--D' HEAD
\ / / / /
--------A---B---C---D BRANCH
This is like a rebase, except with the history of individual
merges retained [1].
If there is a merge conflict, stop in "conflicted" state (as
usual with a git merge). The user should resolve the
conflict, commit, and then re-execute the git-mergemate command to
continue.
git-mergemate find-conflict BRANCH1..BRANCH2
2012-12-28 02:27:00 +04:00
Use bisection to determine the earliest commit on BRANCH2 that
causes a conflict when merged to BRANCH1. Don't actually
2012-12-28 02:27:00 +04:00
retain any merges.
git-mergemate find-conflict BRANCH1...BRANCH2
2012-12-28 02:27:00 +04:00
Use bisection to find a pair of earliest commits (one from
2012-12-28 02:27:00 +04:00
each branch) that do not merge cleanly. Don't actually retain
any merges.
git-mergemate reparent [PARENT...]
2012-12-28 02:27:00 +04:00
Change the parents of the HEAD commit to the specified list.
Write the name of the new commit object to stdout without
actually pointing HEAD at it.
2012-12-28 02:27:00 +04:00
In all cases, only the --first-parent commits are considered for
merging, and git rerere is disabled.
2012-12-28 02:27:00 +04:00
.. _`my blog`: http://softwareswirl.blogspot.de/