From: Orgad Shaneh <orgads@gmail.com>
To: git@vger.kernel.org
Cc: Orgad Shaneh <orgads@gmail.com>
Subject: [PATCH] submodule: add verbose mode for add/update
Date: Wed, 12 Mar 2014 22:03:45 +0200 [thread overview]
Message-ID: <1394654625-4586-1-git-send-email-orgads@gmail.com> (raw)
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 | 10 ++++++++++
3 files changed, 34 insertions(+), 7 deletions(-)
diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
index 21cb59a..0147b23 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. Display the progress
+ of the actual submodule checkout.
<path>...::
Paths to submodule(s). When specified this will restrict the command
diff --git a/git-submodule.sh b/git-submodule.sh
index a33f68d..e1df2c8 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:+"$subquiet"} ${start_point:+"$start_point"} ;;
+ ?*) git checkout -f ${subquiet:+"$subquiet"} -B "$local_branch" ${start_point:+"$start_point"} ;;
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:+"$subquiet"}"
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..c3de90a 100755
--- a/t/t7406-submodule-update.sh
+++ b/t/t7406-submodule-update.sh
@@ -83,6 +83,16 @@ 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>messages &&
+ test_i18ngrep "HEAD is now at" messages
+ )
+'
+
test_expect_success 'submodule update from subdirectory' '
(cd super/submodule &&
git reset --hard HEAD~1
--
1.9.0
next reply other threads:[~2014-03-12 20:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-12 20:03 Orgad Shaneh [this message]
2014-03-12 20:19 ` [PATCH] submodule: add verbose mode for add/update Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2014-03-12 13:42 Orgad Shaneh
2014-03-12 16:15 ` Jens Lehmann
2014-03-12 20:00 ` Orgad Shaneh
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=1394654625-4586-1-git-send-email-orgads@gmail.com \
--to=orgads@gmail.com \
--cc=git@vger.kernel.org \
/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.