Johannes Sixt <j.sixt@xxxxxxxxxxxxx> writes: > From: Johannes Sixt <j6t@xxxxxxxx> > > Bash on Windows does not implement process substitution. > > Signed-off-by: Johannes Sixt <j6t@xxxxxxxx> > --- > ... > 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 This just like the original 'join' depends on the two output from for-each-ref to be sorted the same way, which is true and fine. But I wonder one thing. When $before has this in it: refs/heads/refs/heads/master 664059...126eaa7 and your "read ref a" got this in the input: refs/heads/master 664059...126eaa7 would the pattern matching by case work corretly? Doing something like this might be needed. case "$LF$before$LF" in *"$LF$ref $a$LF"*) continue ;; # matches esac -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html