changeset 50956:510251277445

(cvs-retrieve-revision): Make sure HEAD gets you the head of the branch.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 12 May 2003 17:49:22 +0000
parents 7a718ea39fba
children 4f526428ef19
files lisp/pcvs.el
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/pcvs.el	Mon May 12 15:46:02 2003 +0000
+++ b/lisp/pcvs.el	Mon May 12 17:49:22 2003 +0000
@@ -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 @@
 	  ;; 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)