git reintegrate 0.1; manager of integration branches


git reintegrate is a helper tool to manage integration branches, it
has all the options of other known tools.

This is a rewrite of John Keeping’s git-integration in Ruby, it has
essentially the same features and passes all the git-integration
tests, but it has other features.

One feature that is missing from git-integration is the ability to
parse existing integration branches.

To give a try you can do:

git clone
cd git
git fetch -u origin 'refs/tags/*:refs/tags/*' 'refs/heads/*:refs/heads/*'
git checkout pu
git reintegrate --generate pu master

Which will generate the integration instructions for you:

% git reintegrate --cat
base master
merge jl/submodule-mv
Moving a regular file in a repository with a .gitmodules file was
producing a warning 'Could not find section in .gitmodules where
merge ap/remote-hg-unquote-cquote
A fast-import stream expresses a pathname with funny characters by
quoting them in C style; remote-hg remote helper forgot to unquote
such a path.
merge jk/for-each-ref-skip-parsing
merge jk/pack-corruption-post-mortem
merge jk/reset-p-current-head-fix
"git reset -p HEAD" has codepath to special case it from resetting
to contents of other commits, but recent change broke it.

It also has support for “evil merges”, so it should be perfectly
usable for git.git maintenance.

You can edit the instructions with git reintegrate --edit.

The simplest way to begin an integration branch is with:

git reintegrate --create pu master
git reintegrate --add=branch1 --add=branch2 --add=branch3

To generate the integration branch run git reintegrate --rebuild, if
there are merge conflicts, solve them and continue with git
reintegrate --continue

Despite having more features, the code is actually smaller thanks to
Ruby awesomeness.


Felipe Contreras wrote on 01 Nov 2013