Re: [PATCH] t5801: properly test the test shell
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:57:00
Johannes Sixt [off-list ref] writes:
Am 4/25/2013 12:09, schrieb Michael J Gruber:quoted
fc407f9 (Add new simplified git-remote-testgit, 2012-11-28) introduced a test which was meant to skip the test unless the test shell is bash. Unfortunately, it tests for the availability of bash only. But users can opt to use a different shell (using SHELL_PATH) for the tests even though bash is available.After my patch this morning ("avoid process substitution"), there is not much bashism left in git-remote-testgit:
Not much, or no more? I think the latter is a very worthy goal. Even if it is only a test helper, we would prefer to have a portable one.
quoted hunk
diff --git a/git-remote-testgit b/git-remote-testgit index e99d5fa..178d030 100755 --- a/git-remote-testgit +++ b/git-remote-testgit@@ -1,4 +1,4 @@ -#!/usr/bin/env bash +#!/bin/sh # Copyright (c) 2012 Felipe Contreras alias=$1@@ -23,7 +23,6 @@ then testgitmarks="$dir/testgit.marks" test -e "$gitmarks" || >"$gitmarks" test -e "$testgitmarks" || >"$testgitmarks" - testgitmarks_args=( "--"{import,export}"-marks=$testgitmarks" ) fi while read line@@ -70,7 +69,10 @@ do fi echo "feature done" - git fast-export "${testgitmarks_args[@]}" $refs | + git fast-export \ + ${testgitmarks:+"--import-marks=$testgitmarks"} \ + ${testgitmarks:+"--export-marks=$testgitmarks"} \ + $refs | sed -e "s#refs/heads/#${prefix}/heads/#g" echo "done" ;;@@ -89,7 +91,10 @@ do before=$(git for-each-ref --format='%(refname) %(objectname)') - git fast-import "${testgitmarks_args[@]}" --quiet + git fast-import \ + ${testgitmarks:+"--import-marks=$testgitmarks"} \ + ${testgitmarks:+"--export-marks=$testgitmarks"} \ + --quiet # figure out which refs were updated git for-each-ref --format='%(refname) %(objectname)' |What's left is to take care of the shbang line, remove the bash check from t5801, make a proper commit from this patch. But I leave that to the interested reader. :-) -- Hannes