Subject: Re: What's cooking in git.git (Apr 2013, #08; Tue, 23)

From: Johannes Sixt <[email-masked]>
Date: Wed, 24 Apr 2013 09:57:06 +0200

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.

In git-remote-testgit we have this code:

	before=$(git for-each-ref --format='%(refname) %(objectname)')

	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
	do
		test $a == $b && continue
		echo "ok $ref"
	done

The failure is in the 'join' line: Bash on Windows does not implement
process substitution, and we do not have 'join'. This failing code exists
since 93b5cf9c (remote-testgit: report success after an import,
2012-11-28), but apparently, it did not matter so far.

-- Hannes