From: Phil Hord <hordp@cisco.com>
To: Jens Lehmann <Jens.Lehmann@web.de>
Cc: git@vger.kernel.org, phil.hord@gmail.com, Jeff King <peff@peff.net>
Subject: Re: [PATCH 1/2] Teach --recursive to submodule sync
Date: Fri, 26 Oct 2012 13:19:58 -0400 [thread overview]
Message-ID: <508AC63E.6010502@cisco.com> (raw)
In-Reply-To: <5089BBE1.3040107@web.de>
Jens Lehmann wrote:
> Am 24.10.2012 01:15, schrieb Phil Hord:
>> The submodule sync command was somehow left out when
>> --recursive was added to the other submodule commands.
>>
>> Teach sync to handle the --recursive switch by recursing
>> when we're in a submodule we are sync'ing.
>>
>> Change the report during sync to show submodule-path
>> instead of submodule-name to be consistent with the other
>> submodule commands and to help recursed paths make sense.
>>
>> Signed-off-by: Phil Hord <hordp@cisco.com>
> This makes perfect sense to me. Two things though:
>
> First it would be nice to initialize orig_flags like all the other
> call sites do:
>
> @@ -1003,6 +1003,7 @@ cmd_status()
> #
> cmd_sync()
> {
> + orig_flags=
> while test $# -ne 0
> do
> case "$1" in
>
>> ---
>> git-submodule.sh | 18 +++++++++++++++---
>> 1 file changed, 15 insertions(+), 3 deletions(-)
>>
>> diff --git a/git-submodule.sh b/git-submodule.sh
>> index ab6b110..6dd2338 100755
>> --- a/git-submodule.sh
>> +++ b/git-submodule.sh
>> @@ -11,7 +11,7 @@ USAGE="[--quiet] add [-b branch] [-f|--force] [--reference <repository>] [--] <r
>> or: $dashless [--quiet] update [--init] [-N|--no-fetch] [-f|--force] [--rebase] [--reference <repository>] [--merge] [--recursive] [--] [<path>...]
>> or: $dashless [--quiet] summary [--cached|--files] [--summary-limit <n>] [commit] [--] [<path>...]
>> or: $dashless [--quiet] foreach [--recursive] <command>
>> - or: $dashless [--quiet] sync [--] [<path>...]"
>> + or: $dashless [--quiet] sync [--recursive] [--] [<path>...]"
>> OPTIONS_SPEC=
>> . git-sh-setup
>> . git-sh-i18n
>> @@ -1008,7 +1008,9 @@ cmd_sync()
>> case "$1" in
>> -q|--quiet)
>> GIT_QUIET=1
>> - shift
>> + ;;
>> + --recursive)
>> + recursive=1
>> ;;
>> --)
>> shift
>> @@ -1021,6 +1023,8 @@ cmd_sync()
>> break
>> ;;
>> esac
>> + orig_flags="$orig_flags $(git rev-parse --sq-quote "$1")"
>> + shift
>> done
>> cd_to_toplevel
>> module_list "$@" |
>> @@ -1051,7 +1055,7 @@ cmd_sync()
>>
>> if git config "submodule.$name.url" >/dev/null 2>/dev/null
>> then
>> - say "$(eval_gettext "Synchronizing submodule url for '\$name'")"
>> + say "$(eval_gettext "Synchronizing submodule url for '\$prefix\$sm_path'")"
>> git config submodule."$name".url "$super_config_url"
>>
>> if test -e "$sm_path"/.git
>> @@ -1061,6 +1065,14 @@ cmd_sync()
>> cd "$sm_path"
>> remote=$(get_default_remote)
>> git config remote."$remote".url "$sub_origin_url"
>> +
>> + if test -n "$recursive"
>> + then
>> + (
>> + prefix="$prefix$sm_path/"
>> + eval cmd_sync "$orig_args"
> This should read 'eval cmd_sync "$orig_flags"'. I think you copied that
> from cmd_status(), where this is also incorrect, I just sent a patch to
> correct that one.
Yes, thanks for catching that. I think I should add a test for that
except I notice that sync doesn't take any other flags useful for passing.
v2 is on the way.
>> + )
>> + fi
>> )
>> fi
>> fi
>>
next prev parent reply other threads:[~2012-10-26 17:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-16 23:20 git submodule sync --recursive Phil Hord
2012-10-17 18:26 ` Jens Lehmann
2012-10-23 23:15 ` Phil Hord
2012-10-23 23:15 ` [PATCH 1/2] Teach --recursive to submodule sync Phil Hord
2012-10-25 22:23 ` Jens Lehmann
2012-10-26 17:19 ` Phil Hord [this message]
2012-10-26 17:55 ` Phil Hord
2012-10-26 18:50 ` Jens Lehmann
2012-10-26 17:31 ` [PATCHv2 0/2] Reroll submodule sync --recursive Phil Hord
2012-10-26 17:31 ` [PATCHv2 1/2] Teach --recursive to submodule sync Phil Hord
2012-10-26 17:31 ` [PATCHv2 2/2] Add tests for submodule sync --recursive Phil Hord
2012-10-23 23:15 ` [PATCH " Phil Hord
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=508AC63E.6010502@cisco.com \
--to=hordp@cisco.com \
--cc=Jens.Lehmann@web.de \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=phil.hord@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.