Merge 'git-gui/js/intent-to-add'

This merges the current version of the patch that tries to address Git
GUI's problems with intent-to-add files.

This patch will likely be improved substantially before it is merged
into Git GUI's main branch, but we want to have _something_ resembling a
fix already in Git for Windows v2.29.0.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin 2020-10-18 23:44:55 +02:00
commit ab3ddbbcce
2 changed files with 10 additions and 4 deletions

View File

@ -1934,6 +1934,7 @@ set all_icons(U$ui_index) file_merge
set all_icons(T$ui_index) file_statechange
set all_icons(_$ui_workdir) file_plain
set all_icons(A$ui_workdir) file_plain
set all_icons(M$ui_workdir) file_mod
set all_icons(D$ui_workdir) file_question
set all_icons(U$ui_workdir) file_merge
@ -1960,6 +1961,7 @@ foreach i {
{A_ {mc "Staged for commit"}}
{AM {mc "Portions staged for commit"}}
{AD {mc "Staged for commit, missing"}}
{AA {mc "Intended to be added"}}
{_D {mc "Missing"}}
{D_ {mc "Staged for removal"}}

View File

@ -554,7 +554,8 @@ proc apply_or_revert_hunk {x y revert} {
if {$current_diff_side eq $ui_index} {
set failed_msg [mc "Failed to unstage selected hunk."]
lappend apply_cmd --reverse --cached
if {[string index $mi 0] ne {M}} {
set file_state [string index $mi 0]
if {$file_state ne {M} && $file_state ne {A}} {
unlock_index
return
}
@ -567,7 +568,8 @@ proc apply_or_revert_hunk {x y revert} {
lappend apply_cmd --cached
}
if {[string index $mi 1] ne {M}} {
set file_state [string index $mi 1]
if {$file_state ne {M} && $file_state ne {A}} {
unlock_index
return
}
@ -659,7 +661,8 @@ proc apply_or_revert_range_or_line {x y revert} {
set failed_msg [mc "Failed to unstage selected line."]
set to_context {+}
lappend apply_cmd --reverse --cached
if {[string index $mi 0] ne {M}} {
set file_state [string index $mi 0]
if {$file_state ne {M} && $file_state ne {A}} {
unlock_index
return
}
@ -674,7 +677,8 @@ proc apply_or_revert_range_or_line {x y revert} {
lappend apply_cmd --cached
}
if {[string index $mi 1] ne {M}} {
set file_state [string index $mi 1]
if {$file_state ne {M} && $file_state ne {A}} {
unlock_index
return
}