]> code.delx.au - gnu-emacs/commitdiff
When VC detects a conflict, specify which file
authorKarl Fogel <kfogel@red-bean.com>
Mon, 9 Nov 2015 21:57:23 +0000 (15:57 -0600)
committerKarl Fogel <kfogel@red-bean.com>
Mon, 9 Nov 2015 21:57:29 +0000 (15:57 -0600)
* lisp/vc/vc.el (vc-message-unresolved-conflicts): New function.
* lisp/vc/vc-svn.el (vc-svn-find-file-hook):
* lisp/vc/vc-hg.el (vc-hg-find-file-hook):
* lisp/vc/vc-bzr.el (vc-bzr-find-file-hook):
* lisp/vc/vc-git.el (vc-git-find-file-hook): Use above new function
  to display a standard message that specifies the conflicted file.

Before this change, the message VC used for indicating a conflicted
file was just "There are unresolved conflicts in this file" without
naming the file (and this language was duplicated in several places).
After this change, it's "There are unresolved conflicts in file FOO"
(and this language is now centralized in one function in vc.el).

Justification: It's important for the message to name the conflicted
file because the moment when VC realizes a file is conflicted does not
always come interactively.  For example, some people automatically
find a set of Org Mode files on startup, and may keep those .org files
under version control.  If any of the files are conflicted, the user
just sees some messages fly by, and might later check the "*Messages*"
buffer to find out what files were conflicted.  I'm not saying this
happened to me or anything; it's a purely hypothetical example.

lisp/vc/vc-bzr.el
lisp/vc/vc-git.el
lisp/vc/vc-hg.el
lisp/vc/vc-svn.el
lisp/vc/vc.el

index 9b2711d81469d9d314617f66d8ad2cddefe55a70..caedbd9f6c302c89f7b63aea81f0d9f73ceb8fe3 100644 (file)
@@ -517,7 +517,7 @@ in the branch repository (or whose status not be determined)."
     ;; elisp function to remerge from the .BASE/OTHER/THIS files.
     (smerge-start-session)
     (add-hook 'after-save-hook 'vc-bzr-resolve-when-done nil t)
-    (message "There are unresolved conflicts in this file")))
+    (vc-message-unresolved-conflicts buffer-file-name)))
 
 (defun vc-bzr-version-dirstate (dir)
   "Try to return as a string the bzr revision ID of directory DIR.
index 27898a991a010bb929f225850e29dd7630c595dc..8bf37f09dc2ffa527832694a6ea56eaa2e070523 100644 (file)
@@ -841,7 +841,7 @@ This prompts for a branch to merge from."
     (smerge-start-session)
     (when vc-git-resolve-conflicts
       (add-hook 'after-save-hook 'vc-git-resolve-when-done nil 'local))
-    (message "There are unresolved conflicts in this file")))
+    (vc-message-unresolved-conflicts buffer-file-name)))
 
 ;;; HISTORY FUNCTIONS
 
index f9957c1afff32bdc4329457284347650f2fd5d60..92b0c3169c1cca097687fa53c5ec626413c4cd1d 100644 (file)
@@ -535,7 +535,7 @@ REV is the revision to check out into WORKFILE."
     (vc-file-setprop buffer-file-name 'vc-state 'conflict)
     (smerge-start-session)
     (add-hook 'after-save-hook 'vc-hg-resolve-when-done nil t)
-    (message "There are unresolved conflicts in this file")))
+    (vc-message-unresolved-conflicts buffer-file-name)))
 
 
 ;; Modeled after the similar function in vc-bzr.el
index 4ef63a23db55eacb319e61f5c10a4c8830aaabda..de58fb91c62c44780751590f5213d260314afc02 100644 (file)
@@ -686,7 +686,7 @@ and that it passes `vc-svn-global-switches' to it before FLAGS."
       ;; use conflict markers in which case we don't really know what to do.
       ;; So let's just punt for now.
       nil)
-    (message "There are unresolved conflicts in this file")))
+    (vc-message-unresolved-conflicts buffer-file-name)))
 
 (defun vc-svn-parse-status (&optional filename)
   "Parse output of \"svn status\" command in the current buffer.
index f08e562efe5a3e2a0365d394ffc4f2b6279fb234..28ddeb3d58b857a58407668898b1731025f604b9 100644 (file)
@@ -2067,6 +2067,13 @@ changes from the current branch."
     (smerge-mode 1)
     (message "File contains conflicts.")))
 
+;;;###autoload
+(defun vc-message-unresolved-conflicts (filename)
+  "Display a message indicating unresolved conflicts in FILENAME."
+  ;; This enables all VC backends to give a standard, recognizeable
+  ;; conflict message that indicates which file is conflicted.
+  (message "There are unresolved conflicts in %s" filename))
+
 ;;;###autoload
 (defalias 'vc-resolve-conflicts 'smerge-ediff)