On Wed, Jan 20, 2016 at 1:18 PM, Junio C Hamano <[email protected]> wrote:
> Stefan Beller <[email protected]> writes:
>
>> diff --git a/git-submodule.sh b/git-submodule.sh
>> index 6fce0dc..ab0f209 100755
>> --- a/git-submodule.sh
>> +++ b/git-submodule.sh
>> @@ -130,6 +130,7 @@ cmd_add()
>> {
>> # parse $args after "submodule ... add".
>> reference_path=
>> + submodule_groups=
>
> This can just be called $groups in the context of this script. I do
> not foresee we would be planning to deal with other kinds of groups
> here.
ok, done.
>
>> while test $# -ne 0
>> do
>> case "$1" in
>> @@ -165,6 +166,10 @@ cmd_add()
>> --depth=*)
>> depth=$1
>> ;;
>> + -g|--group)
>> +
>> submodule_groups=${submodule_groups:+${submodule_groups};}"$2"
>> + shift
>> + ;;
>
> You would want to accept "--group=<name>" as well, just like
> existing --reference and --depth do. It won't be much more code,
> and when you move to C (hence parse_options) you'd get it for free
> anyway.
I am not sure, if I will to move `add` to C any time soon. Sure I desire
less shell and more C[1], but I'd think my time could be spent better than
just converting scripts to C. Sometimes I have to though, such as in the
case of `init` as the the call out from C to shell is too ugly and the effort to
do that is not that much less.
>
>> @@ -292,6 +297,16 @@ Use -f if you really want to add it." >&2
>>
>> git config -f .gitmodules submodule."$sm_name".path "$sm_path" &&
>> git config -f .gitmodules submodule."$sm_name".url "$repo" &&
>> + if test -n "$submodule_groups"
>> + then
>> + OIFS=$IFS
>> + IFS=';'
>
> I do not quite understand the choice of ';' here. If and only if
> you _must_ accept multi-word name that has spaces in between as a
> group name, the above construct may make sense, but I do not think
> we have such requirement. Why not separate with $IFS letters just
> like any other normal list managed in shell scripts do? Is there
> anything special about names of submodule groups?
Just prior to writing this patch, I spent a good amount of time understanding
the error message handling in the parts of the shell code, where the $IFS is
used, so my mind was deceived to imitate that.
I agree, we can just use a space as separator here.
Thanks,
Stefan
[1] Reason why I have such a disdain to shell is that I do not
understand nearly as
much as C. I am self-taught in both C and shell, so I do not claim to
be perfect.
However C is a small but powerful language. After reading "The C Programming
Language" by Kernighan and Ritchie I do not think I found a thing that
was really
unknown to me. However even plain posix-shell is complex enough, that there
is no such thing as a compact book to read to understand all its concepts IMHO.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html