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

Re: [PATCH 2/2] rebase -i: do not leave a CHERRY_PICK_HEAD file behind

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Jun 17, 2015, 12:58 UTC
Message-ID
<20150617145814.Horde.VFmyWwlQfspzMMXX3ZuSlQ4@webmail.informatik.kit.edu>
In-Reply-To
<2751d249ba6315f0139ba8fd6aa6ff23c32c9e69.1434528725.git.johannes.schindelin@gmx.de>
Hi,
Quoting Johannes Schindelin <johannes.schindelin@gmx.de>:
Show 8 quoted lines
> When skipping commits whose changes were already applied via `git rebase
> --continue`, we need to clean up said file explicitly.
>
> The same is not true for `git rebase --skip` because that will execute
> `git reset --hard` as part of the "skip" handling in git-rebase.sh, even
> before git-rebase--interactive.sh is called.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Nice quick turnaround, thanks.
So, with this change the 'git reset' won't be necessary at all, right?
Show 15 quoted lines
> ---
>  git-rebase--interactive.sh    | 6 +++++-
>  t/t3404-rebase-interactive.sh | 2 +-
>  2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
> index dc3133f..16e0a82 100644
> --- a/git-rebase--interactive.sh
> +++ b/git-rebase--interactive.sh
> @@ -849,7 +849,11 @@ continue)
>  	# do we have anything to commit?
>  	if git diff-index --cached --quiet HEAD --
>  	then
> -		: Nothing to commit -- skip this
> +		: Nothing to commit -- skip this commit

"While at it", perhaps you could turn this into a proper comment with '#". Now that this if-branch starts to actually do something, there's no reason to continue (ab)using the null command.

Show 23 quoted lines
> +
> +		test ! -f "$GIT_DIR"/CHERRY_PICK_HEAD ||
> +		rm "$GIT_DIR"/CHERRY_PICK_HEAD ||
> +		die "Could not remove CHERRY_PICK_HEAD"
>  	else
>  		if ! test -f "$author_script"
>  		then
> diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
> index 5d52775..241d4d1 100755
> --- a/t/t3404-rebase-interactive.sh
> +++ b/t/t3404-rebase-interactive.sh
> @@ -1102,7 +1102,7 @@ test_expect_success 'rebase -i commits that  
> overwrite untracked files (no ff)' '
>  	test $(git cat-file commit HEAD | sed -ne \$p) = I
>  '
>
> -test_expect_failure 'rebase --continue removes CHERRY_PICK_HEAD' '
> +test_expect_success 'rebase --continue removes CHERRY_PICK_HEAD' '
>  	git checkout -b commit-to-skip &&
>  	for double in X 3 1
>  	do
> --
> 2.3.1.windows.1.9.g8c01ab4
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 10 of 20 in “rebase -i might leave CHERRY_PICK_HEAD behind”
  1. SZEDER GáborJun 16, 2015
  2. Johannes SchindelinJun 16, 2015
  3. 0/2 rebase -i: Fix left-behind CHERRY_PICK_HEADJohannes Schindelin, Jun 17, 2015
  4. 1/2 t3404: demonstrate CHERRY_PICK_HEAD bugJohannes Schindelin, Jun 17, 2015
  5. Junio C HamanoJun 17, 2015
  6. Johannes SchindelinJun 18, 2015
  7. Junio C HamanoJun 18, 2015
  8. Johannes SchindelinJun 18, 2015
  9. 2/2 rebase -i: do not leave a CHERRY_PICK_HEAD file behindJohannes Schindelin, Jun 17, 2015
  10. SZEDER GáborJun 17, 2015
  11. Johannes SchindelinJun 17, 2015
  12. Junio C HamanoJun 17, 2015
  13. 0/2 rebase -i: Fix left-behind CHERRY_PICK_HEADJohannes Schindelin, Jun 18, 2015
  14. 1/2 t3404: demonstrate CHERRY_PICK_HEAD bugJohannes Schindelin, Jun 18, 2015
  15. 2/2 rebase -i: do not leave a CHERRY_PICK_HEAD file behindJohannes Schindelin, Jun 18, 2015
  16. 0/2 rebase -i: Fix left-behind CHERRY_PICK_HEADJohannes Schindelin, Jun 18, 2015
  17. 1/2 t3404: demonstrate CHERRY_PICK_HEAD bugJohannes Schindelin, Jun 18, 2015
  18. 2/2 rebase -i: do not leave a CHERRY_PICK_HEAD file behindJohannes Schindelin, Jun 18, 2015
  19. Junio C HamanoJun 18, 2015
  20. Johannes SchindelinJun 18, 2015

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.