Hi,

The command "git submodule update" accepts an "--init" flag to
initialize an uninitialized submodules.

Shouldn't it also accept "--sync" flag in order to sync and unsync'd submodule?

Otherwise it seems like I'll have to do "git submodule update" twice
in order to update an already initialized submodule whose upstream
repo url has been updated in .gitmodules to point to somewhere new,
like so:

$ cd superproject
$ git pull
$ git submodule update --init --recursive
fatal: reference is not a tree: c21784553dcd15e1534773fe3177f39cbb93be65
Unable to checkout 'c21784553dcd15e1534773fe3177f39cbb93be65' in
submodule path 'path/to/submodule'
Failed to recurse into submodule path 'path/to/submodule'
$ git submodule sync
$ git submodule update --init --recursive

If the submodule update subcommand accepts the "--sync" flag then
above can then be simplified to this:

$ cd superproject
$ git pull
$ git submodule update --init --sync --recursive

So the "--init" and "--sync" flags tells git to initialize an
uninitialized submodule, and syncs any out-of-sync submodules.

nazri

Reply via email to