;;; dvc-init.el --- configuration file for DVC

;; This file is part of Michael Olson's Emacs settings.

;; The code in this file may be used, distributed, and modified
;; without restriction.

;; I use initsplit.el to separate customize settings on a per-project
;; basis.

;;; Add to load paths
;;(add-to-list 'load-path "/home/mwolson/proj/emacs/dvc/mwolson/lisp")
;;(add-to-list 'load-path "/home/mwolson/proj/emacs/dvc/sr/++build/lisp/contrib")

;;(load-file "/usr/local/share/emacs/site-lisp/dvc/dvc-load.el")
;;(load-file "/home/mwolson/proj/emacs/dvc/sr/++build/lisp/dvc-autoloads.el")
(if (featurep 'xemacs)
    (unless (featurep 'dvc-core)
      (load "/home/mwolson/proj/emacs/dvc/mwolson.xemacs/dvc-load.el"))
  (load "/home/mwolson/proj/emacs/dvc/git-dvc/dvc-load.el"))

;;; Initialize
;(require 'tla)
;(require 'bzr)
;(require 'bzr-submit)
;(require 'xdarcs)
;(require 'xhg)
(require 'dvc-gnus)
;(require 'tla-browse)

(dvc-insinuate-gnus)

;; (defcustom git-log-max-count -1
;;   "Number of logs to print.  Specify negative value for all logs.
;; Limiting this to low number will shorten time for log retrieval
;; for large projects like Linux kernel on slow machines (Linux
;; kernel has >50000 logs)."
;;   :type 'integer
;;   :group 'dvc-xgit)

;; (defcustom git-log-pretty ""
;;   "Specify '--pretty=' option to pass to git-log.
;; You can choose from 'oneline', 'short', 'medium', 'full',
;; 'fuller', 'email' or 'raw' or other options supported in your
;; version of git.
;; If string is empty, will not pass '--pretty=' option."
;;   :type 'string
;;   :group 'dvc-xgit)

;; (defun* git-log (dir &key cnt log-regexp diff-match rev file)
;;   "Run git log for DIR.
;; DIR is a directory controlled by Git/Cogito.
;; CNT is max number of log to print.  If not specified, uses git-log-max-count.
;; LOG-REGEXP is regexp to filter logs by matching commit logs.
;; DIFF-MATCH is string to filter logs by matching commit diffs.
;; REV is revision to show.
;; FILE is filename in repostory to filter logs by matching filename.
;; "
;;   (interactive (list default-directory))
;;   (let* ((buffer (dvc-get-buffer-create 'xgit 'log dir))
;;          (repo (xgit-git-dir dir))
;;          (cmd "log")
;;          (count (format "--max-count=%s" (if cnt cnt git-log-max-count)))
;;          (grep (if log-regexp (format "--grep=%s" log-regexp)))
;;          (diff (if diff-match (format "-S%s" diff-match)))
;;          (pretty (if (not (string= "" git-log-pretty))
;;                      (format "--pretty=%s" git-log-pretty)))
;;          (fname (if file (file-relative-name file (xgit-tree-root dir))))
;;          (args (list repo cmd pretty count grep diff rev "--" fname)))
;;     (dvc-switch-to-buffer-maybe buffer)
;;     (let ((default-directory dir))
;;       (dvc-run-dvc-sync 'xgit args
;;                         :finished
;;                         (dvc-capturing-lambda (output error status arguments)
;;                           (progn
;;                             (with-current-buffer (capture buffer)
;;                               (let ((inhibit-read-only t))
;;                                 (erase-buffer)
;;                                 (insert-buffer-substring output)
;;                                 (goto-char (point-min))
;;                                 (insert (format "git %s\n\n"
;;                                                 (mapconcat #'identity
;;                                                            (delq nil args)
;;                                                            " ")))
;;                                 (xgit-log-mode)))))))))

;; (defalias 'xgit-log-mode 'dvc-log-buffer-mode)
;; (setq xgit-log-max-count -1)

(defun my-dvc-kill-procs ()
  "Rid my Emacs session of annoying hung DVC processes."
  (interactive)
  (dolist (proc (process-list))
    (when (string-match "tla" (process-name proc))
      (delete-process proc))))

;; Remember to customize `mail-user-agent'!

;;; Functions

;; (defun tla-changes-remove-marked-files ()
;;   "Remove the currently-marked files in a *tla-changes* buffer."
;;   (interactive)
;;   (dolist (file tla-buffer-marked-file-list)
;;     (shell-command-to-string (concat "rm -fr " file))))

;;; Customizations

(custom-set-variables
 '(bzr-mail-notification-destination (quote (("mwolson" ("[commit] " "dvc-dev@gna.org" "http://mwolson.org/bzr/dvc/")))))
 '(dvc-config-directory "~/.emacs.d/.dvc/")
 '(dvc-confirm-file-op-method (quote y-or-n-p))
 '(dvc-fileinfo-printer-interface (quote terse))
 '(tla-apply-patch-mapping (quote ((("mwolson@gnu.org--2006" "muse" nil nil nil) "~/proj/emacs/muse/mwolson") (("mwolson@gnu.org--2006" "planner" nil nil nil) "~/proj/emacs/planner/mwolson"))))
 '(tla-arch-branch (quote tla))
 '(tla-log-edit-mode-hook (quote ((lambda nil (flyspell-mode 1)))))
 '(tla-mail-notification-destination (quote ((("mwolson@gnu.org--2005" "muse" nil nil nil) ("[commit][muse--main--1.0] " "muse-el-commits@gna.org")) (("mwolson@gnu.org--2005" "emacs-wiki" nil nil nil) ("[commit][emacs-wiki--main--1.0] " "Emacs Wiki Discussion List <emacs-wiki-discuss@nongnu.org>")))))
 '(tla-submit-patch-mapping (quote (((nil "dvc" nil nil nil) ("xtla-el-dev@gna.org" "dvc")) ((nil "mpc" nil nil nil) ("Stefan Monnier <monnier@iro.umontreal.ca>" "mpc")))))
 '(xgit-apply-patch-mapping (quote ((".*muse-el-discuss@gna\\.org" "/stuff/proj/emacs/muse/git-muse") (".*erc-discuss@gnu\\.org" "/stuff/proj/emacs/erc/git-erc") (".*emms-.*@gnu\\.org" "/stuff/proj/emacs/emms/git-emms"))))
 '(xgit-mail-notification-destination (quote (("/stuff/proj/emacs/dvc/git-dvc" "[COMMIT] " "dvc-dev@gna.org" "git://git.hcoop.net/git/mwolson/emacs/dvc.git"))))
 '(xgit-use-index (quote never)))
(custom-set-faces)

;;; dvc-init.el ends here