From 6b0f3f46293e2f718054e9947e209c0344721a69 Mon Sep 17 00:00:00 2001
From: "Shawn O. Pearce" <spearce@spearce.org>
Date: Sat, 20 Jan 2007 18:50:14 -0500
Subject: [PATCH] git-gui: Corrected behavior of deleted (but existing in HEAD)
 files.

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 | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/git-gui b/git-gui
index 95c922b21e..04fdb0c1e7 100755
--- 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)"}
 
-- 
GitLab