]> asedeno.scripts.mit.edu Git - git.git/blobdiff - git-gui.sh
git-gui: Warn users before making an octopus merge
[git.git] / git-gui.sh
index 0ad2815d1086d3843fbb093cc3d984aee4f63e3f..dd8a408c644ad190cf69aa60f8d62a6a2ed625be 100755 (executable)
@@ -1317,10 +1317,11 @@ A rescan will be automatically started now.
        }
        set i [string first "\n" $msg]
        if {$i >= 0} {
-               append reflogm {: } [string range $msg 0 [expr {$i - 1}]]
+               set subject [string range $msg 0 [expr {$i - 1}]]
        } else {
-               append reflogm {: } $msg
+               set subject $msg
        }
+       append reflogm {: } $subject
        set cmd [list git update-ref -m $reflogm HEAD $cmt_id $curHEAD]
        if {[catch {eval exec $cmd} err]} {
                error_popup "update-ref failed:\n\n$err"
@@ -1414,7 +1415,7 @@ A rescan will be automatically started now.
        unlock_index
        reshow_diff
        set ui_status_value \
-               "Changes committed as [string range $cmt_id 0 7]."
+               "Created commit [string range $cmt_id 0 7]: $subject"
 }
 
 ######################################################################
@@ -2885,6 +2886,19 @@ proc start_local_merge_action {w} {
                set unit branch
        } elseif {$revcnt <= 15} {
                set unit branches
+
+               if {[tk_dialog \
+               $w.confirm_octopus \
+               [wm title $w] \
+               "Use octopus merge strategy?
+
+You are merging $revcnt branches at once.  This requires using the octopus merge driver, which may not succeed if there are file-level conflicts.
+" \
+               question \
+               0 \
+               {Cancel} \
+               {Use octopus} \
+               ] != 1} return
        } else {
                tk_messageBox \
                        -icon error \