summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShawn O. Pearce <spearce@spearce.org>2007-08-23 06:44:13 (GMT)
committerShawn O. Pearce <spearce@spearce.org>2007-08-23 06:44:13 (GMT)
commit9c9f5fa97fe078b59be14a6bcabb851745ddd48c (patch)
treefec2e9c14273135ca42b767048f598fda1fd7dc6
parent9f4119eb7651c7898f385198409be4ca051bc7ef (diff)
downloadgit-9c9f5fa97fe078b59be14a6bcabb851745ddd48c.zip
git-9c9f5fa97fe078b59be14a6bcabb851745ddd48c.tar.gz
git-9c9f5fa97fe078b59be14a6bcabb851745ddd48c.tar.bz2
git-gui: Do not offer to stage three-way diff hunks into the index
git-apply does not accept a patch that was generated as a three-way combined diff format such as we see during merge conflicts. If we get such a diff in our diff viewer and try to send it to git-apply it just errors out and the user is left confused wondering why they cannot stage that hunk. Instead of feeding a known to be unacceptable hunk to git-apply we now just disable the stage/unstage context menu option if the hunk came from a three way diff. The user may still be confused about why they cannot work with a combined diff, but at least they are only confused as to why git-gui is not offering them the action. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
-rwxr-xr-xgit-gui.sh4
1 files changed, 4 insertions, 0 deletions
diff --git a/git-gui.sh b/git-gui.sh
index 559b62b..743b7d4 100755
--- a/git-gui.sh
+++ b/git-gui.sh
@@ -738,6 +738,7 @@ set empty_tree {}
set current_branch {}
set is_detached 0
set current_diff_path {}
+set is_3way_diff 0
set selected_commit_type new
######################################################################
@@ -2444,6 +2445,9 @@ proc popup_diff_menu {ctxm x y X Y} {
}
set l "Stage Hunk For Commit"
}
+ if {$::is_3way_diff} {
+ set s disabled
+ }
$ctxm entryconf $::ui_diff_applyhunk -state $s -label $l
tk_popup $ctxm $X $Y
}