Felipe Contreras <felipe.contre...@gmail.com> writes:

> No, it wouldn't, but I don't think there's any way to do \<\> or \b in globs.

This should do in the meantime, but it further needs:

 - J6t's sign off for the follow-up part to remove remaining
   bash-isms to complete this patch (the last part of the patch is
   from <5178c583.6000...@viscovery.net> and we can take half the
   log message from there);

 - Rename it to git-remote-testgit.sh and tell Makefile to replace
   the shebang line with SHELL_PATH like other scripts;

 - Remove the "we need to have bash because we will run remote-testgit"
   logic from t5801



diff --git a/git-remote-testgit b/git-remote-testgit
index b395c8d..ffac950 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
@@ -62,22 +61,31 @@ do
                        echo "feature export-marks=$gitmarks"
                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"
                ;;
        export)
                before=$(git for-each-ref --format='%(refname) %(objectname)')
 
-               git fast-import "${testgitmarks_args[@]}" --quiet
-
-               after=$(git for-each-ref --format='%(refname) %(objectname)')
+               git fast-export \
+                       ${testgitmarks:+"--import-marks=$testgitmarks"} \
+                       ${testgitmarks:+"--export-marks=$testgitmarks"} \
+                       --quiet
 
                # 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
+               LF=$'\n'
+               git for-each-ref --format='%(refname) %(objectname)' |
+               while read ref a
                do
-                       test $a == $b && continue
+                       case "$LF$before$LF" in
+                       *"$LF$ref $a$LF"*)
+                               continue
+                               ;;
+                       esac
                        echo "ok $ref"
                done
 
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to