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

Re: [PATCH v2 04/11] t/lib-rebase: change the implementation of commands with options

From
Christian Couder <christian.couder@gmail.com>
Date
Feb 8, 2021, 23:19 UTC
Message-ID
<CAP8UFD1GV2s4SjB3YaT5qiW+E12-hikMEiFoU_LV81aK14g8bA@mail.gmail.com>
In-Reply-To
<xmqq1rdq5jis.fsf@gitster.c.googlers.com>
On Mon, Feb 8, 2021 at 10:36 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 19 quoted lines
>
> Charvi Mendiratta <charvi077@gmail.com> writes:
>
> > However, "fixup" is very different from "exec". Its arguments are not
> > arbitrary at all, so there isn't a good reason to mirror the choice of
> > "_" to represent a space, which leads to rather unsightly tokens such
> > as "fixup_-C". Let's replace it with simpler tokens such as "fixup-C"
> > and "fixup-c".
>
> Sadly, I have to say that this change may be making the developer
> experience worse.
>
> To use the original, test writers only need to remember a single
> rule: "when a single command needs to embed a SP, replace it with
> underscore" regardless of which insn they are listing in FAKE_LINES.
>
> Now they need to remember that rule only applies to exec, and merge
> and fixup uses a different rule, namely, a SP immediately before a
> dash must be removed.
I agree with that, and discussed it with Eric. See:
https://lore.kernel.org/git/CAPig+cSBVG0AdyqXH2mZp6Ohrcb8_ec1Mm_vGbQM4zWT_7yYxQ@mail.gmail.com/
The discussion was:
-----------------------
Show 22 quoted lines
> > > However, "fixup" is a very different beast. Its arguments are not
> > > arbitrary at all, so there isn't a good reason to mirror the choice of
> > > "_" to represent a space, which leads to rather unsightly tokens such
> > > as "fixup_-C". It would work just as well to use simpler tokens such
> > > as "fixup-C" and "fixup-c", in which case t/lib-rebase.sh might parse
> > > them like this (note that I also dropped `g` from the `sed` action):
> > >
> > >     fixup-*)
> > >         action=$(echo "$line" | sed 's/-/ -/');;
> >
> > I agree that "fixup" arguments are not arbitrary at all, but I think
> > it makes things simpler to just use one way to encode spaces instead
> > of many different ways.
>
> Is that the intention here, though? Is the idea that some day `fixup`
> will accept arbitrary arguments thus needs to encode spaces? If not,
> then mirroring the treatment given to `exec` confuses readers into
> thinking that it will/should accept arbitrary arguments. I brought
> this up in my review specifically because it was confusing to a person
> (me) new to this topic and reading the patches for the first time. The
> more specific and exact the code can be, the less likely it will
> confuse readers in the future.
-----------------------
Show 5 quoted lines
> So, if I didn't know you folks have invested enough hours in this
> patch, I would have said not to do this, but it is such a small
> change, its effect isolated to only those who would be writing tests
> for "rebase -i", it may be OK to let them endure a bit additional
> burden to remember an extra rule with this patch.  I dunno.

I would be ok with dropping this patch. It might be a good idea to improve the documentation before the function though.

