aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Gavrilov <angavrilov@gmail.com>2008-09-08 20:37:11 +0400
committerShawn O. Pearce <sop@google.com>2008-09-12 08:09:09 -0700
commit2fe5b2ee42897a3acc78e5ddaace3775eb2713ca (patch)
tree7471cf4b45e2e6d1b017ce0cec28a57a224337ee
parenta9786bb42ff4fa4b8031ab69215a66cf329d8324 (diff)
downloadgit-2fe5b2ee42897a3acc78e5ddaace3775eb2713ca.tar.gz
git-2fe5b2ee42897a3acc78e5ddaace3775eb2713ca.tar.xz
git-gui: Restore ability to Stage Working Copy for conflicts.
Tools like rerere leave files marked as conflicts in the index, while actually resolving them in the working copy. Also, some people like to use an external editor to resolve conflicts. This patch restores functionality previously removed in commit 617ceee653 by adding a new context menu item. It still ensures that the user does not stage conflicting files accidentally by clicking on the icon instead of the name. Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com> Tested-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Shawn O. Pearce <sop@google.com>
-rwxr-xr-xgit-gui.sh5
-rw-r--r--lib/mergetool.tcl6
2 files changed, 11 insertions, 0 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 9fbee24c2..1044ab9a7 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -2902,6 +2902,11 @@ $ctxmmg add command \
-command {merge_resolve_one 1}
lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state]
$ctxmmg add separator
+$ctxmmg add command \
+ -label [mc "Stage Working Copy"] \
+ -command {merge_resolve_one 0}
+lappend diff_actions [list $ctxmmg entryconf [$ctxmmg index last] -state]
+$ctxmmg add separator
create_common_diff_popup $ctxmmg
proc popup_diff_menu {ctxm ctxmmg x y X Y} {
diff --git a/lib/mergetool.tcl b/lib/mergetool.tcl
index 79c58bc7b..dd2315b85 100644
--- a/lib/mergetool.tcl
+++ b/lib/mergetool.tcl
@@ -5,6 +5,12 @@ proc merge_resolve_one {stage} {
global current_diff_path
switch -- $stage {
+ 0 { # Stage without confirmation, to minimize
+ # disruption of the rerere workflow
+ merge_add_resolution $current_diff_path
+ return
+ }
+
1 { set target [mc "the base version"] }
2 { set target [mc "this branch"] }
3 { set target [mc "the other branch"] }