elisp-vcs/dvc/lisp/bzr-dvc.el
2009-10-10 08:02:43 +02:00

136 lines
4.1 KiB
EmacsLisp

;;; bzr-dvc.el --- Support for Bazaar 2 in DVC's unification layer
;; Copyright (C) 2005-2008 by all contributors
;; Author: Matthieu Moy <Matthieu.Moy@imag.fr>
;; Contributions from:
;; Stefan Reichoer, <stefan@xsteve.at>
;; Keywords: tools
;; This file is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.
;; This file is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to
;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;;
;;; Code:
(eval-and-compile (require 'dvc-unified))
(require 'bzr)
;;;###autoload
(dvc-register-dvc 'bzr "Bazaar 2")
;;;###autoload
(defalias 'bzr-dvc-init 'bzr-init)
;;;###autoload
(defalias 'bzr-dvc-inventory 'bzr-inventory)
;;;###autoload
(defalias 'bzr-dvc-pull 'bzr-pull)
;;;###autoload
(defalias 'bzr-dvc-push 'bzr-push)
;;;###autoload
(defalias 'bzr-dvc-merge 'bzr-merge)
;;;###autoload
(defalias 'bzr-dvc-submit-patch 'bzr-submit-patch)
;;;###autoload
(defalias 'bzr-dvc-add 'bzr-add)
;;;###autoload
(defalias 'bzr-dvc-log-edit-done 'bzr-log-edit-done)
;;;###autoload
(defun bzr-dvc-search-file-in-diff (file)
(re-search-forward (concat "^=== .* '" file "'$")))
;;;###autoload
(defun bzr-dvc-name-construct (back-end-revision)
(nth 1 back-end-revision))
;;;###autoload
(defvar bzr-log-edit-file-name ".tmp-bzr-log-edit.txt"
"The filename, used to store the log message before commiting.
Usually that file is placed in the tree-root of the working tree.")
(add-to-list 'auto-mode-alist `(,(concat "^" (regexp-quote bzr-log-edit-file-name)
"$") . bzr-log-edit-mode))
;;;###autoload
(defalias 'bzr-dvc-command-version 'bzr-command-version)
(defalias 'bzr-dvc-revision-nth-ancestor 'bzr-revision-nth-ancestor)
(defalias 'bzr-dvc-log 'bzr-log)
;;;###autoload
(defalias 'bzr-dvc-save-diff 'bzr-save-diff)
(defalias 'bzr-dvc-changelog 'bzr-changelog)
(defun bzr-dvc-update ()
(interactive)
(bzr-update nil))
(defun bzr-dvc-edit-ignore-files ()
(interactive)
(find-file-other-window (concat (bzr-tree-root) ".bzrignore")))
(defun bzr-dvc-ignore-files (file-list)
(interactive (list (dvc-current-file-list)))
(when (y-or-n-p (format "Ignore %S for %s? " file-list (bzr-tree-root)))
(dolist (f-name file-list)
(bzr-ignore (format "./%s" f-name)))))
(defun bzr-dvc-backend-ignore-file-extensions (extension-list)
(dolist (ext-name extension-list)
(bzr-ignore (format "*.%s" ext-name))))
(autoload 'bzr-revlog-get-revision "bzr-revlog")
(defalias 'bzr-dvc-revlog-get-revision
'bzr-revlog-get-revision)
(defalias 'bzr-dvc-delta 'bzr-delta)
(defalias 'bzr-dvc-send-commit-notification 'bzr-send-commit-notification)
(defalias 'bzr-dvc-prepare-environment 'bzr-prepare-environment)
(defalias 'bzr-dvc-file-has-conflict-p 'bzr-file-has-conflict-p)
(defalias 'bzr-dvc-resolved 'bzr-resolved)
(defalias 'bzr-dvc-annotate-time 'bzr-annotate-time)
(defalias 'bzr-dvc-clone 'bzr-checkout)
(defalias 'bzr-dvc-export-via-email 'bzr-export-via-email)
(defun bzr-dvc-diff-against-url (path)
(let ((buffer (dvc-prepare-changes-buffer
nil
path
'diff default-directory 'bzr)))
(dvc-switch-to-buffer-maybe buffer)
(message "Running bzr merge --preview %s" path)
(dvc-run-dvc-async 'bzr (list "merge" "--preview" "--force" path)
:finished
(dvc-capturing-lambda (output error status arguments)
(dvc-show-changes-buffer output 'bzr-parse-diff
(capture buffer))))))
(provide 'bzr-dvc)
;;; bzr-dvc.el ends here