git-gui: Correct file_states when unstaging partly staged entry
authorJens Lehmann <Jens.Lehmann@web.de>
Mon, 7 Dec 2009 20:35:59 +0000 (21:35 +0100)
committerShawn O. Pearce <spearce@spearce.org>
Sat, 23 Jan 2010 22:46:13 +0000 (14:46 -0800)
When unstaging a partly staged file or submodule, the file_states
list was not updated properly (unless unstaged linewise). Its
index_info part did not contain the former head_info as it should
have but kept its old value.

This seems not to have had any bad effects but diminishes the value
of the file_states list for future enhancements.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh
index 211494587e604615987b447add5794d17831701c..e3473a81a6b63bfb7b9cd1907ad384957235bbf4 100755 (executable)
@@ -1613,6 +1613,9 @@ proc merge_state {path new_state {head_info {}} {index_info {}}} {
        } elseif {$s0 ne {_} && [string index $state 0] eq {_}
                && $head_info eq {}} {
                set head_info $index_info
+       } elseif {$s0 eq {_} && [string index $state 0] ne {_}} {
+               set index_info $head_info
+               set head_info {}
        }
 
        set file_states($path) [list $s0$s1 $icon \