summaryrefslogtreecommitdiff
path: root/bulk-checkin.c
diff options
context:
space:
mode:
authorStefan Beller <sbeller@google.com>2017-03-29 15:26:16 -0700
committerJunio C Hamano <gitster@pobox.com>2017-03-29 17:37:21 -0700
commit40069d6e3a195c8c2414ea60ed75b84ae47f88a1 (patch)
tree56220e959c945701a608005f942fd7a40fa006ee /bulk-checkin.c
parentdd6962dd731e6ec679f772d2bb14657f79062580 (diff)
downloadgit-40069d6e3a195c8c2414ea60ed75b84ae47f88a1.tar.gz
submodule.c: correctly handle nested submodules in is_submodule_modifiedsb/submodule-short-status
Suppose I have a superproject 'super', with two submodules 'super/sub' and 'super/sub1'. 'super/sub' itself contains a submodule 'super/sub/subsub'. Now suppose I run, from within 'super': echo hi >sub/subsub/stray-file echo hi >sub1/stray-file Currently we get would see the following output in git-status: git status --short m sub ? sub1 With this patch applied, the untracked file in the nested submodule is displayed as an untracked file on the 'super' level as well. git status --short ? sub ? sub1 This doesn't change the output of 'git status --porcelain=1' for nested submodules, because its output is always ' M' for either untracked files or local modifications no matter the nesting level of the submodule. 'git status --porcelain=2' is affected by this change in a nested submodule, though. Without this patch it would report the direct submodule as modified and having no untracked files. With this patch it would report untracked files. Chalk this up as a bug fix. This bug fix also affects the default output (non-short, non-porcelain) of git-status, which is not tested here. Signed-off-by: Stefan Beller <sbeller@google.com> Reviewed-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'bulk-checkin.c')
0 files changed, 0 insertions, 0 deletions