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

Re: Ability to edit message from git rebase --interactive.

From
Marcel M. Cary <marcel@oak.homeunix.org>
Date
Mar 18, 2009, 14:52 UTC
Message-ID
<49C10A97.6060201@oak.homeunix.org>
In-Reply-To
<49C0C4C5.5070802@drmicha.warpmail.net>
Michael J Gruber wrote:
Show 31 quoted lines
> Sverre Rabbelier venit, vidit, dixit 18.03.2009 06:42:
>> Heya,
>>
>> On Wed, Mar 18, 2009 at 02:06, Junio C Hamano <gitster@pobox.com> wrote:
>>> Jeff King <peff@peff.net> writes:
>>> I am not quite sure what rephrase is buying us.  Do we also want to
>>> introduce retree that allows you to muck with the tree object recorded
>>> without giving you a chance to clobber the commit log message?
>> Is that a common operation? Rephrase is, at least to me...
>>
> 
> Rephrase for sure is common, and for sure can be done currently... It's
> only that "commit --amend, save&quit, continue" could be shortened.
> 
> OTOH: Most commonly one would want to rephrase a commit message or two
> without actually rebasing anything. And the proposed change doesn't help
> as much as it could, in two respects:
> 
> 1) I want to be able to say "rephrase HEAD~2" without having to edit a
> rebase action script. (That would be useful for rewriting a single
> commit as well, and could be added easily.)
> 
> 2) Currently, all rebasing operations have trouble with merges. But if
> all I want to do is rephrasing a log message then no diff/apply is
> necessary, no rewriting of trees, no change in the DAG structure (i.e.
> connectivity; sha1s change, of course). So there should be a special
> mode for DAG-preserving rewrites, where one can be sure that merges are
> fully preserved.
> 
> 2) seems to be the most important point to make rephrasing safe and
> convenient.

Interesting points about skipping the action script and preserving structure. I just tried to do something like that with filter-branch:

git filter-branch --msg-filter 'cat > tmp; $EDITOR tmp < '$(tty)' > '$(tty)' 2>&1; cat tmp' ^HEAD^ HEAD

And discovered that it will neither accept "HEAD^^..HEAD^" nor "HEAD^" as a shortcut for a rev-list containing a single commit. But if you're content to save and quit each message through the branch tip and specify the range, it seems to work.

I have no idea what it would take to make filter-branch support the additional kinds of rev and rev list specifications, or if that would be undesirable.

I'm assuming it accomplishes (2) because of the nature of filter-branch.
Marcel
Previous: Michael J GruberNext: Marcel M. Cary
Message 8 of 16 in “Ability to edit message from git rebase --interactive.”
  1. Olivier GoffartMar 17, 2009
  2. Johannes SchindelinMar 17, 2009
  3. Jeff KingMar 18, 2009
  4. Johannes SchindelinMar 18, 2009
  5. Junio C HamanoMar 18, 2009
  6. Sverre RabbelierMar 18, 2009
  7. Michael J GruberMar 18, 2009
  8. Marcel M. CaryMar 18, 2009
  9. Marcel M. CaryMar 18, 2009
  10. Olivier GoffartApr 10, 2009
  11. Michael WittenApr 10, 2009
  12. Michael WittenApr 10, 2009
  13. Johannes SchindelinApr 10, 2009
  14. Michael WittenApr 10, 2009
  15. Sverre RabbelierApr 10, 2009
  16. Michael WittenApr 10, 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.