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

Re: [PATCH 1/3] rebase.c: state preserve-merges has been removed

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
May 27, 2022, 12:34 UTC
Message-ID
<220527.86o7zj2ldi.gmgdl@evledraar.gmail.com>
In-Reply-To
<19baf95d-67d4-d7ed-72a6-96d098171d3a@web.de>
On Thu, May 26 2022, René Scharfe wrote:
Show 50 quoted lines
> Am 26.05.22 um 11:40 schrieb Ævar Arnfjörð Bjarmason:
>>
>> On Thu, May 26 2022, Philip Oakley via GitGitGadget wrote:
>>
>>> From: Philip Oakley <philipoakley@iee.email>
>>>
>>> Since feebd2d256 (rebase: hide --preserve-merges option, 2019-10-18)
>>> this option is now removed as stated in the subsequent release notes.
>>>
>>> Fix the option tip.
>>>
>>> Signed-off-by: Philip Oakley <philipoakley@iee.email>
>>> ---
>>>  builtin/rebase.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/builtin/rebase.c b/builtin/rebase.c
>>> index 7ab50cda2ad..6ce7e98a6f1 100644
>>> --- a/builtin/rebase.c
>>> +++ b/builtin/rebase.c
>>> @@ -1110,7 +1110,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
>>>  			PARSE_OPT_NOARG | PARSE_OPT_NONEG,
>>>  			parse_opt_interactive),
>>>  		OPT_SET_INT_F('p', "preserve-merges", &preserve_merges_selected,
>>> -			      N_("(DEPRECATED) try to recreate merges instead of "
>>> +			      N_("(REMOVED) try to recreate merges instead of "
>>>  				 "ignoring them"),
>>>  			      1, PARSE_OPT_HIDDEN),
>>>  		OPT_RERERE_AUTOUPDATE(&options.allow_rerere_autoupdate),
>>
>> I have some local patches for this more generally, but for
>> PARSE_OPT_HIDDEN options we never do anything with the "argh" field,
>> i.e. it's only used for showing the "git <cmd> -h" output, and if it's
>> hidden it won't be there.
>
> Hidden options are shown if you use --help-all instead of -h.
>
> OPT_SET_INT_F always sets the struct option member "argh" to NULL.  The
> string changed above is the "help" member, not "argh".
>
>> So there's no point in changing this string, nor to have translators
>> focus on it, it'll never be used.
>>
>> This series shouldn't fix the general issue (which parse-options.c
>> should really be BUG()-ing about, after fixing the existing
>> occurances. But For this one we could just set this to have a string of
>> "" or something, only the string you're changing in 3/3 will be seen by
>> anyone.
>
> What is the general issue?

You're right. I'd missed that case with --help-all, and remembered briefly testing where we used the string before in some WIP code.

Looking at it again I think I tried NULL-ing a few and running the tests with SANITIZE=address or something, which in this case it looks like we'd 100% pass with. I.e. we have zero test coverage for that subsequent NULL dereference.

Sorry about the noise. I'll add some tests for this case in some parse-options.c sanity checking tests/patches I'm planning to submit at some point.

Previous: Philip OakleyNext: Philip Oakley via GitGitGadget
Message 13 of 35 in “Die preserve ggg”
  1. 0/3 Die preserve gggPhilip Oakley via GitGitGadget, May 26, 2022
  2. 1/3 rebase.c: state preserve-merges has been removedPhilip Oakley via GitGitGadget, May 26, 2022
  3. Ævar Arnfjörð BjarmasonMay 26, 2022
  4. Philip OakleyMay 26, 2022
  5. René ScharfeMay 26, 2022
  6. Junio C HamanoMay 26, 2022
  7. René ScharfeMay 26, 2022
  8. Junio C HamanoMay 26, 2022
  9. Philip OakleyMay 27, 2022
  10. Philip OakleyMay 27, 2022
  11. Junio C HamanoMay 27, 2022
  12. Philip OakleyMay 27, 2022
  13. Ævar Arnfjörð BjarmasonMay 27, 2022
  14. 2/3 rebase: help users when dying with `preserve-merges`Philip Oakley via GitGitGadget, May 26, 2022
  15. Ævar Arnfjörð BjarmasonMay 26, 2022
  16. Philip OakleyMay 26, 2022
  17. Junio C HamanoMay 26, 2022
  18. Philip OakleyMay 27, 2022
  19. Junio C HamanoMay 27, 2022
  20. 3/3 rebase: note `preserve` merges may be a pull config optionPhilip Oakley via GitGitGadget, May 26, 2022
  21. Ævar Arnfjörð BjarmasonMay 26, 2022
  22. Philip OakleyMay 26, 2022
  23. Junio C HamanoMay 26, 2022
  24. Philip OakleyMay 27, 2022
  25. Ævar Arnfjörð BjarmasonMay 26, 2022
  26. Philip OakleyMay 26, 2022
  27. 0/4 Die preserve gggPhilip Oakley via GitGitGadget, Jun 4, 2022
  28. 3/4 rebase: note `preserve` merges may be a pull config optionPhilip Oakley via GitGitGadget, Jun 4, 2022
  29. Junio C HamanoJun 6, 2022
  30. Philip OakleyJun 11, 2022
  31. Philip OakleyJun 11, 2022
  32. Junio C HamanoJun 11, 2022
  33. 2/4 rebase: help users when dying with `preserve-merges`Philip Oakley via GitGitGadget, Jun 4, 2022
  34. 1/4 rebase.c: state preserve-merges has been removedPhilip Oakley via GitGitGadget, Jun 4, 2022
  35. 4/4 rebase: translate a die(preserve-merges) messagePhilip Oakley via GitGitGadget, Jun 4, 2022

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.