提交 af413de4 编写于 作者: J Jens Lehmann 提交者: Shawn O. Pearce

git-gui: fix diff for partially staged submodule changes

When a submodule commit had already been staged and another commit had
been checked out inside the submodule, the diff always displayed the
submodule commit log messages between the last supermodule commit and
the working tree, totally ignoring the commit in the index.
Signed-off-by: NJens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
上级 b350e460
......@@ -298,7 +298,12 @@ proc start_show_diff {cont_info {add_opts {}}} {
if {[string match {160000 *} [lindex $s 2]]
|| [string match {160000 *} [lindex $s 3]]} {
set cmd {submodule summary -- $current_diff_path}
set is_submodule_diff 1
if {$w eq $ui_index} {
set cmd {submodule summary --cached -- $current_diff_path}
} else {
set cmd {submodule summary --files -- $current_diff_path}
}
}
if {[catch {set fd [eval git_read --nice $cmd]} err]} {
......@@ -343,9 +348,6 @@ proc read_diff {fd cont_info} {
}
set ::current_diff_inheader 0
if {[regexp {^\* } $line]} {
set is_submodule_diff 1
}
# -- Automatically detect if this is a 3 way diff.
#
if {[string match {@@@ *} $line]} {set is_3way_diff 1}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册