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

Re: Using StGIT for tweaking already-committed stuff

From
Karl Hasselström <kha@treskal.com>
Date
May 12, 2007, 11:09 UTC
Message-ID
<20070512110955.GB22735@diana.vm.bytemark.co.uk>
In-Reply-To
<20070512071023.GD16903@nan92-1-81-57-214-146.fbx.proxad.net>
On 2007-05-12 09:10:23 +0200, Yann Dirson wrote:
Show 14 quoted lines
> On Sat, May 12, 2007 at 12:43:25AM +0200, Karl Hasselström wrote:
>
> > It shouldn't be necessary with a manual "assimilate" step. If
> > stgit finds that there are unadorned git commits on top of the
> > patch stack, it should do the assimilation automatically. With
> > that in place, "stg new" and "stg refresh" would be nearly
> > superfluous, since git-commit with and without --amend does the
> > same thing -- the only thing they won't do is give the user the
> > option of manually choosing the patch name.
>
> Hm. I'm not that convinced :)
>
> Eg, imagine a merge commit somewhere in the stack. What would stgit
> do with that ?
There are two cases:
  1. The merge commit is below the bottommost patch. This is perfectly
     OK, and nothing special has to be done. The only restriction is
     that we can't uncommit past the merge.
  2. The merge commit is above the topmost patch. (There may or may
     not also be other not-yet-stgitified commits above the topmost
     patch, below or above the merge commit.) In this case, stgit
     should not auto-assimilate the commits on top of the stack (since
     it can't be done for the merge commit), and a number of stgit
     commands (push, pop, new, ...) should refuse to work until the
     user has either reset the branch so that the merge disappears, or
     done "stg commit" on all the patches below the merge.

Note that these are the only cases: stgit should (and does) enforce the invariant that the applied patches form a consecutive series of commits, without "holes". This is why "stg new" would be forbidden in case (2).

The point is not that you should commit merges on top of your patches, of course. The point is that if you do, stgit should handle it gracefully. Right now you can commit all your patches and do a merge, but if you try to do it the other way around, stgit will break down on you -- but there's no real reason why it should.

> I quite like the idea of makeing it easier to mix them, and removing
> the real duplicates from stgit, but I think that we should be
> careful not to remove power from stgit while doing this.
I agree.
-- 
Karl Hasselström, kha@treskal.com
      www.treskal.com/kalle
Previous: Yann DirsonNext: Robin Rosenberg
Message 19 of 35 in “Merging commits together into a super-commit”
  1. Alex BenneeMay 10, 2007
  2. Raimund BauerMay 10, 2007
  3. Alex BenneeMay 10, 2007
  4. Johannes SchindelinMay 10, 2007
  5. Johannes SixtMay 10, 2007
  6. Linus TorvaldsMay 10, 2007
  7. Carl WorthMay 10, 2007
  8. J. Bruce FieldsMay 10, 2007
  9. Carl WorthMay 10, 2007
  10. Petr BaudisMay 10, 2007
  11. Carl WorthMay 10, 2007
  12. Using StGIT for tweaking already-committed stuffPetr Baudis, May 10, 2007
  13. Carl WorthMay 10, 2007
  14. Integrate StGIT into Git? (Was: Re: Using StGIT for tweaking already-committed stuff)Jan Hudec, May 11, 2007
  15. Karl HasselströmMay 10, 2007
  16. Yann DirsonMay 11, 2007
  17. Karl HasselströmMay 11, 2007
  18. Yann DirsonMay 12, 2007
  19. Karl HasselströmMay 12, 2007
  20. Robin RosenbergMay 10, 2007
  21. Yann DirsonMay 12, 2007
  22. Jakub NarebskiMay 12, 2007
  23. Karl HasselströmMay 12, 2007
  24. Yann DirsonMay 12, 2007
  25. Karl HasselströmMay 12, 2007
  26. Junio C HamanoMay 12, 2007
  27. Karl HasselströmMay 13, 2007
  28. Yann DirsonMay 13, 2007
  29. Store branch description in the config fileKarl Hasselström, May 14, 2007
  30. J. Bruce FieldsMay 10, 2007
  31. Petr BaudisMay 10, 2007
  32. J. Bruce FieldsMay 10, 2007
  33. Transactions for git (and stgit) ?Yann Dirson, May 12, 2007
  34. Karl HasselströmMay 12, 2007
  35. Yann DirsonMay 12, 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.