Subject: Re: [PATCH] submodule: prevent warning in summary output

From: Jens Lehmann <[email-masked]>
Date: Mon, 19 Aug 2013 23:17:31 +0200

Am 19.08.2013 10:13, schrieb Chris Packham:
> Hi Brian,
> On 19/08/13 05:31, brian m. carlson wrote:
>> When git submodule summary is run and there is a deleted submodule, there is an
>> warning from git rev-parse:
>>
>>   fatal: Not a git repository: '.vim/pathogen/.git'
>>
>> Silence this warning, since it is fully expected that a deleted submodule will
>> not be a git repository.
>>
>> Signed-off-by: brian m. carlson <[email-masked]>
>> ---
>>  git-submodule.sh | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/git-submodule.sh b/git-submodule.sh
>> index 2979197..66ee621 100755
>> --- a/git-submodule.sh
>> +++ b/git-submodule.sh
>> @@ -1071,7 +1071,7 @@ cmd_summary() {
>>  		missing_dst=
>>  
>>  		test $mod_src = 160000 &&
>> -		! GIT_DIR="$name/.git" git-rev-parse -q --verify $sha1_src^0 >/dev/null &&
>> +		! GIT_DIR="$name/.git" git-rev-parse -q --verify $sha1_src^0 >/dev/null 2>&1 &&
>>  		missing_src=t
>>  
>>  		test $mod_dst = 160000 &&
>>
> 
> I wonder if there are other useful errors this will silence
> unintentionally. Perhaps this would be better (untested)
> 
>  test $mod_src = 160000 &&
>  test -e "$name/.git" &&
>  ! GIT_DIR="$name/.git" git-rev-parse -q --verify $sha1_src^0 /dev/null &&
>   missing_src=t
> 
> Having said that there are precedents for both in git-submodule.sh. If
> there aren't any errors worth catching here then your way is probably
> cleaner than mine.

I'd prefer a way to not drop all errors too. We should be able to use
the status variable to see if the submodule is deleted and then skip
the rev-parse all together, or am I missing something here?