aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBert Wesarg <bert.wesarg@googlemail.com>2010-12-09 21:46:23 +0100
committerPat Thoyts <patthoyts@users.sourceforge.net>2011-01-28 00:16:50 +0000
commit7587f4d32f7479a9fa9ae1767708597702a0be5f (patch)
tree9750628d932d9799be3709db01d7a1cbe2dafe6e
parent4a065c8a6f0415da6d778dae83ff88e5385a2f0f (diff)
downloadgit-7587f4d32f7479a9fa9ae1767708597702a0be5f.tar.gz
git-7587f4d32f7479a9fa9ae1767708597702a0be5f.tar.xz
git-gui: learn more type change states
Support the following states with type change in git-gui: AT, MT, TD, TM Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
-rwxr-xr-xgit-gui.sh8
-rw-r--r--lib/commit.tcl6
-rw-r--r--lib/index.tcl10
3 files changed, 19 insertions, 5 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 8d576b398..886719a8c 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -1997,7 +1997,11 @@ foreach i {
{MD {mc "Staged for commit, missing"}}
{_T {mc "File type changed, not staged"}}
+ {MT {mc "File type changed, old type staged for commit"}}
+ {AT {mc "File type changed, old type staged for commit"}}
{T_ {mc "File type changed, staged"}}
+ {TM {mc "File type change staged, modification not staged"}}
+ {TD {mc "File type change staged, file missing"}}
{_O {mc "Untracked, not staged"}}
{A_ {mc "Staged for commit"}}
@@ -3539,8 +3543,8 @@ proc popup_diff_menu {ctxm ctxmmg ctxmsm x y X Y} {
|| $current_diff_path eq {}
|| {__} eq $state
|| {_O} eq $state
- || {_T} eq $state
- || {T_} eq $state
+ || [string match {?T} $state]
+ || [string match {T?} $state]
|| [has_textconv $current_diff_path]} {
set s disabled
} else {
diff --git a/lib/commit.tcl b/lib/commit.tcl
index 83b3d9d21..5ce46877b 100644
--- a/lib/commit.tcl
+++ b/lib/commit.tcl
@@ -166,7 +166,7 @@ The rescan will be automatically started now.
_? {continue}
A? -
D? -
- T_ -
+ T? -
M? {set files_ready 1}
_U -
U? {
@@ -453,7 +453,11 @@ A rescan will be automatically started now.
}
AM -
AD -
+ AT -
+ TM -
+ TD -
MM -
+ MT -
MD {
set file_states($path) [list \
_[string index $m 1] \
diff --git a/lib/index.tcl b/lib/index.tcl
index e9db0c498..5d7bbf23e 100644
--- a/lib/index.tcl
+++ b/lib/index.tcl
@@ -103,8 +103,11 @@ proc write_update_indexinfo {fd pathList totalCnt batch after} {
set s $file_states($path)
switch -glob -- [lindex $s 0] {
A? {set new _O}
- M? {set new _M}
+ MT -
+ TM -
T_ {set new _T}
+ M? {set new _M}
+ TD -
D_ {set new _D}
D? {set new _?}
?? {continue}
@@ -167,7 +170,10 @@ proc write_update_index {fd pathList totalCnt batch after} {
AD {set new __}
?D {set new D_}
_O -
+ AT -
AM {set new A_}
+ TM -
+ MT -
_T {set new T_}
_U -
U? {
@@ -261,7 +267,7 @@ proc unstage_helper {txt paths} {
switch -glob -- [lindex $file_states($path) 0] {
A? -
M? -
- T_ -
+ T? -
D? {
lappend pathList $path
if {$path eq $current_diff_path} {