git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Rebasing stgit stacks

From
CMCatalin Marinas <catalin.marinas@gmail.com>
Date
Jan 23, 2007, 22:03 UTC
Message-ID
<b0943d9e0701231403qefb28f0h91d3f599699b9908@mail.gmail.com>
In-Reply-To
<20070123074945.GB4083@nan92-1-81-57-214-146.fbx.proxad.net>
On 23/01/07, Yann Dirson <ydirson@altern.org> wrote:
Show 12 quoted lines
> On Mon, Jan 22, 2007 at 10:58:41PM +0000, Catalin Marinas wrote:
> > On 22/01/07, Yann Dirson <ydirson@altern.org> wrote:
> > 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.
>
> Right.  I'm just emphasizing that, since they are (even temporarily)
> not part of the GIT branch from a GIT point of view, but part of the
> stack, the 2 concepts, while closely linked, are not strict subsets of
> each other.  Rather, they share some common points, but neither would
> be parent of the other in a class hierarchy.

Indeed, but my point is that they are really tightly coupled and not easy to disconnect in the current design. Maybe we could loose the coupling post 1.0 but I'm not convinced it wouldn't create confusion among users. I also don't think there would be many users wanting to move a stack on top of a different branch when some import or multiple cherry-picking would be enough.

Show 11 quoted lines
> > >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)?
>
> I'm not sure wat you mean here.  I'm only talking of StGIT and the GIT
> world here.

I got the (wrong) impression that you'd like to disconnect StGIT patches from GIT commits which would mean re-writing Quilt or some other form of patch management.

Show 9 quoted lines
> > 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'm not willing to change the concept.  I'm just wondering whether
> using a non-head reference (eg. stacks/<name> or stacks/<name>/top)
> would not be better.  For this we may need to consider using detached
> HEAD support from 1.5.0, but I'm just thinking loudly, I have not
> looked at what that thing provides exactly yet.

It might be a good idea (probably post 1.0) since we have a 'commit' command to update the head of the branch already. I'll have to think a bit more to make sure it doesn't break existing use-cases. I also haven't followed the detached HEAD support. StGIT currently relies on the HEAD giving the information about the current branch.

Show 8 quoted lines
> > 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.
>
> I'll have to think more about that - I'm not sure I get you point.  By
> moving/cloning we keep (or could keep) the patches' history.  By
> importing we cannot do that.

The 'pick' command could be (easily) fixed to preserve the history of a patch (I'll add this to the todo list). The log commit would have the picked patch's log as a parent rather than none.

StGIT grew up almost (or just 2 months behind) at the same time with GIT with a lot experimental/prototype features implemented. Now we probably have a lot more ideas (and users) about how we should use GIT and StGIT and can re-design parts of StGIT to accommodate the new use-cases. As I said, I'll first like to get a 1.0 out this spring.

-- 
Catalin
Previous: Yann DirsonNext: Yann Dirson
Message 29 of 36 in “Howto use StGit and git-svn at same time”
  1. Guilhem BonnefilleJan 9, 2007
  2. Guilhem BonnefilleJan 9, 2007
  3. Yann DirsonJan 9, 2007
  4. Guilhem BonnefilleJan 15, 2007
  5. Rebasing stgit stacksYann Dirson, Jan 15, 2007
  6. Catalin MarinasJan 15, 2007
  7. Yann DirsonJan 15, 2007
  8. Catalin MarinasJan 16, 2007
  9. Yann DirsonJan 16, 2007
  10. Jakub NarebskiJan 16, 2007
  11. Karl HasselströmJan 17, 2007
  12. David KågedalJan 17, 2007
  13. Yann DirsonJan 17, 2007
  14. Yann DirsonJan 17, 2007
  15. Catalin MarinasJan 18, 2007
  16. Yann DirsonJan 18, 2007
  17. Jakub NarebskiJan 19, 2007
  18. Yann DirsonJan 20, 2007
  19. Jakub NarebskiJan 20, 2007
  20. Yann DirsonJan 20, 2007
  21. Catalin MarinasJan 22, 2007
  22. Catalin MarinasJan 18, 2007
  23. Yann DirsonJan 18, 2007
  24. Jakub NarebskiJan 19, 2007
  25. Catalin MarinasJan 22, 2007
  26. Yann DirsonJan 22, 2007
  27. Catalin MarinasJan 22, 2007
  28. Yann DirsonJan 23, 2007
  29. Catalin MarinasJan 23, 2007
  30. Yann DirsonJan 24, 2007
  31. Catalin MarinasJan 24, 2007
  32. Yann DirsonJan 24, 2007
  33. Theodore TsoJan 28, 2007
  34. Yann DirsonJan 28, 2007
  35. Catalin MarinasJan 28, 2007
  36. Yann DirsonJan 17, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.