All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Lehmann <Jens.Lehmann@web.de>
To: Orgad Shaneh <orgads@gmail.com>, git@vger.kernel.org
Subject: Re: [PATCH] submodule: add verbose mode for add/update
Date: Wed, 12 Mar 2014 17:15:50 +0100	[thread overview]
Message-ID: <53208836.4050900@web.de> (raw)
In-Reply-To: <1394631731-4678-1-git-send-email-orgad.shaneh@audiocodes.com>

Am 12.03.2014 14:42, schrieb Orgad Shaneh:
> From: Orgad Shaneh <orgads@gmail.com>

You don't need the line above when you are the sender ;-)

> Executes checkout without -q

That's a bit terse. What about:

"Add the verbose flag to add and update which displays the
 progress of the actual submodule checkout when given. This
 is useful for checkouts that take a long time, as the user
 can then see the progress."

> Signed-off-by: Orgad Shaneh <orgads@gmail.com>
> ---
>  Documentation/git-submodule.txt |  7 +++++--
>  git-submodule.sh                | 24 +++++++++++++++++++-----
>  t/t7406-submodule-update.sh     |  9 +++++++++
>  3 files changed, 33 insertions(+), 7 deletions(-)
> 
> diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
> index 21cb59a..1867e94 100644
> --- a/Documentation/git-submodule.txt
> +++ b/Documentation/git-submodule.txt
> @@ -10,13 +10,13 @@ SYNOPSIS
>  --------
>  [verse]
>  'git submodule' [--quiet] add [-b <branch>] [-f|--force] [--name <name>]
> -	      [--reference <repository>] [--depth <depth>] [--] <repository> [<path>]
> +	      [--reference <repository>] [--depth <depth>] [-v|--verbose] [--] <repository> [<path>]
>  'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...]
>  'git submodule' [--quiet] init [--] [<path>...]
>  'git submodule' [--quiet] deinit [-f|--force] [--] <path>...
>  'git submodule' [--quiet] update [--init] [--remote] [-N|--no-fetch]
>  	      [-f|--force] [--rebase|--merge|--checkout] [--reference <repository>]
> -	      [--depth <depth>] [--recursive] [--] [<path>...]
> +	      [--depth <depth>] [--recursive] [-v|--verbose] [--] [<path>...]
>  'git submodule' [--quiet] summary [--cached|--files] [(-n|--summary-limit) <n>]
>  	      [commit] [--] [<path>...]
>  'git submodule' [--quiet] foreach [--recursive] <command>
> @@ -363,6 +363,9 @@ for linkgit:git-clone[1]'s `--reference` and `--shared` options carefully.
>  	clone with a history truncated to the specified number of revisions.
>  	See linkgit:git-clone[1]
>  
> +--verbose::
> +  This option is valid for add and update commands. Show output of
> +  checkout.

The above looks whitespace-damaged, you should use TABs here to
indent (just like the other options do).

>  <path>...::
>  	Paths to submodule(s). When specified this will restrict the command
> diff --git a/git-submodule.sh b/git-submodule.sh
> index a33f68d..5c4e057 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>...]"
> @@ -319,12 +319,16 @@ module_clone()
>  	rel=$(echo $a | sed -e 's|[^/][^/]*|..|g')
>  	(
>  		clear_local_git_env
> +		if test -z "$verbose"
> +		then
> +			subquiet=-q
> +		fi
>  		cd "$sm_path" &&
>  		GIT_WORK_TREE=. git config core.worktree "$rel/$b" &&
>  		# ash fails to wordsplit ${local_branch:+-B "$local_branch"...}
>  		case "$local_branch" in
> -		'') git checkout -f -q ${start_point:+"$start_point"} ;;
> -		?*) git checkout -f -q -B "$local_branch" ${start_point:+"$start_point"} ;;
> +		'') git checkout -f $subquiet ${start_point:+"$start_point"} ;;
> +		?*) git checkout -f $subquiet -B "$local_branch" ${start_point:+"$start_point"} ;;

Wouldn't it be better to use the ${subquiet:+"$subquiet"} notation
here like the other optional arguments do? After all the subquiet
isn't always set.

>  		esac
>  	) || die "$(eval_gettext "Unable to setup cloned submodule '\$sm_path'")"
>  }
> @@ -380,6 +384,9 @@ cmd_add()
>  		--depth=*)
>  			depth=$1
>  			;;
> +		-v|--verbose)
> +			verbose=1
> +			;;
>  		--)
>  			shift
>  			break
> @@ -786,6 +793,9 @@ cmd_update()
>  		--depth=*)
>  			depth=$1
>  			;;
> +		-v|--verbose)
> +			verbose=1
> +			;;
>  		--)
>  			shift
>  			break
> @@ -913,7 +923,11 @@ Maybe you want to use 'update --init'?")"
>  			must_die_on_failure=
>  			case "$update_module" in
>  			checkout)
> -				command="git checkout $subforce -q"
> +				if test -z "$verbose"
> +				then
> +					subquiet=-q
> +				fi
> +				command="git checkout $subforce $subquiet"

Same as above.

>  				die_msg="$(eval_gettext "Unable to checkout '\$sha1' in submodule path '\$displaypath'")"
>  				say_msg="$(eval_gettext "Submodule path '\$displaypath': checked out '\$sha1'")"
>  				;;
> diff --git a/t/t7406-submodule-update.sh b/t/t7406-submodule-update.sh
> index 28ca763..04a0fcc 100755
> --- a/t/t7406-submodule-update.sh
> +++ b/t/t7406-submodule-update.sh
> @@ -83,6 +83,15 @@ test_expect_success 'submodule update detaching the HEAD ' '
>  	)
>  '
>  
> +test_expect_success 'submodule update verbose' '
> +	(cd super/submodule &&
> +	 git checkout master
> +	) &&
> +	(cd super &&
> +	 git submodule update --verbose submodule 2>&1 | grep -q "HEAD is now at"

This string is translated, so you need to use test_i18ngrep.
Please see t7201-co.sh for an example of how to pipe the
output into a file and then compare it.

> +	)
> +'
> +
>  test_expect_success 'submodule update from subdirectory' '
>  	(cd super/submodule &&
>  	 git reset --hard HEAD~1
> 

  reply	other threads:[~2014-03-12 16:15 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-12 13:42 [PATCH] submodule: add verbose mode for add/update Orgad Shaneh
2014-03-12 16:15 ` Jens Lehmann [this message]
2014-03-12 20:00   ` Orgad Shaneh
2020-04-11 12:08 ` When will this patch be merged? Vladimir Nikishkin
2020-04-11 12:08   ` Vladimir Nikishkin
2020-04-12  6:31   ` Jonathan Nieder
  -- strict thread matches above, loose matches on Subject: below --
2014-03-12 20:03 [PATCH] submodule: add verbose mode for add/update Orgad Shaneh
2014-03-12 20:19 ` Junio C Hamano
2014-03-12  6:38 Orgad Shaneh
2014-03-12  8:35 ` Eric Sunshine
2013-04-10 20:10 Orgad Shaneh
2013-04-10 18:24 Orgad Shaneh
2013-04-10 20:00 ` Jens Lehmann

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=53208836.4050900@web.de \
    --to=jens.lehmann@web.de \
    --cc=git@vger.kernel.org \
    --cc=orgads@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.