threads / bug / 60856

is it a bug that git status show the in-progress 'edit' in an interactive rebase as 'done'?

Subject: is it a bug that git status show the in-progress 'edit' in an interactive rebase as 'done'?

## tl;dr

4 messages between Feb 6, 2024 and Feb 6, 2024.

replies: 3people: 3as markdown or json

Britton Kerin· Feb 6, 2024, 10:02 UTC · lore

If I do 'git rebase -i master' from a branch then set the action of the first two commits of a branch being rebased to 'edit' and exit the editor, an immediately subsequent 'git status' shows (for example):

git status
interactive rebase in progress; onto e79552d197
Last command done (1 command done):
   edit 71b73de914 message for first commit
Next commands to do (6 remaining commands):
   edit 3a478a7a08 message for second commit
   pick fab7159cf4 message for third commit
  (use "git rebase --edit-todo" to view and edit)
You are currently editing a commit while rebasing branch
'my_completion_updates' on 'e79552d197'.
  (use "git commit --amend" to amend the current commit)
  (use "git rebase --continue" once you are satisfied with your changes)

This seems wrong, because until git rebase --continue has been done the edit operation for the first commit is *ongoing* and it would be much clearer for the output of status to accurately say so.

The same applies to edit operations that don't happen to be the first.
Is this a bug or is there some reason it's like this that I'm not seeing?
Britton
Oswald Buddenhagen· Feb 6, 2024, 11:32 UTC · re: Britton Kerin · lore

Re: is it a bug that git status show the in-progress 'edit' in an interactive rebase as 'done'?

On Tue, Feb 06, 2024 at 01:02:43AM -0900, Britton Kerin wrote:
Show 10 quoted lines
>>Last command done (1 command done):
>>   edit 71b73de914 message for first commit
>>...
>>You are currently editing a commit while rebasing branch
>>...
>
>This seems wrong, because until git rebase --continue has been done
>the edit operation for the first commit is *ongoing* and it would be
>much clearer for the output of status to accurately say so.
>

it makes a lot of more sense when you decompose 'edit' into 'pick' followed by 'break', which it essentially is. so from git's perspective, the command really _is_ already done. note that in this state, you can do all kinds of crazy things - including adding new commits (possibly by cherry-picking them) and even dropping already rewritten commits (using a hard reset). so in a way, the message above is even a bit too suggestive.

Sergey Organov· Feb 6, 2024, 19:45 UTC · re: Oswald Buddenhagen · lore

Re: is it a bug that git status show the in-progress 'edit' in an interactive rebase as 'done'?

Oswald Buddenhagen <oswald.buddenhagen@gmx.de> writes:
Show 18 quoted lines
> On Tue, Feb 06, 2024 at 01:02:43AM -0900, Britton Kerin wrote:
>>>Last command done (1 command done):
>>>   edit 71b73de914 message for first commit
>>>...
>>>You are currently editing a commit while rebasing branch
>>>...
>>
>>This seems wrong, because until git rebase --continue has been done
>>the edit operation for the first commit is *ongoing* and it would be
>>much clearer for the output of status to accurately say so.
>>
> it makes a lot of more sense when you decompose 'edit' into 'pick'
> followed by 'break', which it essentially is. so from git's perspective,
> the command really _is_ already done. note that in this state, you can
> do all kinds of crazy things - including adding new commits (possibly by
> cherry-picking them) and even dropping already rewritten commits (using
> a hard reset). so in a way, the message above is even a bit too
> suggestive.

Yep. Maybe, if the rebase action itself were called "amend" rather than "edit", it'd have been more clear and consistent thus less confusing. Check:

git status
interactive rebase in progress; onto e79552d197
Last command done (1 command done):
   amend 71b73de914 message for first commit
Next commands to do (6 remaining commands):
   amend 3a478a7a08 message for second commit
   pick fab7159cf4 message for third commit
  (use "git rebase --edit-todo" to view and edit)
You are currently amending a commit while rebasing branch
'my_completion_updates' on 'e79552d197'.
  (use "git commit --amend" to amend the current commit)
  (use "git rebase --continue" once you are satisfied with your changes)
-- 
Sergey
Britton Kerin· Feb 6, 2024, 20:09 UTC · re: Oswald Buddenhagen · lore

Re: is it a bug that git status show the in-progress 'edit' in an interactive rebase as 'done'?

On Tue, Feb 6, 2024 at 2:32 AM Oswald Buddenhagen <oswald.buddenhagen@gmx.de> wrote:

Show 15 quoted lines
>
> On Tue, Feb 06, 2024 at 01:02:43AM -0900, Britton Kerin wrote:
> >>Last command done (1 command done):
> >>   edit 71b73de914 message for first commit
> >>...
> >>You are currently editing a commit while rebasing branch
> >>...
> >
> >This seems wrong, because until git rebase --continue has been done
> >the edit operation for the first commit is *ongoing* and it would be
> >much clearer for the output of status to accurately say so.
> >
> it makes a lot of more sense when you decompose 'edit' into 'pick'
> followed by 'break', which it essentially is. so from git's perspective,
> the command really _is_ already done. note that in this state, you can
well viewed this way the pick may be done but not the implicit break
> do all kinds of crazy things - including adding new commits (possibly by
> cherry-picking them) and even dropping already rewritten commits (using
> a hard reset). so in a way, the message above is even a bit too
> suggestive.

Yes. I'd handle this by changing the description of edit offered in the comments in the todo to better reflect the possibilities. The hints that git rebase -i (or --continue I guess) gives when it hits the edit commit also don't reflect all the possibilities very well.

Britton

← back to recent threads