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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Apr 25, 2013 at 9:57 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote:
> 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:

I wonder if we should bother with this at all. The purpose of the code
was mainly to show to users that they should report the success only
if the refs have been updated, but the code is becoming more
obfuscated, a comment should do the trick. And then, we can just
report success for all the refs (and explain in the comment why).

-- 
Felipe Contreras
--
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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]