imyousuf@gmail.com writes:The indentation style seems, eh, unique. An overlong single paragraph with solid run of sentences is somewhat hard to read. I am not still convinced that a subcommand other than init, which is started recursively, should initialize and update submodules that are uninitialized. Currently there is no way, other than not having an initialized submodule repository, to mark that the user is _not_ interested in a particular submodule, and you will lose that if you make recursing into uninitialized ones too easy and aggressive. I suspect that it might be a saner approach to: - allow "git submodule recurse init [-d depth]" (although I am not sure if limit by depth is so useful in practice -- only experience will tell us) to auto-initialize the uninitialized submodules; - allow any other "git submodule recurse $cmd" to run recursively to _any_ depth, but never auto-initialize the uninitialized submodules. In other words, I think it is a very bad idea to rob the existing mechanism from the user to mark uninteresting submodules by not initializing them. An alternative would be to give them other means to mark "I am not interested in these submodules", if you insist on this auto-initialization, but I do not offhand think of a mechanism that is easier to use than what we already have (i.e. not checking them out). I wonder if we want this "verbose" option to be specific to the recurse subcommand, or perhaps other subcommands may want to support more verbose output mode, even if they currently don't. Perhaps the variable should be just called $verbose? That's a sensible message for the $verbose mode. Can init fail for repository "$1"? Do you want to proceed updating it if it does? Is this a sensible message, I have to wonder... Saying `pwd` after already saying "$submod_path" feels more like a debugging message than just being $verbose. Is the user interested in exit status from this command? Does the user want to continue on to other submodules if this one fails? Overly long line. Perhaps... if test "$depth" -eq 0 || test "$current_depth" -lt "$depth" then ... (1) I do not think you need to export this variable; (2) It was reported some shells that we intend to support mishandle "export VAR=VAL" construct and we tend to write this "VAR=VAL" followed by "export VAR" as two separate commands on two separate lines; (3) We do not use "bc" (and traditionally, shell scripts outside git don't, either) in scripts. So, I think: current_recursion_depth=$(( $current_recursion_depth + 1 )) is enough, although the variable name feels overly long. Probably I would even do: if test "$depth -ne 0 && test "$current_depth" -ge "$depth" then exit 0 fi if test -f .gitmodules then current_recursion_depth=$(( $current_recursion_depth + 1 )) for p in $(sed -n -e 's/path = ....) do traverse_module "$p" "$@" done fi which would avoid one level of nesting (and indentation), and removes unnecessary increment and decrement inside the loop. You are in your own subprocess, so your increment will not affect the process that called you, and after leaving the loop the only thing you do is just to exit the subprocess. Doesn't this message belong to $verbose mode? These sounds more like debugging message than $verbose. Likewise -- you will repeat that inside traverse_module anyway. Do I see a code duplication here? Why isn't this done as the first level recursion inside traverse_module? _Even_ _if_ you insist auto-initializing submodules, by moving the initialize_sub_module call in traverse_module a bit down (namely, before it recursively invoke traverse_module itself and make it auto initialize $submod_path, not "$1"), I think you can remove this duplication. And its exit code is 0 which tells the caller that there is no error? The reason for this unset is...? You do not need that $repeat thing. Just use "break", like this. while : do case ... in ... *) break ;; esac done (minor style) if test -z "$3" then ... Instead of checking integerness by hand, it would probably be much simpler if you did something like this: depth="$3" depth=$(( $depth + 0 )) if test "$depth" != "$3" then die "what's that '$3' for?" else : happy fi For a rough guideline of shell constructs we use (and do not use), please see Documentation/CodingGuidelines. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Srivatsa Vaddagiri | containers (was Re: -mm merge plans for 2.6.23) |
| Benjamin Herrenschmidt | Re: [linux-pm] [PATCH] Remove process freezer from suspend to RAM pathway |
git: | |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Patrick McHardy | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 6/7] [CCID-2/3]: Fix sparse warnings |
