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

Re: Small rerere in rebase regression

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
May 25, 2016, 05:38 UTC
Message-ID
<alpine.DEB.2.20.1605250710340.4449@virtualbox>
In-Reply-To
<5744B00D.4020006@kdbg.org>
Hi Hannes,
On Tue, 24 May 2016, Johannes Sixt wrote:
Show 10 quoted lines
> Am 24.05.2016 um 15:18 schrieb Johannes Schindelin:
> > Hannes, could you quickly test whether
> > https://github.com/dscho/git/tree/interactive-rebase calls rerere twice,
> > too? (Please call interactive rebase with the GIT_USE_REBASE_HELPER=true
> > to avoid running the interactive rebase twice.)
> >
> > I have a hunch that it does not call rerere twice, which would be a nice
> > bonus in that patch thicket
> 
> It prints the message only once:
Thanks for confirming.
> Could not apply fa62fea... mastergittest@master|REBASE-i 1/1:1008> 5~
> 
> (Take note of the missing LF at the end of the message.)
Oops. Good catch, thank you! I just fixed this:
	https://github.com/dscho/git/commit/0393d7bb2d
> Can this result be interpreted as another indication that the "git rerere"
> call in die_with_patch can be removed, or are the two git-rebase
> implementations too different to be comparable?

The code used by the rebase--helper is not *quite* the same as the entire cherry-pick code path. For one, we run the sequencer directly, without any of cherry-pick's option parsing.

Having said that, yes, we inherit sequencer's rerere() call that was part of cherry-pick originally ever since aa1a011 (Make cherry-pick use rerere for conflict resolution., 2008-08-10) (amd which was moved to builtin/revert.c in 81b50f3 (Move 'builtin-*' into a 'builtin/' subdirectory, 2010-02-22) and refactored out into the sequencer in 043a449 (sequencer: factor code out of revert builtin, 2012-01-11)).

I did notice that rerere() call when implementing rebase -i's functionality in the sequencer, and dropped the extra call in error_with_patch() (the libified version of rebase -i's die_with_patch function).

In short: yes, the explicit `git rerere` call can be dropped, that is essentially what I did in the rebase--helper branch.

Ciao, Dscho

Previous: Johannes SixtNext: Johannes Schindelin
Message 7 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.