Hi,
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 more 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 https://github.com/gitster/git/ 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
path=<filename>'.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.
Enjoy.
https://github.com/felipec/git-reintegrate
Changes since v0.1:
* Add support for empty commits * Add support for pause command * Update manpage * Add bash completion
Felipe Contreras (26):
Add copyright and license notices
Fix EDITOR support with arguments
Trivial style cleanup
Improve command regex
Add support for empty commits
test: improve check_int()
Add support for 'pause' command
doc: rename manpage file
doc: update options
doc: add description
doc: add missing instruction commands
doc: cleanup . command
Verify branches after parsing
test: fix test names
Remove unused statements
Update README
test: cleanup instruction sheets
Update copyright notices
Add bash completion
build: add installation stuff
readme: add installation instructions
Add gitignore for documentation
trvis: initial configuration
travis: add verbosity
test: add test-lib helper
travis: remove Ruby 1.8-- Felipe Contreras