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

[PATCH 0/3] Add a "fix" command to "rebase --interactive"

From
Michael Haggerty <mhagger@alum.mit.edu>
Date
Dec 4, 2009, 14:36 UTC
Message-ID
<cover.1259934977.git.mhagger@alum.mit.edu>

This patch series adds "fix" to the commands that can be used within the "rebase --interactive" patch editor. "fix" is like "squash" except that it discards the log message of the corresponding commit.

Why I would like this feature:
One of my favorite aliases is
    fix = commit --amend -C HEAD

which I use in those all-too-frequent head-slapping "I just committed something with a minor typo" moments. It amends the last commit with whatever is staged, reusing the same commit message. It can also be used with the "-a" option, a list of filenames, etc.

But sometimes I don't have my head-slapping moments until a few commits later. In this case, my usual practice is to commit the trivial typo change on top of the current branch, then "rebase --interactive" to move the typo fix on top of the erroneous commit and squash it:

pick 05d3b81 Commit with typo pick c29114a Good commit 1 pick 250b013 Good commit 2 pick 5eb3299 Fix for typo

        |
        V

pick 05d3b81 Commit with typo squash 5eb3299 Fix for typo pick c29114a Good commit 1 pick 250b013 Good commit 2

But then it is necessary to go into the commit message editor, move the cursor down past the first commit message, delete the "Fix for typo" commit message, save, and quit.

This patch implements a "fix" command, similar to "squash", except that the corresponding log message is not included in the log message suggested for the combined commit. (In fact, it includes the log message, but commented out.) It therefore saves the editor chores.

"fix" and "squash" can be used in the same group, in which case the "squash" commit messages are preserved and the "fix" commit messages are skipped.

If the idea of a "fix" command is acceptable, then I would like to implement a further convenience: if a group of commits to be folded together includes *only* "fix" commits, then the first log message should be used without even opening an editor. But I would like to get a reaction to the "fix" command in general before doing so.

Michael Haggerty (3):
  Better document the original repository layout.
  Set a couple more tags in the original repository.
  Add a command "fix" to rebase --interactive.
 Documentation/git-rebase.txt  |   13 ++++++++-----
 git-rebase--interactive.sh    |   39 +++++++++++++++++++++++++++++----------
 t/lib-rebase.sh               |    7 ++++---
 t/t3404-rebase-interactive.sh |   41 +++++++++++++++++++++++++++++++++++++----
 4 files changed, 78 insertions(+), 22 deletions(-)
Next: Michael Haggerty
Message 1 of 32 in “Add a "fix" command to "rebase --interactive"”
  1. 0/3 Add a "fix" command to "rebase --interactive"Michael Haggerty, Dec 4, 2009
  2. 1/3 Better document the original repository layout.Michael Haggerty, Dec 4, 2009
  3. Michael J GruberDec 4, 2009
  4. Johannes SchindelinDec 4, 2009
  5. 2/3 Set a couple more tags in the original repository.Michael Haggerty, Dec 4, 2009
  6. Johannes SchindelinDec 4, 2009
  7. 3/3 Add a command "fix" to rebase --interactive.Michael Haggerty, Dec 4, 2009
  8. Johannes SchindelinDec 4, 2009
  9. Junio C HamanoDec 4, 2009
  10. Matthieu MoyDec 4, 2009
  11. Johannes SchindelinDec 4, 2009
  12. Junio C HamanoDec 5, 2009
  13. Michael J GruberDec 4, 2009
  14. Matthieu MoyDec 4, 2009
  15. Junio C HamanoDec 4, 2009
  16. Johannes SchindelinDec 4, 2009
  17. Nanako ShiraishiDec 4, 2009
  18. Junio C HamanoDec 5, 2009
  19. Nanako ShiraishiDec 8, 2009
  20. Junio C HamanoDec 8, 2009
  21. Nanako ShiraishiDec 8, 2009
  22. Junio C HamanoDec 8, 2009
  23. Junio C HamanoDec 8, 2009
  24. Jeff KingDec 8, 2009
  25. Sverre RabbelierDec 8, 2009
  26. Nanako ShiraishiDec 9, 2009
  27. Aaron CohenDec 9, 2009
  28. Junio C HamanoDec 9, 2009
  29. Matthieu MoyDec 8, 2009
  30. Shawn O. PearceDec 4, 2009
  31. Björn GustavssonDec 4, 2009
  32. Junio C HamanoDec 4, 2009

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.