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

rebase-in-C stability for 2.20

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Nov 13, 2018, 21:50 UTC
Message-ID
<87y39w1wc2.fsf@evledraar.gmail.com>
In-Reply-To
<1b8461d1-6cb7-6622-94d2-44c27623236d@talktalk.net>
On Tue, Nov 13 2018, Phillip Wood wrote:
Show 50 quoted lines
> Hi Johannes
>
> On 13/11/2018 19:21, Johannes Schindelin wrote:
>> Hi Phillip,
>>
>> On Tue, 13 Nov 2018, Phillip Wood wrote:
>>
>>> Thanks for looking at this. Unfortunately using OPT_PASSTHRU_ARGV seems to
>>> break the error reporting
>>>
>>> Running
>>>    bin/wrappers/git rebase --onto @^^^^ @^^ -Cbad
>>>
>>> Gives
>>>    git encountered an error while preparing the patches to replay
>>>    these revisions:
>>>
>>>
>>> 67f673aa4a580b9e407b1ca505abf1f50510ec47...7c3e01a708856885e60bf4051586970e65dd326c
>>>
>>>    As a result, git cannot rebase them.
>>>
>
> git 2.19.1 gives
>
> First, rewinding head to replay your work on top of it...
> Applying: Ninth batch for 2.20
> error: switch `C' expects a numerical value
>
> So it has a clear message as to what the error is, this patch
> regresses that. It would be better if rebase detected the error before
> starting though.
>
>>> If I do
>>>
>>>    bin/wrappers/git rebase @^^ -Cbad
>>>
>>> I get no error, it just tells me that it does not need to rebase (which is
>>> true)
>>
>> Hmm. Isn't this the same behavior as with the scripted version?
>
> Ah you're right the script does not check if the option argument is valid.
>
>> Also: are
>> we sure that we want to allow options to come *after* the `<upstream>`
>> argument?
>
> Maybe not but the scripted version does. I'm not sure if that is a
> good idea or not.

According to Junio's calendar we're now 2 days from 2.20-rc0. We have the js/rebase-autostash-detach-fix bug I reported sitting in "pu" still, and then this.

I see we still have rebase.useBuiltin in the code as an escape hatch, but it's undocumented.

Given that we're still finding regressions bugs in the rebase-in-C version should we be considering reverting 5541bd5b8f ("rebase: default to using the builtin rebase", 2018-08-08)?

I love the feature, but fear that the current list of known regressions serve as a canary for a larger list which we'd discover if we held off for another major release (and would re-enable rebase.useBuiltin=true in master right after 2.20 is out the door).

But maybe I'm being overly paranoid. What do those more familiar with this think?

Previous: Phillip WoodNext: Stefan Beller
Message 7 of 26 in “rebase: understand -C again, refactor”
  1. 0/1 rebase: understand -C again, refactorJohannes Schindelin via GitGitGadget, Nov 13, 2018
  2. 1/1 rebase: really just passthru the `git am` optionsJohannes Schindelin via GitGitGadget, Nov 13, 2018
  3. Junio C HamanoNov 13, 2018
  4. Phillip WoodNov 13, 2018
  5. Johannes SchindelinNov 13, 2018
  6. Phillip WoodNov 13, 2018
  7. rebase-in-C stability for 2.20Ævar Arnfjörð Bjarmason, Nov 13, 2018
  8. Stefan BellerNov 14, 2018
  9. 0/2 rebase.useBuiltin doc & test modeÆvar Arnfjörð Bjarmason, Nov 14, 2018
  10. Johannes SchindelinNov 14, 2018
  11. 1/2 rebase doc: document rebase.useBuiltinÆvar Arnfjörð Bjarmason, Nov 14, 2018
  12. 2/2 tests: add a special setup where rebase.useBuiltin is offÆvar Arnfjörð Bjarmason, Nov 14, 2018
  13. Elijah NewrenNov 14, 2018
  14. Junio C HamanoNov 14, 2018
  15. Johannes SchindelinNov 14, 2018
  16. Jeff KingNov 14, 2018
  17. Johannes SchindelinNov 14, 2018
  18. 0/2 rebase: understand -C again, refactorJohannes Schindelin via GitGitGadget, Nov 14, 2018
  19. 1/2 rebase: really just passthru the `git am` optionsJohannes Schindelin via GitGitGadget, Nov 14, 2018
  20. 2/2 rebase: validate -C<n> and --whitespace=<mode> parameters earlyJohannes Schindelin via GitGitGadget, Nov 14, 2018
  21. Phillip WoodNov 14, 2018
  22. Johannes SchindelinNov 14, 2018
  23. Ævar Arnfjörð BjarmasonNov 19, 2018
  24. Johannes SchindelinNov 20, 2018
  25. rebase: mark a test as failing with rebase.useBuiltin=falseÆvar Arnfjörð Bjarmason, Nov 20, 2018
  26. Johannes SchindelinNov 20, 2018

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.