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

From: Chris Packham <[email-masked]>
Date: Mon, 19 Aug 2013 20:13:30 +1200

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.

- C