summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 0d5709c)
raw | patch | inline | side by side (parent: 0d5709c)
author | Shawn O. Pearce <spearce@spearce.org> | |
Sun, 19 Nov 2006 06:20:42 +0000 (01:20 -0500) | ||
committer | Shawn O. Pearce <spearce@spearce.org> | |
Sun, 19 Nov 2006 06:20:42 +0000 (01:20 -0500) |
New files also lack index data from diff-files therefore we cannot use
their diff-files index data when we update-index. Instead we can use
the fact that Git has them hardcoded as "0 0{40}" and do the same thing
ourselves. This way you can toggle an untracked file into added status
and back out to untracked.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
their diff-files index data when we update-index. Instead we can use
the fact that Git has them hardcoded as "0 0{40}" and do the same thing
ourselves. This way you can toggle an untracked file into added status
and back out to untracked.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui | patch | blob | history |
index 3f7e40835656bac8ac6eeab1af43d4ca74fdeec5..75d1640c0fbd2c74c0b7a523f37658ed313531ec 100755 (executable)
--- a/git-gui
+++ b/git-gui
}
set next_icon_id 0
+set null_sha1 [string repeat 0 40]
proc merge_state {path new_state {head_info {}} {index_info {}}} {
- global file_states next_icon_id
+ global file_states next_icon_id null_sha1
set s0 [string index $new_state 0]
set s1 [string index $new_state 1]
if {$s1 eq {?}} {set s1 [string index $state 1]} \
elseif {$s1 eq {_}} {set s1 _}
- if {$s0 ne {_} && [string index $state 0] eq {_}
+ if {$s0 eq {A} && $s1 eq {_} && $head_info eq {}} {
+ set head_info [list 0 $null_sha1]
+ } elseif {$s0 ne {_} && [string index $state 0] eq {_}
&& $head_info eq {}} {
set head_info $index_info
}