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

Re: [PATCH v5 1/1] sequencer: finish parsing the todo list despite an invalid first line

From
Alex Henrie <alexhenrie24@gmail.com>
Date
Jul 24, 2023, 17:39 UTC
Message-ID
<CAMMLpeSQ4xPMSOCyN7hnq6efQp0w9uzCXBcG5my8U3Yamzrnpg@mail.gmail.com>
In-Reply-To
<xmqqjzupqn3q.fsf@gitster.g>
On Mon, Jul 24, 2023 at 10:40 AM Junio C Hamano <gitster@pobox.com> wrote:
>
> Alex Henrie <alexhenrie24@gmail.com> writes:
Show 37 quoted lines
> > +test_expect_success 'the first command cannot be a fixup' '
> > +     rebase_setup_and_clean fixup-first &&
> > +     (
> > +             cat >orig <<-EOF &&
> > +             fixup $(git log -1 --format="%h %s" B)
> > +             pick $(git log -1 --format="%h %s" C)
> > +             EOF
> > +
> > +             (
> > +                     set_replace_editor orig &&
> > +                     test_must_fail git rebase -i A 2>actual
> > +             ) &&
> > +             grep "cannot .fixup. without a previous commit" actual &&
> > +             grep "You can fix this with .git rebase --edit-todo.." actual &&
> > +             # verify that the todo list has not been truncated
> > +             grep -v "^#" .git/rebase-merge/git-rebase-todo >actual &&
> > +             test_cmp orig actual &&
> > +
> > +             test_must_fail git rebase --edit-todo 2>actual &&
> > +             grep "cannot .fixup. without a previous commit" actual &&
> > +             grep "You can fix this with .git rebase --edit-todo.." actual &&
> > +             # verify that the todo list has not been truncated
> > +             grep -v "^#" .git/rebase-merge/git-rebase-todo >actual &&
> > +             test_cmp orig actual
> > +     )
> > +'
>
> The structure of this new test piece, including the use of "log -1
> --format", seems to follow existing tests, and very readable.  Why
> do we have one extra level of subshell, though?  There is no "cd"
> that may affect the later test pieces, and set_something_editor that
> touches environment that may affect the later test pieces is called
> in its own subshell already.
>
> Other than that, looking good (there may be a valid reason why the
> test piece needs the subshell around it, but it was just not apparent
> to me).

The only reason for the outer subshell is that I thought it was required when using rebase_setup_and_clean, but I see now that rebase_setup_and_clean is used in several tests without a subshell. I'll drop it altogether in v6 and use `test_when_finished "git rebase --abort"` instead.

Thanks,
-Alex
Previous: Junio C HamanoNext: Junio C Hamano
Message 21 of 23 in “sequencer: finish parsing the todo list despite an invalid first line”
  1. sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 19, 2023
  2. Junio C HamanoJul 19, 2023
  3. Phillip WoodJul 20, 2023
  4. Alex HenrieJul 20, 2023
  5. Phillip WoodJul 21, 2023
  6. Phillip WoodJul 21, 2023
  7. Junio C HamanoJul 21, 2023
  8. 0/1 sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 21, 2023
  9. 1/1 sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 21, 2023
  10. 0/1 sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 21, 2023
  11. 1/1 sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 21, 2023
  12. 0/1 sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 21, 2023
  13. 1/1 sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 21, 2023
  14. Phillip WoodJul 21, 2023
  15. 0/1 sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 22, 2023
  16. 1/1 sequencer: finish parsing the todo list despite an invalid first lineAlex Henrie, Jul 22, 2023
  17. Phillip WoodJul 24, 2023
  18. Alex HenrieJul 24, 2023
  19. Phillip WoodJul 24, 2023
  20. Junio C HamanoJul 24, 2023
  21. Alex HenrieJul 24, 2023
  22. Junio C HamanoJul 24, 2023
  23. Alex HenrieJul 24, 2023

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.