Subject: Re: [PATCH] submodule: add verbose mode for add/update

From: Jens Lehmann <[email-masked]>
Date: Wed, 10 Apr 2013 22:00:42 +0200

Am 10.04.2013 20:24, schrieb Orgad Shaneh:
> Executes checkout without -q

Nice, looks like you picked the proposal I made last September:
  http://permalink.gmane.org/gmane.comp.version-control.git/204747

The change is looking good, but you still need to document the
new option in Documentation/git-submodule.txt too please.

And the commit message is still too short, as I said in that
other thread:

On Tue, Sep 4, 2012 at 6:28 PM, Jens Lehmann <[email-masked]> wrote:
> Before the "Signed-off-by" is the place where you should have
> explained why this would be a worthwhile change ;-)

And you answered to that with something that would really make
sense as first part of the commit message, because you explain
*why* you do that change:

Am 05.09.2012 13:42, schrieb Orgad and Raizel Shaneh:
> When I run 'git submodule update' I don't expect to be in the dark
> until the submodule/s finishes checkout, this sometimes can take a
> significant amount of time and feedback is expected.

Another paragraph after that should explain *how* you do it.

So what about the following as commit message:
--------------------------------------------------------------
When 'git submodule add/update' is run there is no output during
checkout. This can take a significant amount of time and it would
be nice if user could enable some feedback to see what's going on.

Add the -v/--verbose option to both add and update which suppresses
the -q normally given to checkout so the user sees progress output
from the checkout command.

<Your Signed-off-by goes here>
--------------------------------------------------------------

I'm looking forward to your next iteration.

> ---
>  git-submodule.sh |   24 +++++++++++++++++++-----
>  1 file changed, 19 insertions(+), 5 deletions(-)
> 
> diff --git a/git-submodule.sh b/git-submodule.sh
> index 79bfaac..f7964ad 100755
> --- a/git-submodule.sh
> +++ b/git-submodule.sh
> @@ -5,11 +5,11 @@
>  # Copyright (c) 2007 Lars Hjemli
>  
>  dashless=$(basename "$0" | sed -e 's/-/ /')
> -USAGE="[--quiet] add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [--] <repository> [<path>]
> +USAGE="[--quiet] add [-b <branch>] [-f|--force] [--name <name>] [--reference <repository>] [-v|--verbose] [--] <repository> [<path>]
>     or: $dashless [--quiet] status [--cached] [--recursive] [--] [<path>...]
>     or: $dashless [--quiet] init [--] [<path>...]
>     or: $dashless [--quiet] deinit [-f|--force] [--] <path>...
> -   or: $dashless [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--rebase] [--reference <repository>] [--merge] [--recursive] [--] [<path>...]
> +   or: $dashless [--quiet] update [--init] [--remote] [-N|--no-fetch] [-f|--force] [--rebase] [--reference <repository>] [--merge] [--recursive] [-v|--verbose] [--] [<path>...]
>     or: $dashless [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...]
>     or: $dashless [--quiet] foreach [--recursive] <command>
>     or: $dashless [--quiet] sync [--recursive] [--] [<path>...]"
> @@ -309,6 +309,9 @@ cmd_add()
>  			custom_name=$2
>  			shift
>  			;;
> +		-v|--verbose)
> +			VERBOSE=1
> +			;;
>  		--)
>  			shift
>  			break
> @@ -408,11 +411,15 @@ Use -f if you really want to add it." >&2
>  		module_clone "$sm_path" "$sm_name" "$realrepo" "$reference" || exit
>  		(
>  			clear_local_git_env
> +			if test -z "$VERBOSE"
> +			then
> +				subquiet=-q
> +			fi
>  			cd "$sm_path" &&
>  			# ash fails to wordsplit ${branch:+-b "$branch"...}
>  			case "$branch" in
> -			'') git checkout -f -q ;;
> -			?*) git checkout -f -q -B "$branch" "origin/$branch" ;;
> +			'') git checkout -f $subquiet ;;
> +			?*) git checkout -f $subquiet -B "$branch" "origin/$branch" ;;
>  			esac
>  		) || die "$(eval_gettext "Unable to checkout submodule '\$sm_path'")"
>  	fi
> @@ -676,6 +683,9 @@ cmd_update()
>  		--checkout)
>  			update="checkout"
>  			;;
> +		-v|--verbose)
> +			VERBOSE=1
> +			;;
>  		--)
>  			shift
>  			break
> @@ -799,7 +809,11 @@ Maybe you want to use 'update --init'?")"
>  				must_die_on_failure=yes
>  				;;
>  			*)
> -				command="git checkout $subforce -q"
> +				if test -z "$VERBOSE"
> +				then
> +					subquiet=-q
> +				fi
> +				command="git checkout $subforce $subquiet"
>  				die_msg="$(eval_gettext "Unable to checkout '\$sha1' in submodule path '\$prefix\$sm_path'")"
>  				say_msg="$(eval_gettext "Submodule path '\$prefix\$sm_path': checked out '\$sha1'")"
>  				;;
>