changeset 112336:7e5855ddf3f2

* admin/bzrmerge.el (bzrmerge-apply): Warn the user when the tree might be in an inconsistent state.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 17 Jan 2011 16:18:00 -0500
parents d3c691ea0839
children 256406bc04fe 9163a061402f
files admin/ChangeLog admin/bzrmerge.el
diffstat 2 files changed, 16 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/admin/ChangeLog	Mon Jan 17 12:17:27 2011 -0800
+++ b/admin/ChangeLog	Mon Jan 17 16:18:00 2011 -0500
@@ -1,3 +1,8 @@
+2011-01-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* bzrmerge.el (bzrmerge-apply): Warn the user when the tree might be in
+	an inconsistent state.
+
 2011-01-17  Paul Eggert  <eggert@cs.ucla.edu>
 
 	Update copyright notes to match recent gnulib-related changes.
--- a/admin/bzrmerge.el	Mon Jan 17 12:17:27 2011 -0800
+++ b/admin/bzrmerge.el	Mon Jan 17 16:18:00 2011 -0500
@@ -218,6 +218,7 @@
     (setq bzrmerge-already-done nil)
     (let ((merge (car missing))
           (skip (cdr missing))
+          (unsafe nil)
           beg end)
       (when (or merge skip)
         (cond
@@ -249,6 +250,7 @@
                           "--force" "-r" (format "%s..%s" beg end) from)
             ;; The merge did not update the metadata, so force the next time
             ;; around to update it (as a "skip").
+            (setq unsafe t)
             (push end skip))
           (pop-to-buffer (current-buffer))
           (sit-for 1)
@@ -271,6 +273,15 @@
             (when conflicted
               (setq bzrmerge-already-done
                     (list (cons merge skip) from missing))
+              (if unsafe
+                  ;; FIXME: Obviously, we'd rather make it right rather
+                  ;; than output such a warning.  But I don't know how to add
+                  ;; the metadata to bzr's since the technique used in
+                  ;; bzrmerge-add-metadata does not work when there
+                  ;; are conflicts.
+                  (display-warning 'bzrmerge "Resolve conflicts manually.
+¡BEWARE!  Important metadata is kept in this Emacs session!
+Do not commit without re-running `M-x bzrmerge' first!")))
               (error "Resolve conflicts manually")))))
         (cons merge skip)))))