Previous: Junio C HamanoNext: Charvi Mendiratta
Message 32 of 58 in “[Outreachy] Improve the 'fixup [-C | -c]' in interactive rebase”
  1. 0/7 [Outreachy] Improve the 'fixup [-C | -c]' in interactive rebaseCharvi Mendiratta, Feb 7, 2021
  2. 1/7 sequencer: fixup the datatype of the 'flag' argumentCharvi Mendiratta, Feb 7, 2021
  3. 2/7 sequencer: rename a few functionsCharvi Mendiratta, Feb 7, 2021
  4. 3/7 rebase -i: clarify and fix 'fixup -c' rebase-todo helpCharvi Mendiratta, Feb 7, 2021
  5. Eric SunshineFeb 7, 2021
  6. Charvi MendirattaFeb 8, 2021
  7. 7/7 doc/rebase -i: fix typo in the documentation of 'fixup' commandCharvi Mendiratta, Feb 7, 2021
  8. 5/7 t3437: fix indendation of the here-docCharvi Mendiratta, Feb 7, 2021
  9. Eric SunshineFeb 7, 2021
  10. Charvi MendirattaFeb 8, 2021
  11. Phillip WoodFeb 8, 2021
  12. 4/7 t/lib-rebase: change the implementation of commands with optionsCharvi Mendiratta, Feb 7, 2021
  13. 6/7 t/t3437: update the testsCharvi Mendiratta, Feb 7, 2021
  14. Eric SunshineFeb 7, 2021
  15. Charvi MendirattaFeb 8, 2021
  16. Eric SunshineFeb 7, 2021
  17. Charvi MendirattaFeb 8, 2021
  18. 00/11 [Outreachy] Improve the 'fixup [-C | -c]' in interactive rebaseCharvi Mendiratta, Feb 8, 2021
  19. Junio C HamanoFeb 8, 2021
  20. Charvi MendirattaFeb 9, 2021
  21. 01/11 sequencer: fixup the datatype of the 'flag' argumentCharvi Mendiratta, Feb 8, 2021
  22. 02/11 sequencer: rename a few functionsCharvi Mendiratta, Feb 8, 2021
  23. 03/11 rebase -i: clarify and fix 'fixup -c' rebase-todo helpCharvi Mendiratta, Feb 8, 2021
  24. Junio C HamanoFeb 8, 2021
  25. Charvi MendirattaFeb 9, 2021
  26. Eric SunshineFeb 9, 2021
  27. Junio C HamanoFeb 9, 2021
  28. Eric SunshineFeb 9, 2021
  29. Charvi MendirattaFeb 10, 2021
  30. 04/11 t/lib-rebase: change the implementation of commands with optionsCharvi Mendiratta, Feb 8, 2021
  31. Junio C HamanoFeb 8, 2021
  32. Christian CouderFeb 8, 2021
  33. Charvi MendirattaFeb 9, 2021
  34. 05/11 t/t3437: fix indentation of the here-docCharvi Mendiratta, Feb 8, 2021
  35. 06/11 t/t3437: remove the dependency of 'expected-message' file from testsCharvi Mendiratta, Feb 8, 2021
  36. 07/11 t/t3437: check author date of the fixed up commitCharvi Mendiratta, Feb 8, 2021
  37. 10/11 t/t3437: fixup the test 'multiple fixup -c opens editor once'Charvi Mendiratta, Feb 8, 2021
  38. 08/11 t/t3437: simplify and document the test helpersCharvi Mendiratta, Feb 8, 2021
  39. 09/11 t/t3437: cleanup the 'setup' test and use named commits in the testsCharvi Mendiratta, Feb 8, 2021
  40. Junio C HamanoFeb 8, 2021
  41. Charvi MendirattaFeb 9, 2021
  42. 11/11 doc/rebase -i: fix typo in the documentation of 'fixup' commandCharvi Mendiratta, Feb 8, 2021
  43. 00/11 [Outreachy] Improve the 'fixup [-C | -c]' in interactive rebaseCharvi Mendiratta, Feb 10, 2021
  44. Junio C HamanoFeb 11, 2021
  45. Charvi MendirattaFeb 11, 2021
  46. Junio C HamanoFeb 11, 2021
  47. Charvi MendirattaFeb 12, 2021
  48. 01/11 sequencer: fixup the datatype of the 'flag' argumentCharvi Mendiratta, Feb 10, 2021
  49. 03/11 rebase -i: clarify and fix 'fixup -c' rebase-todo helpCharvi Mendiratta, Feb 10, 2021
  50. 05/11 t/t3437: fixup here-docs in the 'setup' testCharvi Mendiratta, Feb 10, 2021
  51. 04/11 t/lib-rebase: update the documentation of FAKE_LINESCharvi Mendiratta, Feb 10, 2021
  52. 02/11 sequencer: rename a few functionsCharvi Mendiratta, Feb 10, 2021
  53. 06/11 t/t3437: remove the dependency of 'expected-message' file from testsCharvi Mendiratta, Feb 10, 2021
  54. 07/11 t/t3437: check the author date of fixed up commitCharvi Mendiratta, Feb 10, 2021
  55. 08/11 t/t3437: simplify and document the test helpersCharvi Mendiratta, Feb 10, 2021
  56. 09/11 t/t3437: use named commits in the testsCharvi Mendiratta, Feb 10, 2021
  57. 10/11 t/t3437: fixup the test 'multiple fixup -c opens editor once'Charvi Mendiratta, Feb 10, 2021
  58. 11/11 doc/rebase -i: fix typo in the documentation of 'fixup' commandCharvi Mendiratta, Feb 10, 2021

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.