git-gui: Corrected behavior of deleted (but existing in HEAD) files.
authorShawn O. Pearce <spearce@spearce.org>
Sat, 20 Jan 2007 23:50:14 +0000 (18:50 -0500)
committerShawn O. Pearce <spearce@spearce.org>
Sun, 21 Jan 2007 07:54:16 +0000 (02:54 -0500)
Apparently I did not account for the D_ file state. This can occur when
a file has been marked for deletion by deleting it from the index, and
the file also does not exist in the working directory. Typically this
happens when the user deletes the file, hits Rescan, then includes the
missing file in the commit, then hits Rescan again. We don't find the
file in the working directory but its been removed in the index, so the
state becomes D_.

This state should be identical with DD. I'm not entirely sure why DD
occurs sometimes and D_ others, it would seem like D_ is the state that
should be happening instead of DD, leading me to believe there is a quirk
in git-gui's state manipulation code.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui
diff --git a/git-gui b/git-gui
index 95c922b21ee27b320e19efa26b524e35eb867211..04fdb0c1e75c2173b6744860d0f87f579271a6dc 100755 (executable)
--- a/git-gui
+++ b/git-gui
@@ -1429,6 +1429,7 @@ proc write_update_indexinfo {fd pathList totalCnt batch msg after} {
                switch -glob -- [lindex $s 0] {
                A? {set new _O}
                M? {set new _M}
+               D_ {set new _D}
                D? {set new _?}
                ?? {continue}
                }
@@ -1945,6 +1946,7 @@ foreach i {
 
                {_D i question "Missing"}
                {DD i removed  "Removed by commit"}
+               {D_ i removed  "Removed by commit"}
                {DO i removed  "Removed (still exists)"}
                {DM i removed  "Removed (but modified)"}