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

Re: [PATCH 1/2] worktree: send "chatty" messages to stderr

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Dec 3, 2021, 13:07 UTC
Message-ID
<CAPig+cQ1+Hm=2jNKais-X6ahKCkG4Xo9Z4WsqTYryETc9a4mTw@mail.gmail.com>
In-Reply-To
<211203.86fsrat592.gmgdl@evledraar.gmail.com>
On Fri, Dec 3, 2021 at 4:19 AM Ævar Arnfjörð Bjarmason <avarab@gmail.com> wrote:
Show 27 quoted lines
> On Thu, Dec 02 2021, Eric Sunshine wrote:
> >       git worktree add --detach orig &&
> >       sed s,orig/\.git$,moved/.git, .git/worktrees/orig/gitdir >expect &&
> >       mv orig moved &&
> > -     git worktree repair moved >out 2>err &&
> > +     git worktree repair moved 2>err &&
> >       test_cmp expect .git/worktrees/orig/gitdir &&
> > -     test_i18ngrep "gitdir incorrect" out &&
> > -     test_must_be_empty err
> > +     test_i18ngrep "gitdir incorrect" err
> >  '
>
> This is just a "for bonus points", but maybe we could/should while we're
> at it harden and make the tests more exhaustive by checking the full
> output of both, e.g.
>
>         cat >actual.out <<-\EOF &&
>         Preparing worktree (checking out 'bar')
>         EOF
>         cat >actual.err <<-\EOF &&
>         fatal: 'bar' is already checked out at '.../wherever'
>         EOF
>         <cmd> [...]
>         test_cmp expect.out actual.out &&
>         test_cmp expect.err actual.err
>
> Doesn't need a re-roll etc., just if you're interested... :)

To be clear, with the application of the current patch, both of those messages would need to be in the `actual.err` file, and `actual.out` would be empty; not one message in each file as in your snippet.

That aside, there's still potentially output which is outside the control of git-worktree. In the case of this particular negative test, your suggestion should work, but for a positive test, it would be harder and uglier (though, of course, not impossible). For instance, for a successful `git worktree add`, the output is:

    Preparing worktree (new branch 'foobar')
    Updating files: 100% (3993/3993), done.
    HEAD is now at abe6bb3905 Gobbledygook

The subsequent lines come from git-reset (which, by the way, is sending "HEAD is now at" to stdout, though they probably should be on stderr, but that's a separate issue).

Anyhow, such a change to the tests should be a separate topic. The user-facing problem addressed by the current patch series need not be held up by a behind-the-scenes change to testing.

Previous: Ævar Arnfjörð BjarmasonNext: Eric Sunshine
Message 4 of 14 in “worktree: fix incorrectly-ordered messages on Windows”
  1. 0/2 worktree: fix incorrectly-ordered messages on WindowsEric Sunshine, Dec 3, 2021
  2. 1/2 worktree: send "chatty" messages to stderrEric Sunshine, Dec 3, 2021
  3. Ævar Arnfjörð BjarmasonDec 3, 2021
  4. Eric SunshineDec 3, 2021
  5. 2/2 git-worktree.txt: add missing `-v` to synopsis for `worktree list`Eric Sunshine, Dec 3, 2021
  6. Ævar Arnfjörð BjarmasonDec 3, 2021
  7. Eric SunshineDec 3, 2021
  8. Ævar Arnfjörð BjarmasonDec 3, 2021
  9. Jeff KingDec 3, 2021
  10. Junio C HamanoDec 5, 2021
  11. Eric SunshineDec 6, 2021
  12. Ævar Arnfjörð BjarmasonDec 6, 2021
  13. Junio C HamanoDec 6, 2021
  14. Rafael SilvaDec 11, 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.