Stefan Beller wrote: [...] >> $ rungit v2.6.6 submodule deinit . >> error: pathspec '.' did not match any file(s) known to git. >> Did you forget to 'git add'? >> $ >file && git add file >> $ rungit v2.6.6 submodule deinit . >> $ echo $? >> 0 > > So instead of a path spec add a parameter '--all' to deinit all submodules > and add a test to check for the corner case of an empty repository. Makes sense. [...] > It is a fix for a corner case, but it is renaming the switch, so I would > expect that we'd wait for a new version at least. The bug was that the documentation and error message gave advice that didn't work. [...] > +++ b/Documentation/git-submodule.txt > @@ -13,7 +13,7 @@ SYNOPSIS > [--reference <repository>] [--depth <depth>] [--] <repository> [<path>] > 'git submodule' [--quiet] status [--cached] [--recursive] [--] [<path>...] > 'git submodule' [--quiet] init [--] [<path>...] > -'git submodule' [--quiet] deinit [-f|--force] [--] <path>... > +'git submodule' [--quiet] deinit [-f|--force] [-a|--all] [--] <path>... > 'git submodule' [--quiet] update [--init] [--remote] [-N|--no-fetch] > [-f|--force] [--rebase|--merge] [--reference <repository>] > [--depth <depth>] [--recursive] [--] [<path>...] > @@ -144,6 +144,11 @@ deinit:: > you really want to remove a submodule from the repository and commit > that use linkgit:git-rm[1] instead. > + > + To unregister all submodules use `--all` with no path spec. In > + version 2.8 and prior, you were advised to give '.' to unregister > + all submodules. This may continue to work in the future, but as the > + path spec '.' may include regular files, this could stop working. > ++ > If `--force` is specified, the submodule's work tree will be removed even if > it contains local modifications. Inconsistent indentation. Does asciidoc format this correctly? [...] > +++ b/git-submodule.sh > @@ -521,6 +521,7 @@ cmd_init() [...] > shift > done > > - if test $# = 0 > + if test -n "$deinit_all" && test "$#" -ne 0 > + then > + die "$(eval_gettext "'--all' is incompatible with pathspec arguments")" > + fi This message is giving implementation details. Most other git commands just dump usage when passed too many arguments --- perhaps we can do something more targeted like the following: die "$(eval_gettext "usage: $dashless [--quiet] deinit [-f|--force] (--all | [--] <path>...)")" Speaking of which: please also update the USAGE string at the top of git-submodule.sh. [...] > --- a/t/t7400-submodule-basic.sh > +++ b/t/t7400-submodule-basic.sh Makes sense. Thanks for a pleasant fix. Jonathan -- 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