Mercurial > emacs
changeset 108844:2ad33f941be2
Add support for vc-log-incoming, improve vc-log-outgoing for Git.
* lisp/vc-git.el (vc-git-compute-remote): New function.
(vc-git-log-outgoing): Use it instead of hard coding a value.
(vc-git-log-incoming): New function.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Tue, 01 Jun 2010 03:40:09 -0700 |
parents | 1fa0743700cc |
children | 9754518b7ea0 d76ca4f45bff |
files | lisp/ChangeLog lisp/vc-git.el |
diffstat | 2 files changed, 32 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Jun 01 02:37:49 2010 -0700 +++ b/lisp/ChangeLog Tue Jun 01 03:40:09 2010 -0700 @@ -1,5 +1,10 @@ 2010-06-01 Dan Nicolaescu <dann@ics.uci.edu> + Add support for vc-log-incoming, improve vc-log-outgoing for Git. + * vc-git.el (vc-git-compute-remote): New function. + (vc-git-log-outgoing): Use it instead of hard coding a value. + (vc-git-log-incoming): New function. + Improve state updating for VC tag commands. * vc.el (vc-create-tag, vc-retrieve-tag): Call vc-resynch-buffer to update the state of all buffers in the directory.
--- a/lisp/vc-git.el Tue Jun 01 02:37:49 2010 -0700 +++ b/lisp/vc-git.el Tue Jun 01 03:40:09 2010 -0700 @@ -606,14 +606,38 @@ (when start-revision (list start-revision)) '("--"))))))) +(defun vc-git-compute-remote () + (let ((str (with-output-to-string + (with-current-buffer standard-output + (vc-git--out-ok "symbolic-ref" "HEAD")))) + branch remote) + (if (string-match "^\\(refs/heads/\\)?\\(.+\\)$" str) + (progn + (setq branch (match-string 2 str)) + (setq remote + (with-output-to-string + (with-current-buffer standard-output + (vc-git--out-ok "config" + (concat "branch." branch ".remote"))))) + (when (string-match "\\([^\n]+\\)" remote) + (setq remote (match-string 1 remote))))))) + + (defun vc-git-log-outgoing (buffer remote-location) (interactive) (vc-git-command buffer 0 nil "log" (if (string= remote-location "") - ;; FIXME: this hardcodes the location, it should compute - ;; it properly. - "origin/master..HEAD" + (concat (vc-git-compute-remote) "..HEAD") + remote-location))) + + +(defun vc-git-log-incoming (buffer remote-location) + (interactive) + (vc-git-command + buffer 0 nil + "log" (if (string= remote-location "") + (concat "HEAD.." (vc-git-compute-remote)) remote-location))) (defvar log-view-message-re)