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

Re: [RFC/PATCH 1/5] t5801 (remote-helpers): cleanup refspec stuff

From
Jeff King <peff@peff.net>
Date
Jun 4, 2019, 14:16 UTC
Message-ID
<20190604141619.GA10598@sigill.intra.peff.net>
In-Reply-To
<20190604021330.16130-2-felipe.contreras@gmail.com>
On Mon, Jun 03, 2019 at 09:13:26PM -0500, Felipe Contreras wrote:
Show 17 quoted lines
> diff --git a/t/t5801/git-remote-testgit b/t/t5801/git-remote-testgit
> index 752c763eb6..f2b551dfaf 100755
> --- a/t/t5801/git-remote-testgit
> +++ b/t/t5801/git-remote-testgit
> @@ -11,13 +11,10 @@ fi
>  url=$2
>  
>  dir="$GIT_DIR/testgit/$alias"
> -prefix="refs/testgit/$alias"
>  
> -default_refspec="refs/heads/*:${prefix}/heads/*"
> +refspec="refs/heads/*:refs/testgit/$alias/heads/*"
>  
> -refspec="${GIT_REMOTE_TESTGIT_REFSPEC-$default_refspec}"
> -
> -test -z "$refspec" && prefix="refs"
> +test -n "$GIT_REMOTE_TESTGIT_NOREFSPEC" && refspec=""

So this simplifies the feature by just allowing two refspecs: the default one, or none at all. And that works because all of the existing callers wanted or the other. Makes sense.

Show 10 quoted lines
> @@ -81,10 +78,10 @@ do
>  
>  		echo "feature done"
>  		git fast-export \
> +			${refspec:+"--refspec=$refspec"} \
>  			${testgitmarks:+"--import-marks=$testgitmarks"} \
>  			${testgitmarks:+"--export-marks=$testgitmarks"} \
> -			$refs |
> -		sed -e "s#refs/heads/#${prefix}/heads/#g"
> +			$refs

This second hunk puzzled me for a minute. By using --refspec, we can avoid doing the mapping with sed here, which is simpler and more robust. Good.

One caveat for anybody else testing this: when I initially applied this patch, some tests failed! The problem turned out to be a leftover git-remote-testgit in my build dir from prior to 5afb2ce4cd (remote-testgit: move it into the support directory for t5801, 2019-04-12).

So the problem isn't related to this patch (it's only noticeable here because this is the first change to remote-testgit since it moved). I wonder if we could make the test script more robust here. I think it's tricky because the build dir is added to the $PATH internally by Git itself (since it's the exec-path), so nothing do in the test script can override that. Perhaps it's worth just renaming the script as part of the move. +cc Dscho

-Peff
Previous: Felipe ContrerasNext: Felipe Contreras
Message 3 of 18 in “Fix fetch regression with transport helpers”
  1. 0/5 Fix fetch regression with transport helpersFelipe Contreras, Jun 4, 2019
  2. 1/5 t5801 (remote-helpers): cleanup refspec stuffFelipe Contreras, Jun 4, 2019
  3. Jeff KingJun 4, 2019
  4. 2/5 t5801 (remote-helpers): add test to fetch tagsFelipe Contreras, Jun 4, 2019
  5. Jeff KingJun 4, 2019
  6. 3/5 fetch: trivial cleanupFelipe Contreras, Jun 4, 2019
  7. 5/5 fetch: fix regression with transport helpersFelipe Contreras, Jun 4, 2019
  8. Jeff KingJun 4, 2019
  9. Junio C HamanoJun 4, 2019
  10. 4/5 fetch: make the code more understandableFelipe Contreras, Jun 4, 2019
  11. Jeff KingJun 4, 2019
  12. Felipe ContrerasJun 4, 2019
  13. Johannes SchindelinJun 5, 2019
  14. Jeff KingJun 5, 2019
  15. Duy NguyenJun 5, 2019
  16. Johannes SchindelinJun 6, 2019
  17. Junio C HamanoJun 6, 2019
  18. CI builds on GitGitGadget, was Re: [RFC/PATCH 0/5] Fix fetch regression with transport helpersJohannes Schindelin, Jun 7, 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.