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

Re: Merging commits together into a super-commit

From
JFJ. Bruce Fields <bfields@fieldses.org>
Date
May 10, 2007, 19:22 UTC
Message-ID
<20070510192212.GP13719@fieldses.org>
In-Reply-To
<87vef0350y.wl%cworth@cworth.org>
On Thu, May 10, 2007 at 11:30:37AM -0700, Carl Worth wrote:
> So, compared to the rebase usage, this does add two commands for
> bookkeeping the original state and cleaning it up. But the syntax for
> the cherry-pick part is quite a bit simpler than the original rebase
> at least.

Yeah, something like that would be great. I think I've seen others suggest similar syntax before, so it's probably just a question of one of us who want this finding time to write the patches.

Show 5 quoted lines
> Also, "reset --hard" isn't actually what I want in this case. I'd like
> this recipe to use something that would move the current branch to
> some other point, but in a safe way, (that is, not destroy any
> uncommitted changes that might exist at the beginning). I don't have
> any proposal for what that would be.

The tag creation and cleanup could get to be annoying too. You could scrounge through the reflog instead of using a temporary tag, but depending on the amount of --amend'ing and cherry-picking you do the reflog entry may end up in a different place each time, so it's probably hard to make this automatic.

Show 7 quoted lines
> stg - This probably works great if you're using it as a primary
>       interface. But trying to use it as a quick one-off when
>       generally using core git does not work well at all. Instead of
>       the two "git tag" commands in my recipe above, an stg recipe
>       would involve a lot of additional bookkeeping with stg init, stg
>       uncommit [N times for fixing a commit N steps back in the
>       history], stg goto, stg push, etc.

I also didn't like having to come up with another name for each patch--I'd rather just run git-log or gitk and cut-n-paste the sha1.

For kernel work I started out working with multiple (sym- or hard-linked) trees, then used akpm's patch scripts, then stgit. I think I'm happiest just using plain git.

The one thing I've never been good at is keeping the history of the patch series itself.

--b.
Previous: Karl HasselströmNext: Petr Baudis
Message 30 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.