Skip to content

Commit

Permalink
Updates for dirty submodules in release notes and user manual
Browse files Browse the repository at this point in the history
In the release notes "git status" was not mentioned, also shortly explain
the "-dirty" output generated by diff.

Added a paragraph to the "Pitfalls with submodules" section in
user-manual.txt describing new and old behavior of "git status" and "git
diff" for dirty submodules.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jens Lehmann authored and Junio C Hamano committed Feb 1, 2010
1 parent c0da5db commit 8d9e7d5
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
12 changes: 7 additions & 5 deletions Documentation/RelNotes-1.7.0.txt
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,13 @@ release, unless otherwise noted.
from non-root dir, 2010-01-26) may be merged to older maintenance
branches.

* When "git diff" is asked to compare the work tree with something,
it used to consider that a checked-out submodule with uncommitted
changes is not modified; this could cause people to forget committing
these changes in the submodule before committing in the superproject.
It now considers such a change as a modification.
* When using "git status" or asking "git diff" to compare the work tree
with something, they used to consider that a checked-out submodule with
uncommitted changes is not modified; this could cause people to forget
committing these changes in the submodule before committing in the
superproject. They now consider such a change as a modification and
"git diff" will append a "-dirty" to the work tree side when generating
patch output or when used with the --submodule option.

--
exec >/var/tmp/1
Expand Down
20 changes: 20 additions & 0 deletions Documentation/user-manual.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3640,6 +3640,26 @@ Did you forget to 'git add'?
Unable to checkout '261dfac35cb99d380eb966e102c1197139f7fa24' in submodule path 'a'
-------------------------------------------------

In older git versions it could be easily forgotten to commit new or modified
files in a submodule, which silently leads to similar problems as not pushing
the submodule changes. Starting with git 1.7.0 both "git status" and "git diff"
in the superproject show submodules as modified when they contain new or
modified files to protect against accidentally committing such a state. "git
diff" will also add a "-dirty" to the work tree side when generating patch
output or used with the --submodule option:

-------------------------------------------------
$ git diff
diff --git a/sub b/sub
--- a/sub
+++ b/sub
@@ -1 +1 @@
-Subproject commit 3f356705649b5d566d97ff843cf193359229a453
+Subproject commit 3f356705649b5d566d97ff843cf193359229a453-dirty
$ git diff --submodule
Submodule sub 3f35670..3f35670-dirty:
-------------------------------------------------

You also should not rewind branches in a submodule beyond commits that were
ever recorded in any superproject.

Expand Down

0 comments on commit 8d9e7d5

Please sign in to comment.