зеркало из https://github.com/microsoft/git.git
git-gui: Correct toggling of added/untracked status for new files.
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>
This commit is contained in:
Родитель
0d5709cf88
Коммит
51cc47feda
7
git-gui
7
git-gui
|
@ -1174,9 +1174,10 @@ proc short_path {path} {
|
|||
}
|
||||
|
||||
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]
|
||||
|
@ -1197,7 +1198,9 @@ proc merge_state {path new_state {head_info {}} {index_info {}}} {
|
|||
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
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче