Imported Upstream version 2.0.1
[platform/upstream/git.git] / Documentation / git-mv.txt
index e3c8448..e453132 100644 (file)
@@ -13,7 +13,7 @@ SYNOPSIS
 
 DESCRIPTION
 -----------
-This script is used to move or rename a file, directory or symlink.
+Move or rename a file, directory or symlink.
 
  git mv [-v] [-f] [-n] [-k] <source> <destination>
  git mv [-v] [-f] [-n] [-k] <source> ... <destination directory>
@@ -34,7 +34,7 @@ OPTIONS
 -k::
         Skip move or rename actions which would lead to an error
        condition. An error happens when a source is neither existing nor
-        controlled by GIT, or when it would overwrite an existing
+       controlled by Git, or when it would overwrite an existing
         file unless '-f' is given.
 -n::
 --dry-run::
@@ -44,6 +44,26 @@ OPTIONS
 --verbose::
        Report the names of files as they are moved.
 
+SUBMODULES
+----------
+Moving a submodule using a gitfile (which means they were cloned
+with a Git version 1.7.8 or newer) will update the gitfile and
+core.worktree setting to make the submodule work in the new location.
+It also will attempt to update the submodule.<name>.path setting in
+the linkgit:gitmodules[5] file and stage that file (unless -n is used).
+
+BUGS
+----
+Each time a superproject update moves a populated submodule (e.g. when
+switching between commits before and after the move) a stale submodule
+checkout will remain in the old location and an empty directory will
+appear in the new location. To populate the submodule again in the new
+location the user will have to run "git submodule update"
+afterwards. Removing the old directory is only safe when it uses a
+gitfile, as otherwise the history of the submodule will be deleted
+too. Both steps will be obsolete when recursive submodule update has
+been implemented.
+
 GIT
 ---
 Part of the linkgit:git[1] suite