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"
> + $refsThis 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