threads / discuss / 31259

Is there a way to find out which commit "git rebase --skip" skipped?

Subject: Is there a way to find out which commit "git rebase --skip" skipped?

## tl;dr

4 messages between Aug 16, 2012 and Aug 17, 2012.

replies: 3people: 2as markdown or json

Luke Diamand· Aug 16, 2012, 06:59 UTC · lore

If I do "git rebase --skip", is there a way to find out the commit SHA that was skipped (other than just parsing the output of the command) ?

I'd like to modify git-p4 so that it can automatically skip past conflicting changes, but I'd like it to keep a log of which commits were skipped.

Thanks, Luke

Junio C Hamano· Aug 16, 2012, 15:43 UTC · re: Luke Diamand · lore

Re: Is there a way to find out which commit "git rebase --skip" skipped?

Luke Diamand <luke@diamand.org> writes:
> If I do "git rebase --skip", is there a way to find out the commit SHA
> that was skipped (other than just parsing the output of the command) ?

There currently isn't, and I do not think it is doable in general when the command ever gives control back to the user to futz with the history, expecting the user only to fix up the conflict and make a single commit (in which case you would want to say "that old commit was replayed as this commit with different patch id) or say "rebase --skip" (in which case you could record "that old commit was manually skipped), but the user can do other things like resetting the head to lose commits that have been rebased already, adding new commits manually before continuing, etc., all of which will be done outside of your control.

Luke Diamand· Aug 17, 2012, 09:32 UTC · re: Junio C Hamano · lore

Re: Is there a way to find out which commit "git rebase --skip" skipped?

On 16/08/12 16:43, Junio C Hamano wrote:
Show 15 quoted lines
> Luke Diamand<luke@diamand.org>  writes:
>
>> If I do "git rebase --skip", is there a way to find out the commit SHA
>> that was skipped (other than just parsing the output of the command) ?
>
> There currently isn't, and I do not think it is doable in general
> when the command ever gives control back to the user to futz with
> the history, expecting the user only to fix up the conflict and make
> a single commit (in which case you would want to say "that old
> commit was replayed as this commit with different patch id) or say
> "rebase --skip" (in which case you could record "that old commit was
> manually skipped), but the user can do other things like resetting
> the head to lose commits that have been rebased already, adding new
> commits manually before continuing, etc., all of which will be done
> outside of your control.

All I need is to be able to get the commit *immediately* after the failed 'git rebase'. It looks like .git/ORIG_HEAD has exactly what I need.

Thanks, Luke

Junio C Hamano· Aug 17, 2012, 17:48 UTC · re: Luke Diamand · lore

Re: Is there a way to find out which commit "git rebase --skip" skipped?

Luke Diamand <luke@diamand.org> writes:
> All I need is to be able to get the commit *immediately* after the
> failed 'git rebase'. It looks like .git/ORIG_HEAD has exactly what I
> need.

Depends on what you meant by "commit that was skipped", but the above makes me nervous. ORIG_HEAD is set to the tip of the branch being rebased at the very beginning, and updated to the current HEAD (i.e. the result of the last successful step) before --skip is given. I do not think it ever points into the commits in the original history that is being replayed.

← back to recent threads