From: "Catalin Marinas" <catalin.marinas@gmail.com>
To: "Yann Dirson" <ydirson@altern.org>
Cc: "Jakub Narebski" <jnareb@gmail.com>, git@vger.kernel.org
Subject: Re: Rebasing stgit stacks
Date: Mon, 22 Jan 2007 22:58:41 +0000 [thread overview]
Message-ID: <b0943d9e0701221458r77b2b48hfa41d3dffcb848d0@mail.gmail.com> (raw)
In-Reply-To: <20070122194756.GA4083@nan92-1-81-57-214-146.fbx.proxad.net>
On 22/01/07, Yann Dirson <ydirson@altern.org> wrote:
> On Mon, Jan 22, 2007 at 05:54:29PM +0000, Catalin Marinas wrote:
> > Currently, in the StGIT terminology stack and branch are about the
> > same. If you want to move to a different stack, just use the "stg
> > branch" command.
>
> I think you missed the point. StGIT stacks are usually forked off
> another branch. As I understand it, Jakub talks about standard
> rebasing, ie. moving the stack base from its current parent branch to
> a new one.
StGIT stacks are a series of volatile commits (commits) at the top of
a branch. The idea when I started writing this tool was that a series
of applied patches would lead to the head of the current branch. The
branch and stack are tightly coupled and you cannot simply change the
parent branch the stack is based on (not from a technical point but
rather from conception one).
> > A stack is just a branch with stgit-specific metadata.
>
> I would rather say that an StGIT stacks uses a branch, but the stack
> is not the branch - eg, unapplied patches do not belong to the branch.
The unapplied patches can have any commit as a parent, either in the
direct history of the current branch or in any other branch, there is
no restriction here. They get in line with the current branch's head
during the push operation.
> Indeed I was thinking about that today, and thought that maybe it
> would make sense not to use a head ref (and thus not using a real
> branch), which would minimize the risk of someone committing by error
> (and thus minimize the need to use "assimilate"), since porcelainish
> commit tools would then refuse to commit there.
But isn't this what Quilt already does (i.e. a different mechanism for
patches, on top of any SCM)?
One of the base ideas of StGIT is that the top patch represents the
head of the current branch and that the patches applied on the stack
always form the recent history of the current branch. I added the
commit command to have a way to freeze this state into the current
branch and no longer manage them with StGIT.
> > What you'd probably want is a way to import patches from a different
> > branch/stack onto the newly checked out branch.
>
> Sometimes you just want to throw out an obsolete branch and move your
> stack to a new baseline. That said, being able to duplicate a stack
> (and possibly rebasing it afterwards) would be useful as well.
You have 'branch --clone' (or --rename if you just want a different
name) and now 'rebase'. As I said, the idea of moving the stack
(patches) on top of a different branch should be done as an import (or
multiple cherry-pick or clone), otherwise we loose the coupling
between branches and stacks.
> > > Although usually you have separate branch as StGIT stack "base", and
> > > you can simply rebase git branch, then do
> > >
> > > $ stg rebase
>
> Oh, I think I understand - he probably uses "base" to refer to what I
> call "parent branch", and not to the refs/bases/<branch> reference...
The ref/bases/<branch> is not used much in StGIT. I initially added it
as a way to see the base of a stack in gitk but that's probably the
only usecase.
--
Catalin
next prev parent reply other threads:[~2007-01-22 22:58 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-09 21:35 Howto use StGit and git-svn at same time Guilhem Bonnefille
2007-01-09 21:41 ` Guilhem Bonnefille
2007-01-09 22:41 ` Yann Dirson
2007-01-15 13:26 ` Guilhem Bonnefille
2007-01-15 20:24 ` Rebasing stgit stacks Yann Dirson
2007-01-15 22:46 ` Catalin Marinas
2007-01-15 23:39 ` Yann Dirson
2007-01-16 22:42 ` Catalin Marinas
2007-01-16 23:17 ` Yann Dirson
2007-01-16 23:30 ` Jakub Narebski
2007-01-17 9:03 ` Karl Hasselström
2007-01-17 11:07 ` David Kågedal
2007-01-17 19:34 ` Yann Dirson
2007-01-17 20:53 ` Yann Dirson
2007-01-18 12:06 ` Catalin Marinas
2007-01-18 19:42 ` Yann Dirson
2007-01-19 9:40 ` Jakub Narebski
2007-01-20 13:17 ` Yann Dirson
2007-01-20 19:16 ` Jakub Narebski
2007-01-20 20:07 ` Yann Dirson
2007-01-22 23:12 ` Catalin Marinas
2007-01-18 9:05 ` Catalin Marinas
2007-01-18 20:52 ` Yann Dirson
2007-01-19 9:47 ` Jakub Narebski
2007-01-22 17:54 ` Catalin Marinas
2007-01-22 19:47 ` Yann Dirson
2007-01-22 22:58 ` Catalin Marinas [this message]
2007-01-23 7:49 ` Yann Dirson
2007-01-23 22:03 ` Catalin Marinas
2007-01-24 0:05 ` Yann Dirson
2007-01-24 12:37 ` Catalin Marinas
2007-01-24 20:03 ` Yann Dirson
2007-01-28 4:33 ` Theodore Tso
2007-01-28 10:25 ` Yann Dirson
2007-01-28 23:21 ` Catalin Marinas
2007-01-17 21:30 ` Yann Dirson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b0943d9e0701221458r77b2b48hfa41d3dffcb848d0@mail.gmail.com \
--to=catalin.marinas@gmail.com \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
--cc=ydirson@altern.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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 NNTP newsgroup(s).