Mercurial > emacs
diff lisp/vc-bzr.el @ 108009:17d3324f96dd
Make the log-edit comments use RFC822 format throughout.
* vc.el (vc-checkin, vc-modify-change-comment):
Adjust to new vc-start/finish-logentry.
(vc-find-conflicted-file): New command.
(vc-transfer-file): Adjust to new vc-checkin.
(vc-next-action): Improve scoping.
* vc-hg.el (vc-hg-log-edit-mode): Remove.
(vc-hg-checkin): Remove extra arg. Use log-edit-extract-headers.
* vc-git.el (vc-git-log-edit-mode): Remove.
(vc-git-checkin): Remove extra arg. Use log-edit-extract-headers.
(vc-git-commits-coding-system): Rename from git-commits-coding-system.
* vc-dispatcher.el (vc-log-edit): Shorten names for log-edit-show-files.
(vc-start-logentry): Remove argument `extra'.
(vc-finish-logentry): Remove extra args.
* vc-bzr.el (vc-bzr-log-edit-mode): Remove.
(vc-bzr-checkin): Remove extra arg. Use log-edit-extract-headers.
(vc-bzr-conflicted-files): New function.
* log-edit.el (log-edit-extra-flags)
(log-edit-before-checkin-process): Remove.
(log-edit-summary, log-edit-header, log-edit-unknown-header): New faces.
(log-edit-headers-alist): New var.
(log-edit-header-contents-regexp): New const.
(log-edit-match-to-eoh): New function.
(log-edit-font-lock-keywords): Use them.
(log-edit): Insert a "Summary:" header as default.
(log-edit-mode): Mark font-lock rules as case-insensitive.
(log-edit-done): Cleanup headers.
(log-view-process-buffer): Remove.
(log-edit-extract-headers): New function to replace it.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Tue, 20 Apr 2010 22:05:24 -0400 |
parents | bb75dfb8839a |
children | 4ae75c6f19d6 |
line wrap: on
line diff
--- a/lisp/vc-bzr.el Wed Apr 21 02:49:40 2010 +0200 +++ b/lisp/vc-bzr.el Tue Apr 20 22:05:24 2010 -0400 @@ -451,11 +451,16 @@ "Unregister FILE from bzr." (vc-bzr-command "remove" nil 0 file "--keep")) -(defun vc-bzr-checkin (files rev comment &optional extra-args) +(declare-function log-edit-extract-headers "log-edit" (headers string)) + +(defun vc-bzr-checkin (files rev comment) "Check FILE in to bzr with log message COMMENT. REV non-nil gets an error." (if rev (error "Can't check in a specific revision with bzr")) - (apply 'vc-bzr-command "commit" nil 0 files (append (list "-m" comment) extra-args))) + (apply 'vc-bzr-command "commit" nil 'async + files (cons "-m" (log-edit-extract-headers '(("Author" . "--author") + ("Fixes" . "--fixes")) + comment)))) (defun vc-bzr-find-revision (file rev buffer) "Fetch revision REV of file FILE and put it into BUFFER." @@ -552,23 +557,6 @@ (goto-char (point-min))) found))) -(declare-function log-edit-mode "log-edit" ()) -(defvar log-edit-extra-flags) -(defvar log-edit-before-checkin-process) - -(define-derived-mode vc-bzr-log-edit-mode log-edit-mode "Bzr-Log-Edit" - "Mode for editing Bzr commit logs. -If a line like: -Author: NAME -is present in the log, it is removed, and ---author NAME -is passed to the bzr commit command. Similarly with Fixes: and --fixes." - (set (make-local-variable 'log-edit-extra-flags) nil) - (set (make-local-variable 'log-edit-before-checkin-process) - '(("^\\(Author\\|Fixes\\):[ \t]+\\(.*\\)[ \t]*$" . - (list (format "--%s" (downcase (match-string 1))) - (match-string 2)))))) - (defun vc-bzr-diff (files &optional rev1 rev2 buffer) "VC bzr backend for diff." ;; `bzr diff' exits with code 1 if diff is non-empty. @@ -983,6 +971,19 @@ (setq loglines (buffer-substring-no-properties start (point-max)))))) vc-bzr-revisions)) +(defun vc-bzr-conflicted-files (dir) + (let ((default-directory (vc-bzr-root dir)) + (files ())) + (with-temp-buffer + (vc-bzr-command "status" t 0 default-directory) + (goto-char (point-min)) + (when (re-search-forward "^conflicts:\n" nil t) + (while (looking-at " \\(?:Text conflict in \\(.*\\)\\|.*\\)\n") + (if (match-end 1) + (push (expand-file-name (match-string 1)) files)) + (goto-char (match-end 0))))) + files)) + ;;; Revision completion (eval-and-compile