git-gui: Teach git gui about file type changes
Signed-off-by: Gustaf Hendeby <hendeby@isy.liu.se> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
parent
f2816b3d34
commit
e681cb7d6a
18
git-gui.sh
18
git-gui.sh
@ -1619,6 +1619,15 @@ static unsigned char file_merge_bits[] = {
|
||||
0xfa, 0x17, 0x02, 0x10, 0xfe, 0x1f};
|
||||
} -maskdata $filemask
|
||||
|
||||
image create bitmap file_statechange -background white -foreground green -data {
|
||||
#define file_merge_width 14
|
||||
#define file_merge_height 15
|
||||
static unsigned char file_statechange_bits[] = {
|
||||
0xfe, 0x01, 0x02, 0x03, 0x02, 0x05, 0x02, 0x09, 0x02, 0x1f, 0x62, 0x10,
|
||||
0x62, 0x10, 0xba, 0x11, 0xba, 0x11, 0x62, 0x10, 0x62, 0x10, 0x02, 0x10,
|
||||
0x02, 0x10, 0x02, 0x10, 0xfe, 0x1f};
|
||||
} -maskdata $filemask
|
||||
|
||||
set ui_index .vpane.files.index.list
|
||||
set ui_workdir .vpane.files.workdir.list
|
||||
|
||||
@ -1627,12 +1636,14 @@ set all_icons(A$ui_index) file_fulltick
|
||||
set all_icons(M$ui_index) file_fulltick
|
||||
set all_icons(D$ui_index) file_removed
|
||||
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(M$ui_workdir) file_mod
|
||||
set all_icons(D$ui_workdir) file_question
|
||||
set all_icons(U$ui_workdir) file_merge
|
||||
set all_icons(O$ui_workdir) file_plain
|
||||
set all_icons(T$ui_workdir) file_statechange
|
||||
|
||||
set max_status_desc 0
|
||||
foreach i {
|
||||
@ -1643,6 +1654,9 @@ foreach i {
|
||||
{MM {mc "Portions staged for commit"}}
|
||||
{MD {mc "Staged for commit, missing"}}
|
||||
|
||||
{_T {mc "File type changed, not staged"}}
|
||||
{T_ {mc "File type changed, staged"}}
|
||||
|
||||
{_O {mc "Untracked, not staged"}}
|
||||
{A_ {mc "Staged for commit"}}
|
||||
{AM {mc "Portions staged for commit"}}
|
||||
@ -2757,7 +2771,9 @@ proc popup_diff_menu {ctxm x y X Y} {
|
||||
if {$::is_3way_diff
|
||||
|| $current_diff_path eq {}
|
||||
|| ![info exists file_states($current_diff_path)]
|
||||
|| {_O} eq [lindex $file_states($current_diff_path) 0]} {
|
||||
|| {_O} eq [lindex $file_states($current_diff_path) 0]
|
||||
|| {_T} eq [lindex $file_states($current_diff_path) 0]
|
||||
|| {T_} eq [lindex $file_states($current_diff_path) 0]} {
|
||||
set s disabled
|
||||
} else {
|
||||
set s normal
|
||||
|
@ -149,6 +149,7 @@ The rescan will be automatically started now.
|
||||
_? {continue}
|
||||
A? -
|
||||
D? -
|
||||
T_ -
|
||||
M? {set files_ready 1}
|
||||
U? {
|
||||
error_popup [mc "Unmerged files cannot be committed.
|
||||
@ -428,6 +429,7 @@ A rescan will be automatically started now.
|
||||
__ -
|
||||
A_ -
|
||||
M_ -
|
||||
T_ -
|
||||
D_ {
|
||||
unset file_states($path)
|
||||
catch {unset selected_paths($path)}
|
||||
|
@ -99,6 +99,7 @@ proc write_update_indexinfo {fd pathList totalCnt batch after} {
|
||||
switch -glob -- [lindex $s 0] {
|
||||
A? {set new _O}
|
||||
M? {set new _M}
|
||||
T_ {set new _T}
|
||||
D_ {set new _D}
|
||||
D? {set new _?}
|
||||
?? {continue}
|
||||
@ -162,6 +163,7 @@ proc write_update_index {fd pathList totalCnt batch after} {
|
||||
?D {set new D_}
|
||||
_O -
|
||||
AM {set new A_}
|
||||
_T {set new T_}
|
||||
U? {
|
||||
if {[file exists $path]} {
|
||||
set new M_
|
||||
@ -231,6 +233,7 @@ proc write_checkout_index {fd pathList totalCnt batch after} {
|
||||
switch -glob -- [lindex $file_states($path) 0] {
|
||||
U? {continue}
|
||||
?M -
|
||||
?T -
|
||||
?D {
|
||||
puts -nonewline $fd "[encoding convertto $path]\0"
|
||||
display_file $path ?_
|
||||
@ -252,6 +255,7 @@ proc unstage_helper {txt paths} {
|
||||
switch -glob -- [lindex $file_states($path) 0] {
|
||||
A? -
|
||||
M? -
|
||||
T_ -
|
||||
D? {
|
||||
lappend pathList $path
|
||||
if {$path eq $current_diff_path} {
|
||||
@ -296,6 +300,7 @@ proc add_helper {txt paths} {
|
||||
_O -
|
||||
?M -
|
||||
?D -
|
||||
?T -
|
||||
U? {
|
||||
lappend pathList $path
|
||||
if {$path eq $current_diff_path} {
|
||||
@ -336,6 +341,7 @@ proc do_add_all {} {
|
||||
switch -glob -- [lindex $file_states($path) 0] {
|
||||
U? {continue}
|
||||
?M -
|
||||
?T -
|
||||
?D {lappend paths $path}
|
||||
}
|
||||
}
|
||||
@ -353,6 +359,7 @@ proc revert_helper {txt paths} {
|
||||
switch -glob -- [lindex $file_states($path) 0] {
|
||||
U? {continue}
|
||||
?M -
|
||||
?T -
|
||||
?D {
|
||||
lappend pathList $path
|
||||
if {$path eq $current_diff_path} {
|
||||
|
Loading…
Reference in New Issue
Block a user