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

Re: [PATCH 2/5] t4108: remove git command upstream of pipe

From
Denton Liu <liu.denton@gmail.com>
Date
Oct 23, 2019, 17:11 UTC
Message-ID
<20191023171120.GA87013@generichostname>
In-Reply-To
<CAPig+cQ6RCMOaf4ZtOKNtiDdKu1JED=zMKZ8afwSr0cvE2zMgw@mail.gmail.com>
On Wed, Oct 23, 2019 at 09:32:26AM -0400, Eric Sunshine wrote:
Show 41 quoted lines
> On Wed, Oct 23, 2019 at 8:04 AM Denton Liu <liu.denton@gmail.com> wrote:
> > Before, the output of `git diff HEAD` would always be piped to
> > sanitize_conflicted_diff(). However, since the Git command was upstream
> > of the pipe, in case the Git command fails, the return code would be
> > lost. Rewrite into separate statements so that the return code is no
> > longer lost.
> >
> > Since only the command `git diff HEAD` was being piped to
> > sanitize_conflicted_diff(), move the command into the function and rename
> > it to print_sanitized_diff().
> >
> > Signed-off-by: Denton Liu <liu.denton@gmail.com>
> > ---
> > diff --git a/t/t4108-apply-threeway.sh b/t/t4108-apply-threeway.sh
> > @@ -4,11 +4,12 @@ test_description='git apply --3way'
> > -sanitize_conflicted_diff () {
> > +print_sanitized_diff () {
> > +       git diff HEAD >diff.raw &&
> >         sed -e '
> >                 /^index /d
> >                 s/^\(+[<>][<>][<>][<>]*\) .*/\1/
> > -       '
> > +       ' diff.raw
> >  }
> 
> Nit: By hard-coding "HEAD" in this function, you lose the flexibility
> of the original. An alternative would have been to accept the ref
> against which to diff as an argument to this function:
> 
>     print_sanitized_diff () {
>         git diff "$@" >diff.raw &&
>         ...
> 
> Or, better yet, keep the original design and pass the diff in as the
> shell function's input, so a caller would say:
> 
>     git diff HEAD >diff.raw &&
>     sanitize_conflicted_diff <diff.raw >expect.diff &&
> 
> However, not necessarily worth a re-roll if we never expect anyone to
> pass anything other than "HEAD".

Since it doesn't really make sense to commmit conflicts, I decided to hardcode it to be a diff against HEAD and the worktree since that's the only sensible place where the conflict should live.

Speaking of conflicts, I dropped the "conflicted" part of the old function name. I think that removes a lot of clarity so I'll reroll renaming the function to print_sanitized_conflicted_diff() or something like that.

Previous: Eric SunshineNext: Denton Liu
Message 5 of 16 in “apply: fix merge.conflictStyle bug in --3way”
  1. 0/5 apply: fix merge.conflictStyle bug in --3wayDenton Liu, Oct 23, 2019
  2. 1/5 t4108: replace create_file with test_write_linesDenton Liu, Oct 23, 2019
  3. 2/5 t4108: remove git command upstream of pipeDenton Liu, Oct 23, 2019
  4. Eric SunshineOct 23, 2019
  5. Denton LiuOct 23, 2019
  6. 3/5 t4108: use `test_config` instead of `git config`Denton Liu, Oct 23, 2019
  7. 4/5 t4108: demonstrate bug in applyDenton Liu, Oct 23, 2019
  8. Eric SunshineOct 23, 2019
  9. 5/5 apply: respect merge.conflictStyle in --3wayDenton Liu, Oct 23, 2019
  10. Junio C HamanoOct 24, 2019
  11. 0/5 This fixes a bug where even if `merge.conflictStyle = diff3`, running `git apply --3way` would not output the base.Denton Liu, Oct 23, 2019
  12. 1/5 t4108: replace create_file with test_write_linesDenton Liu, Oct 23, 2019
  13. 2/5 t4108: remove git command upstream of pipeDenton Liu, Oct 23, 2019
  14. 3/5 t4108: use `test_config` instead of `git config`Denton Liu, Oct 23, 2019
  15. 4/5 t4108: demonstrate bug in applyDenton Liu, Oct 23, 2019
  16. 5/5 apply: respect merge.conflictStyle in --3wayDenton Liu, Oct 23, 2019

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.