git-gui: Don't allow merges in the middle of other things.
authorShawn O. Pearce <spearce@spearce.org>
Fri, 26 Jan 2007 09:11:10 +0000 (04:11 -0500)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 26 Jan 2007 09:11:10 +0000 (04:11 -0500)
If the user is in the middle of a commit they have files which are
modified. These may conflict with any merge that they may want
to perform, which would cause problems if the user wants to abort
a bad merge as we wouldn't have a checkpoint to roll back onto.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
git-gui.sh
index 31ef0e60ac7ca631f4de52efb8a32366106da124..ae883f90bd0a755b7cdec98d847491bc001470b0 100755 (executable)
@@ -2629,6 +2629,9 @@ The rescan will be automatically started now.
 
        foreach path [array names file_states] {
                switch -glob -- [lindex $file_states($path) 0] {
 
        foreach path [array names file_states] {
                switch -glob -- [lindex $file_states($path) 0] {
+               _O {
+                       continue; # and pray it works!
+               }
                U? {
                        error_popup "You are in the middle of a conflicted merge.
 
                U? {
                        error_popup "You are in the middle of a conflicted merge.
 
@@ -2637,6 +2640,18 @@ File [short_path $path] has merge conflicts.
 You must resolve them, add the file, and commit to
 complete the current merge.  Only then can you
 begin another merge.
 You must resolve them, add the file, and commit to
 complete the current merge.  Only then can you
 begin another merge.
+"
+                       unlock_index
+                       return 0
+               }
+               ?? {
+                       error_popup "You are in the middle of a change.
+
+File [short_path $path] is modified.
+
+You should complete the current commit before
+starting a merge.  Doing so will help you abort
+a failed merge, should the need arise.
 "
                        unlock_index
                        return 0
 "
                        unlock_index
                        return 0