Ping Yin <pkufranky@xxxxxxxxx> writes: > + # get modified modules which have been checked out (i.e. cared by user) > + modules=$(git diff $cache_option --raw $head -- "$@" | > + grep '^:160000\|:000000 160000' | > + while read mod_src mod_dst sha1_src sha1_dst status name > + do You are listing paths that were already submodule in HEAD, or newly added submodule. What about a path that used to be a blob but is being made into submodule with the next commit (i.e. RHS is 160000 but LHS is not 000000)? > + # TODO: quote module names containing space or tab Yes, you would need to worry about *un*quoting them. > + test -n "$modules" && > + echo "# Submodules modified: "$modules && > + echo "#" > + cd "$cwd" Hmmmmmm.... > -case "$add,$init,$update,$status,$cached" in > -1,,,,) > +case "$add,$init,$update,$summary,$status,$cached" in > +1,,,,,) > module_add "$@" > ;; This is simply unsustainable. Please see the other thread with Imran M Yousuf regarding the command dispatcher. I think that should be the first thing to fix before doing any change. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html