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>
switch -glob -- [lindex $s 0] {
A? {set new _O}
M? {set new _M}
+ D_ {set new _D}
D? {set new _?}
?? {continue}
}
{_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)"}