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

Re: Small rerere in rebase regression

From
Johannes Sixt <j6t@kdbg.org>
Date
May 27, 2016, 16:28 UTC
Message-ID
<574875A5.9040303@kdbg.org>
In-Reply-To
<alpine.DEB.2.20.1605250710340.4449@virtualbox>
Am 25.05.2016 um 07:38 schrieb Johannes Schindelin:
> In short: yes, the explicit `git rerere` call can be dropped, that is
> essentially what I did in the rebase--helper branch.
Here's a patch to do that.
--- 8< ---
Subject: [PATCH] rebase -i: remove an unnecessary 'rerere' invocation

Interactive rebase uses 'git cherry-pick' and 'git merge' to replay commits. Both invoke the 'rerere' machinery when they fail due to merge conflicts. Note that all code paths with these two commands also invoke the shell function die_with_patch when the commands fail.

Since commit 629716d2 ("rerere: do use multiple variants") the second operation of the rerere machinery can be observed by a duplicated message "Recorded preimage for 'file'". This second operation records the same preimage as the first one and, hence, only wastes cycles. Remove the 'git rerere' invocation from die_with_patch.

Shell function die_with_patch can be called after the failure of "git commit", too, which also calls into the rerere machinery, but it does so only after a successful commit to record the resolution. Therefore, it is wrong to call 'git rerere' from die_with_patch after "git commit" fails.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 git-rebase--interactive.sh | 1 -
 1 file changed, 1 deletion(-)
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index 9d2bfb7..6e96abc 100644
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -192,7 +192,6 @@ make_patch () {
 die_with_patch () {
 	echo "$1" > "$state_dir"/stopped-sha
 	make_patch "$1"
-	git rerere
 	die "$2"
 }
 
-- 
2.9.0.rc0.40.gb3c1388
Previous: Johannes SchindelinNext: Johannes Schindelin
Message 9 of 11 in “Small rerere in rebase regression”
  1. Johannes SixtMay 23, 2016
  2. Junio C HamanoMay 23, 2016
  3. Johannes SixtMay 23, 2016
  4. Junio C HamanoMay 23, 2016
  5. Johannes SchindelinMay 24, 2016
  6. Johannes SixtMay 24, 2016
  7. Johannes SchindelinMay 25, 2016
  8. Johannes SchindelinMay 25, 2016
  9. Johannes SixtMay 27, 2016
  10. Johannes SchindelinMay 28, 2016
  11. Johannes SixtMay 24, 2016

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.