git-gui: Support conflict states _U & UT.
authorAlexander Gavrilov <angavrilov@gmail.com>
Sat, 30 Aug 2008 21:00:49 +0000 (01:00 +0400)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 5 Sep 2008 04:28:55 +0000 (21:28 -0700)
Support _U (local deleted, remote modified) and
UT (file type changed in conflict) modes.

Note that 'file type changed' does not refer to
changes in the executable bit, instead it denotes
replacing a file with a link, or vice versa.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh
lib/commit.tcl
lib/diff.tcl
lib/index.tcl

index 061fac768d808586554cabcdffee95fd0d1150c2..90338785a06e7d978a35540af56a7d9e0d4d2ae4 100755 (executable)
@@ -1669,10 +1669,12 @@ foreach i {
                {D_ {mc "Staged for removal"}}
                {DO {mc "Staged for removal, still present"}}
 
+               {_U {mc "Requires merge resolution"}}
                {U_ {mc "Requires merge resolution"}}
                {UU {mc "Requires merge resolution"}}
                {UM {mc "Requires merge resolution"}}
                {UD {mc "Requires merge resolution"}}
+               {UT {mc "Requires merge resolution"}}
        } {
        set text [eval [lindex $i 1]]
        if {$max_status_desc < [string length $text]} {
@@ -1843,7 +1845,7 @@ proc toggle_or_diff {w x y} {
        # Do not stage files with conflicts
        if {[info exists file_states($path)]} {
                set state [lindex $file_states($path) 0]
-               if {[string index $state 0] eq {U}} {
+               if {[string first {U} $state] >= 0} {
                        set col 1
                }
        }
@@ -2814,7 +2816,7 @@ proc popup_diff_menu {ctxm ctxmmg x y X Y} {
        } else {
                set state {__}
        }
-       if {[string index $state 0] eq {U}} {
+       if {[string first {U} $state] >= 0} {
                tk_popup $ctxmmg $X $Y
        } else {
                if {$::ui_index eq $::current_diff_side} {
index f4ab70784c9beb3b155bc27e41a9f7d483ec6708..2977315624fc5deeecff275d8dc8b3f2e3210a70 100644 (file)
@@ -151,6 +151,7 @@ The rescan will be automatically started now.
                D? -
                T_ -
                M? {set files_ready 1}
+               _U -
                U? {
                        error_popup [mc "Unmerged files cannot be committed.
 
index 4a7138be9c0a860d7b4a9820a6d796fa3cabc700..14a479ffdf09ecf0f3938e3a5f0de1e52fc903f1 100644 (file)
@@ -166,7 +166,7 @@ proc show_diff {path w {lno {}} {scroll_pos {}}} {
                lappend cmd diff-index
                lappend cmd --cached
        } elseif {$w eq $ui_workdir} {
-               if {[string index $m 0] eq {U}} {
+               if {[string first {U} $m] >= 0} {
                        lappend cmd diff
                } else {
                        lappend cmd diff-files
index d011406462b6f2ad3c83aba90612dd1d6628f385..b045219a1cca6bf46218bf211c0c88b8d699e144 100644 (file)
@@ -164,6 +164,7 @@ proc write_update_index {fd pathList totalCnt batch after} {
                _O -
                AM {set new A_}
                _T {set new T_}
+               _U -
                U? {
                        if {[file exists $path]} {
                                set new M_