ANNOUNCE: git-integration -- Easily manage integration branches

2013-07-30 Thread John Keeping
I wrote this script a few months ago and have been using it pretty much
daily since then, so I figure it's time to see if anyone else finds it
useful...

git-integration [1] is a script to help manage integration branches in
Git.  By defining a base point and a set of branches to be merged to
form the integration branch, git-integration lets you easily rebuild an
integration branch when anything in it changes, as well as showing you
the status of all of the branches in the integration branch.

For example, the instruction sheet for git-integration's pu branch
recently looked like this:

base master

merge make-clean

  Add a clean target to the makefile.

merge version

  Support for --version option.

  N.B. this builds on make-clean.

merge skip-option

  Needs more work to be able to handle branch not found.

This tells git-integration to base the pu branch on master and merge
the make-clean, version and skip-option branches in.  The comments
following the merge instructions are added to the commit message for
the corresponding merge commit.  When I want to rebuild the pu branch
I simply do:

$ git integration --rebuild pu

To change the contents of the branch, I either edit the instruction
sheet manually:

$ git integration --edit pu

or quickly add a new branch from the command line:

$ git integration --add my-new-branch pu

In fact, I can combine these to get the benefit of bash-completion on
the branch name and the ability to edit the instruction sheet - when
multiple commands are specified, git-integration performs each of them
in a sensible order, described in the manpage [2].


[1] http://johnkeeping.github.io/git-integration/
[2] http://johnkeeping.github.io/git-integration/git-integration.html
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ANNOUNCE: git-integration -- Easily manage integration branches

2013-07-30 Thread Junio C Hamano
John Keeping j...@keeping.me.uk writes:

 I wrote this script a few months ago and have been using it pretty much
 daily since then, so I figure it's time to see if anyone else finds it
 useful...

 git-integration [1] is a script to help manage integration branches in
 Git.  By defining a base point and a set of branches to be merged to
 form the integration branch, git-integration lets you easily rebuild an
 integration branch when anything in it changes, as well as showing you
 the status of all of the branches in the integration branch.

 For example, the instruction sheet for git-integration's pu branch
 recently looked like this:

   base master

   merge make-clean

 Add a clean target to the makefile.

   merge version

 Support for --version option.

 N.B. this builds on make-clean.

   merge skip-option

 Needs more work to be able to handle branch not found.

 This tells git-integration to base the pu branch on master and merge
 the make-clean, version and skip-option branches in.  The comments
 following the merge instructions are added to the commit message for
 the corresponding merge commit.  When I want to rebuild the pu branch
 I simply do:

   $ git integration --rebuild pu

 To change the contents of the branch, I either edit the instruction
 sheet manually:

   $ git integration --edit pu

 or quickly add a new branch from the command line:

   $ git integration --add my-new-branch pu

 In fact, I can combine these to get the benefit of bash-completion on
 the branch name and the ability to edit the instruction sheet - when
 multiple commands are specified, git-integration performs each of them
 in a sensible order, described in the manpage [2].


 [1] http://johnkeeping.github.io/git-integration/
 [2] http://johnkeeping.github.io/git-integration/git-integration.html

Interesting.

Would it help me to replay evil merges I previously made and avoid
necessity to write merge log messages repeatedly?

In short, can I replace my Meta/Reintegrate and Meta/cook with this
(see Documentation/howto/maintain-git.txt)?

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: ANNOUNCE: git-integration -- Easily manage integration branches

2013-07-30 Thread John Keeping
On Tue, Jul 30, 2013 at 09:45:49AM -0700, Junio C Hamano wrote:
 John Keeping j...@keeping.me.uk writes:
 
  I wrote this script a few months ago and have been using it pretty much
  daily since then, so I figure it's time to see if anyone else finds it
  useful...
 
  git-integration [1] is a script to help manage integration branches in
  Git.  By defining a base point and a set of branches to be merged to
  form the integration branch, git-integration lets you easily rebuild an
  integration branch when anything in it changes, as well as showing you
  the status of all of the branches in the integration branch.
 
  For example, the instruction sheet for git-integration's pu branch
  recently looked like this:
 
  base master
 
  merge make-clean
 
Add a clean target to the makefile.
 
  merge version
 
Support for --version option.
 
N.B. this builds on make-clean.
 
  merge skip-option
 
Needs more work to be able to handle branch not found.
 
  This tells git-integration to base the pu branch on master and merge
  the make-clean, version and skip-option branches in.  The comments
  following the merge instructions are added to the commit message for
  the corresponding merge commit.  When I want to rebuild the pu branch
  I simply do:
 
  $ git integration --rebuild pu
 
  To change the contents of the branch, I either edit the instruction
  sheet manually:
 
  $ git integration --edit pu
 
  or quickly add a new branch from the command line:
 
  $ git integration --add my-new-branch pu
 
  In fact, I can combine these to get the benefit of bash-completion on
  the branch name and the ability to edit the instruction sheet - when
  multiple commands are specified, git-integration performs each of them
  in a sensible order, described in the manpage [2].
 
 
  [1] http://johnkeeping.github.io/git-integration/
  [2] http://johnkeeping.github.io/git-integration/git-integration.html
 
 Interesting.
 
 Would it help me to replay evil merges I previously made and avoid
 necessity to write merge log messages repeatedly?

Currently it does nothing beyond having the ability to continue
automatically if rerere manages to resolve all conflicts (disabled by
default).  There is no equivalent of your refs/merge-fix/ feature,
although I think I might add one soon ;-).

Since the commit messages for the merge commits come from the
instruction sheet, it does avoid the need to write them repeatedly - if
you want to change the merge message you can simply update the
instruction sheet and rebuild.

 In short, can I replace my Meta/Reintegrate and Meta/cook with this
 (see Documentation/howto/maintain-git.txt)?

It performs the same basic function as those scripts, but it's quite a
lot simpler and hasn't been designed for the git.git workflow, so I
don't think it's suitable for replacing your existing scripts.

If I were starting from scratch and attempting to implement the git.git
workflow on top of git-integration, I think I would make
whats-cooking.txt a build artifact generated from the instruction sheet
for pu.  This would require some new commands to be added to
git-integration's instruction sheet to let it assign sections to
branches, but ought to be possible.  I expect there would be some
subtleties though - certainly git-integration's --status output does
not handle all of the cases the Meta/cook does, not least because it
only compares against a single base branch.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html