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

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

From
Johannes Sixt <j.sixt@viscovery.net>
Date
Apr 25, 2013, 05:56 UTC
Message-ID
<5178C583.6000703@viscovery.net>
In-Reply-To
<5177980A.4090305@viscovery.net>
From: Johannes Sixt <j6t@kdbg.org>
Bash on Windows does not implement process substitution.
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
Am 4/24/2013 10:30, schrieb Johannes Sixt:
Show 27 quoted lines
> Am 4/24/2013 10:04, schrieb Felipe Contreras:
>> On Wed, Apr 24, 2013 at 2:57 AM, Johannes Sixt <j.sixt@viscovery.net> 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
Previous: Johannes SixtNext: Junio C Hamano
Message 6 of 22 in “What's cooking in git.git (Apr 2013, #07; Mon, 22)”
  1. Junio C HamanoApr 22, 2013
  2. What's cooking in git.git (Apr 2013, #08; Tue, 23)Junio C Hamano, Apr 23, 2013
  3. Johannes SixtApr 24, 2013
  4. Felipe ContrerasApr 24, 2013
  5. Johannes SixtApr 24, 2013
  6. git-remote-testgit: avoid process substitutionJohannes Sixt, Apr 25, 2013
  7. Junio C HamanoApr 25, 2013
  8. Felipe ContrerasApr 25, 2013
  9. Junio C HamanoApr 25, 2013
  10. Felipe ContrerasApr 25, 2013
  11. Junio C HamanoApr 25, 2013
  12. Felipe ContrerasApr 25, 2013
  13. Felipe ContrerasApr 26, 2013
  14. Junio C HamanoApr 26, 2013
  15. Felipe ContrerasApr 26, 2013
  16. Re* [PATCH] git-remote-testgit: avoid process substitutionJunio C Hamano, Apr 26, 2013
  17. Johannes SixtApr 27, 2013
  18. Junio C HamanoApr 29, 2013
  19. 0/3 De-bashing remote-testgitJunio C Hamano, Apr 29, 2013
  20. 1/3 git-remote-testgit: avoid process substitutionJunio C Hamano, Apr 29, 2013
  21. 2/3 git-remote-testgit: further remove some bashismsJunio C Hamano, Apr 29, 2013
  22. 3/3 git-remote-testgit: build it to run under $SHELL_PATHJunio C Hamano, Apr 29, 2013

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.