submodule: Add --force option for git submodule update
authorNicolas Morey-Chaisemartin <nmorey@kalray.eu>
Fri, 1 Apr 2011 09:42:03 +0000 (11:42 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 4 Apr 2011 17:50:50 +0000 (10:50 -0700)
commit9db31bdf5c834689c826f809d6d15bf7ab8d3598
treea355228e9a008b9430f3e9702a867ac80a19ee02
parent8e848868fff625a8dda92fb11edf2b7975827e1a
submodule: Add --force option for git submodule update

By default git submodule update runs a simple checkout on submodules that
are not up-to-date. If the submodules contains modified or untracked
files, the command may exit sanely with an error:

  $ git submodule update
  error: Your local changes to the following files would be overwritten by
  checkout:
  file
  Please, commit your changes or stash them before you can switch branches.
  Aborting
  Unable to checkout '1b69c6e55606b48d3284a3a9efe4b58bfb7e8c9e' in
  submodule path 'test1'

In order to reset a whole git submodule tree, a user has to run first 'git
submodule foreach --recursive git checkout -f' and then run 'git submodule
update'.

This patch adds a --force option for the update command (only used for
submodules without --rebase or --merge options). It passes the --force
option to git checkout which will throw away the local changes.

Signed-off-by: Nicolas Morey-Chaisemartin <nmorey@kalray.eu>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-submodule.txt
git-submodule.sh
t/t7406-submodule-update.sh