* smerge-mode.el (smerge-auto): New function.
* vc-svn.el (vc-svn-find-file-hook): * vc-arch.el (vc-arch-find-file-hook): * pcvs.el (cvs-revert-if-needed): * vc.el (vc-maybe-resolve-conflicts): Use it instead of vc-mode. (top-level): Add a Todo list.
This commit is contained in:
@@ -1,3 +1,12 @@
|
||||
2008-01-14 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* smerge-mode.el (smerge-auto): New function.
|
||||
* vc-svn.el (vc-svn-find-file-hook):
|
||||
* vc-arch.el (vc-arch-find-file-hook):
|
||||
* pcvs.el (cvs-revert-if-needed):
|
||||
* vc.el (vc-maybe-resolve-conflicts): Use it instead of vc-mode.
|
||||
(top-level): Add a Todo list.
|
||||
|
||||
2008-01-13 Dan Nicolaescu <dann@ics.uci.edu>
|
||||
|
||||
* vc.el (vc-update): Resolve conflicts if necessary instead of
|
||||
|
||||
@@ -2311,7 +2311,7 @@ this file, or a list of arguments to send to the program."
|
||||
;; do want to reset the mode for VC, so we do it explicitly.
|
||||
(vc-find-file-hook)
|
||||
(when (eq (cvs-fileinfo->type fileinfo) 'CONFLICT)
|
||||
(smerge-mode 1))))))))
|
||||
(smerge-auto))))))))
|
||||
|
||||
|
||||
(defun cvs-change-cvsroot (newroot)
|
||||
|
||||
@@ -1021,6 +1021,14 @@ buffer names."
|
||||
(unless smerge-mode
|
||||
(smerge-remove-props (point-min) (point-max))))
|
||||
|
||||
;;;###autoload
|
||||
(defun smerge-auto ()
|
||||
"Turn on `smerge-mode' and move point to first conflict marker.
|
||||
If no conflict maker is found, turn off `smerge-mode'."
|
||||
(smerge-mode 1)
|
||||
(condition-case nil
|
||||
(smerge-next)
|
||||
(error (smerge-auto-leave))))
|
||||
|
||||
(provide 'smerge-mode)
|
||||
|
||||
|
||||
@@ -360,7 +360,7 @@ Return non-nil if FILE is unchanged."
|
||||
(if (not (re-search-forward "^<<<<<<< " nil t))
|
||||
;; The .rej file is obsolete.
|
||||
(condition-case nil (delete-file rej) (error nil))
|
||||
(smerge-mode 1)
|
||||
(smerge-auto)
|
||||
(add-hook 'after-save-hook
|
||||
'vc-arch-delete-rej-if-obsolete nil t)
|
||||
(message "There are unresolved conflicts in this file")))
|
||||
|
||||
@@ -551,7 +551,7 @@ and that it passes `vc-svn-global-switches' to it before FLAGS."
|
||||
(re-search-forward "^<<<<<<< " nil t))
|
||||
;; There are conflict markers.
|
||||
(progn
|
||||
(smerge-mode 1)
|
||||
(smerge-auto)
|
||||
(add-hook 'after-save-hook 'vc-svn-resolve-when-done nil t))
|
||||
;; There are no conflict markers. This is problematic: maybe it means
|
||||
;; the conflict has been resolved and we should immediately call "svn
|
||||
|
||||
29
lisp/vc.el
29
lisp/vc.el
@@ -7,8 +7,6 @@
|
||||
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
|
||||
;; Keywords: tools
|
||||
|
||||
;; $Id$
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software; you can redistribute it and/or modify
|
||||
@@ -522,6 +520,31 @@
|
||||
;; to your backend and which does not map to any of the VC generic
|
||||
;; concepts.
|
||||
|
||||
;;; Todo:
|
||||
|
||||
;; - Make vc-checkin avoid reverting the buffer if has not changed
|
||||
;; after the checkin. Comparing (md5 BUFFER) to (md5 FILE) should
|
||||
;; be enough.
|
||||
;;
|
||||
;; - vc-update/vc-merge should deal with VC systems that don't
|
||||
;; update/merge on a file basis, but on a whole repository basis.
|
||||
;;
|
||||
;; - vc-register should register multiple files at a time. The
|
||||
;; `register' backend function already supports that.
|
||||
;;
|
||||
;; - the *VC-log* buffer needs font-locking.
|
||||
;;
|
||||
;; - make it easier to write logs, maybe C-x 4 a should add to the log
|
||||
;; buffer if there's one instead of the ChangeLog.
|
||||
;;
|
||||
;; - deal with push/pull operations.
|
||||
;;
|
||||
;; - decide if vc-status should replace vc-dired.
|
||||
;;
|
||||
;; - vc-status should be made asynchronous.
|
||||
;;
|
||||
;; - vc-status needs a menu, mouse bindings and some color bling.
|
||||
|
||||
;;; Code:
|
||||
|
||||
(require 'vc-hooks)
|
||||
@@ -2222,7 +2245,7 @@ See Info node `Merging'."
|
||||
(defun vc-maybe-resolve-conflicts (file status &optional name-A name-B)
|
||||
(vc-resynch-buffer file t (not (buffer-modified-p)))
|
||||
(if (zerop status) (message "Merge successful")
|
||||
(smerge-mode 1)
|
||||
(smerge-auto)
|
||||
(message "File contains conflicts.")))
|
||||
|
||||
;;;###autoload
|
||||
|
||||
Reference in New Issue
Block a user