If you give git submodule an invalid commands, it outputs nothing. For example: Vienna:git pieter$ git submodule satsus Vienna:git pieter$ This is because the default command is 'status' and status accepts paths to limit the output. I tried to find a fix for this, but git-submodule also allows a syntax like git submodule --cached status and git submodule --cached so you can't just look at the first argument to see if a command is valid. Similarly, the default command is 'status', so something like Vienna:bonnenteller pieter$ git submodule vendor/ ef38bc83b7ff4b290a6b1f4d82df03585fbb7529 vendor/plugins/will_paginate (2.3.2) is also valid. Using that line of reasoning, something like 'git submodule satsus' is valid and should return nothing, because there are no submodules in the 'satsus' path. However, I still feel this should produce a warning. I'm sure there is a nicer way to alert the user than my patch below, which warns if the user did not supply any valid paths. Anyone else got a more satisfying approach? - Pieter diff --git a/git-submodule.sh b/git-submodule.sh index 1c39b59..3aae746 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -59,7 +59,12 @@ resolve_relative_url () # module_list() { - git ls-files --stage -- "$@" | grep '^160000 ' + git ls-files --stage -- "$@" | grep '^160000 ' || + if test -z "$@"; then + die "This repository contains no submodules" + else + die "Could not find any submodules in paths $@" + fi } # -- 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