Subject: [PATCH] git-remote-testgit: avoid process substitution

From: Johannes Sixt <[email-masked]>
Date: Thu, 25 Apr 2013 07:56:19 +0200

From: Johannes Sixt <[email-masked]>

Bash on Windows does not implement process substitution.

Signed-off-by: Johannes Sixt <[email-masked]>
---
Am 4/24/2013 10:30, schrieb Johannes Sixt:
> Am 4/24/2013 10:04, schrieb Felipe Contreras:
>> On Wed, Apr 24, 2013 at 2:57 AM, Johannes Sixt <[email-masked]> wrote:
>>> Am 4/23/2013 21:31, schrieb Junio C Hamano:
>>>> * fc/transport-helper-error-reporting (2013-04-17) 9 commits
>>>>   (merged to 'next' on 2013-04-22 at 5ba6467)
>>>>  + transport-helper: update remote helper namespace
>>>>  + transport-helper: trivial code shuffle
>>>>  + transport-helper: warn when refspec is not used
>>>>  + transport-helper: clarify pushing without refspecs
>>>>  + transport-helper: update refspec documentation
>>>>  + transport-helper: clarify *:* refspec
>>>>  + transport-helper: improve push messages
>>>>  + transport-helper: mention helper name when it dies
>>>>  + transport-helper: report errors properly
>>>>
>>>>  Update transport helper to report errors and maintain ref hierarchy
>>>>  used to keep track of remote helper state better.
>>>>
>>>>  Will merge to 'master'.
>>>
>>> Please don't, yet. There is a new test case that fails on Windows. I'll
>>> have to figure out a work-around.
>>
>> Which test case? If it it failed, it failed before this series. I
>> don't see how this new series would affect anything.
> 
> The test introduced in the commit at the tip: 'push update refs'.

Here is a fix. It assumes that the list of refs after the import is
a superset of the refs before the import. (Can refs be deleted
via fast-import?)

 git-remote-testgit | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/git-remote-testgit b/git-remote-testgit
index 23c9d40..e99d5fa 100755
--- a/git-remote-testgit
+++ b/git-remote-testgit
@@ -91,13 +91,15 @@ do
 
 		git fast-import "${testgitmarks_args[@]}" --quiet
 
-		after=$(git for-each-ref --format='%(refname) %(objectname)')
-
 		# figure out which refs were updated
-		join -e 0 -o '0 1.2 2.2' -a 2 <(echo "$before") <(echo "$after") |
-		while read ref a b
+		git for-each-ref --format='%(refname) %(objectname)' |
+		while read ref a
 		do
-			test $a == $b && continue
+			case "$before" in
+			*"$ref $a"*)
+				continue
+				;;
+			esac
 			echo "ok $ref"
 		done
 
-- 
1.8.2.388.g36592d7