git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* ANNOUNCE: git-integration -- Easily manage integration branches
@ 2013-07-30 15:46 John Keeping
  2013-07-30 16:45 ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: John Keeping @ 2013-07-30 15:46 UTC (permalink / raw)
  To: git

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ANNOUNCE: git-integration -- Easily manage integration branches
  2013-07-30 15:46 ANNOUNCE: git-integration -- Easily manage integration branches John Keeping
@ 2013-07-30 16:45 ` Junio C Hamano
  2013-07-30 17:57   ` John Keeping
  0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2013-07-30 16:45 UTC (permalink / raw)
  To: John Keeping; +Cc: git

John Keeping <john@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)?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: ANNOUNCE: git-integration -- Easily manage integration branches
  2013-07-30 16:45 ` Junio C Hamano
@ 2013-07-30 17:57   ` John Keeping
  0 siblings, 0 replies; 3+ messages in thread
From: John Keeping @ 2013-07-30 17:57 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

On Tue, Jul 30, 2013 at 09:45:49AM -0700, Junio C Hamano wrote:
> John Keeping <john@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.

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-07-30 17:57 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-30 15:46 ANNOUNCE: git-integration -- Easily manage integration branches John Keeping
2013-07-30 16:45 ` Junio C Hamano
2013-07-30 17:57   ` John Keeping

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).