From 6adf3f60e4bb1f58865e49814b220ae3b99ca898 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Mon, 12 May 2003 17:49:22 +0000 Subject: [PATCH] (cvs-retrieve-revision): Make sure HEAD gets you the head of the branch. --- lisp/pcvs.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lisp/pcvs.el b/lisp/pcvs.el index 2c0824843c3..bb405834a97 100644 --- a/lisp/pcvs.el +++ b/lisp/pcvs.el @@ -1,6 +1,6 @@ ;;; pcvs.el --- a front-end to CVS -;; Copyright (C) 1991,92,93,94,95,95,97,98,99,2000,2002 +;; Copyright (C) 1991,92,93,94,95,95,97,98,99,2000,02,2003 ;; Free Software Foundation, Inc. ;; Author: (The PCL-CVS Trust) pcl-cvs@cyclic.com @@ -1638,8 +1638,14 @@ Signal an error if there is no backup file." ;; Discard stderr output to work around the CVS+SSH+libc ;; problem when stdout and stderr are the same. ;; FIXME: this doesn't seem to make any difference :-( - (let ((res (call-process cvs-program nil '(t . nil) nil - "-q" "update" "-p" "-r" rev file))) + (let ((res (apply 'call-process cvs-program nil '(t . nil) nil + "-q" "update" "-p" + ;; If `rev' is HEAD, don't pass it at all: + ;; the default behavior is to get the head + ;; of the current branch whereas "-r HEAD" + ;; stupidly gives you the head of the trunk. + (append (unless (equal rev "HEAD") (list "-r" rev)) + (list file))))) (when (and res (not (and (equal 0 res)))) (error "Something went wrong retrieving revision %s: %s" rev res)) (set-buffer-modified-p nil) -- 2.39.2