From: Johannes Sixt <j6t@kdbg•org>
To: Junio C Hamano <gitster@pobox•com>
Cc: Felipe Contreras <felipe.contreras@gmail•com>, git@vger•kernel.org
Subject: Re: Re* [PATCH] git-remote-testgit: avoid process substitution
Date: Sat, 27 Apr 2013 21:13:13 +0200 [thread overview]
Message-ID: <517C2349.3050609@kdbg.org> (raw)
In-Reply-To: <7v8v44vpon.fsf_-_@alter.siamese.dyndns.org>
Am 27.04.2013 01:26, schrieb Junio C Hamano:
> Felipe Contreras <felipe.contreras@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.6000703@viscovery•net> and we can take half the
> log message from there);
The patch below doesn't remove the bash dependency, yet, but it addresses
the problematic mismatch you noticed without the need for $LF. Can you
please queue it to move the topic forward?
Removing the remaining bashisms and the following two can come later:
> - 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
Here's my
Signed-off-by: Johannes Sixt <j6t@kdbg•org>
for this part in case someone wants to pick it up:
> 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
> + git fast-import \
> + ${testgitmarks:+"--import-marks=$testgitmarks"} \
> + ${testgitmarks:+"--export-marks=$testgitmarks"} \
> + --quiet
>
--- 8< ---
Subject: [PATCH] git-remote-testgit: avoid process substitution
The implementation of bash on Windows does not offer process substitution.
Signed-off-by: Johannes Sixt <j6t@kdbg•org>
---
git-remote-testgit | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/git-remote-testgit b/git-remote-testgit
index 23c9d40..979b13e 100755
--- a/git-remote-testgit
+++ b/git-remote-testgit
@@ -87,17 +87,18 @@ do
exit 1
fi
- before=$(git for-each-ref --format='%(refname) %(objectname)')
+ 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
+ git for-each-ref --format='%(refname) %(objectname)' |
+ while read ref a
do
- test $a == $b && continue
+ case "$before" in
+ *" $ref $a "*)
+ continue ;; # unchanged
+ esac
echo "ok $ref"
done
--
1.8.2.388.g36592d7
next prev parent reply other threads:[~2013-04-27 19:13 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-22 20:07 What's cooking in git.git (Apr 2013, #07; Mon, 22) Junio C Hamano
2013-04-23 19:31 ` What's cooking in git.git (Apr 2013, #08; Tue, 23) Junio C Hamano
2013-04-24 7:57 ` Johannes Sixt
2013-04-24 8:04 ` Felipe Contreras
2013-04-24 8:30 ` Johannes Sixt
2013-04-25 5:56 ` [PATCH] git-remote-testgit: avoid process substitution Johannes Sixt
2013-04-25 14:57 ` Junio C Hamano
2013-04-25 17:50 ` Felipe Contreras
2013-04-25 18:25 ` Junio C Hamano
2013-04-25 19:24 ` Felipe Contreras
2013-04-25 20:06 ` Junio C Hamano
2013-04-25 20:31 ` Felipe Contreras
2013-04-26 21:56 ` Felipe Contreras
2013-04-26 22:25 ` Junio C Hamano
2013-04-26 22:45 ` Felipe Contreras
2013-04-26 23:26 ` Re* " Junio C Hamano
2013-04-27 19:13 ` Johannes Sixt [this message]
2013-04-29 17:36 ` Junio C Hamano
2013-04-29 17:41 ` [PATCH 0/3] De-bashing remote-testgit Junio C Hamano
2013-04-29 17:41 ` [PATCH 1/3] git-remote-testgit: avoid process substitution Junio C Hamano
2013-04-29 17:41 ` [PATCH 2/3] git-remote-testgit: further remove some bashisms Junio C Hamano
2013-04-29 17:41 ` [PATCH 3/3] git-remote-testgit: build it to run under $SHELL_PATH Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=517C2349.3050609@kdbg.org \
--to=j6t@kdbg$(echo .)org \
--cc=felipe.contreras@gmail$(echo .)com \
--cc=git@vger$(echo .)kernel.org \
--cc=gitster@pobox$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox