summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-01-13 19:33:47 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-01-13 19:33:47 (GMT)
commita65a53bf04c56ae2365f57702a810af0551899a1 (patch)
treee4dde128458fdb70348adc8164a33a95514196f5 /Documentation
parent5e72e7168c8eefa7bcb02b0499785db0578b549b (diff)
parentbbad9f9314f658b5c0f302148fc9780f5788dcd8 (diff)
downloadgit-a65a53bf04c56ae2365f57702a810af0551899a1.zip
git-a65a53bf04c56ae2365f57702a810af0551899a1.tar.gz
git-a65a53bf04c56ae2365f57702a810af0551899a1.tar.bz2
Merge branch 'jl/submodule-mv-checkout-caveat'
With a submodule that was initialized in an old fashioned way without gitlinks, switching branches in the superproject between the one with and without the submodule may leave the submodule working tree with its embedded repository behind, as there may be unexpendable state there. Document and warn users about this. * jl/submodule-mv-checkout-caveat: rm: better document side effects when removing a submodule mv: better document side effects when moving a submodule
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/git-mv.txt12
-rw-r--r--Documentation/git-rm.txt9
2 files changed, 21 insertions, 0 deletions
diff --git a/Documentation/git-mv.txt b/Documentation/git-mv.txt
index b1f7988..e453132 100644
--- a/Documentation/git-mv.txt
+++ b/Documentation/git-mv.txt
@@ -52,6 +52,18 @@ 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
diff --git a/Documentation/git-rm.txt b/Documentation/git-rm.txt
index 9d731b4..f1efc11 100644
--- a/Documentation/git-rm.txt
+++ b/Documentation/git-rm.txt
@@ -170,6 +170,15 @@ of files and subdirectories under the `Documentation/` directory.
(i.e. you are listing the files explicitly), it
does not remove `subdir/git-foo.sh`.
+BUGS
+----
+Each time a superproject update removes a populated submodule
+(e.g. when switching between commits before and after the removal) a
+stale submodule checkout will remain in the old location. Removing the
+old directory is only safe when it uses a gitfile, as otherwise the
+history of the submodule will be deleted too. This step will be
+obsolete when recursive submodule update has been implemented.
+
SEE ALSO
--------
linkgit:git-add[1]