1 |
;;; pcvs.el --- a front-end to CVS |
;;; pcvs.el --- a front-end to CVS |
2 |
|
|
3 |
;; 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 |
4 |
;; Free Software Foundation, Inc. |
;; Free Software Foundation, Inc. |
5 |
|
|
6 |
;; Author: (The PCL-CVS Trust) pcl-cvs@cyclic.com |
;; Author: (The PCL-CVS Trust) pcl-cvs@cyclic.com |
1638 |
;; Discard stderr output to work around the CVS+SSH+libc |
;; Discard stderr output to work around the CVS+SSH+libc |
1639 |
;; problem when stdout and stderr are the same. |
;; problem when stdout and stderr are the same. |
1640 |
;; FIXME: this doesn't seem to make any difference :-( |
;; FIXME: this doesn't seem to make any difference :-( |
1641 |
(let ((res (call-process cvs-program nil '(t . nil) nil |
(let ((res (apply 'call-process cvs-program nil '(t . nil) nil |
1642 |
"-q" "update" "-p" "-r" rev file))) |
"-q" "update" "-p" |
1643 |
|
;; If `rev' is HEAD, don't pass it at all: |
1644 |
|
;; the default behavior is to get the head |
1645 |
|
;; of the current branch whereas "-r HEAD" |
1646 |
|
;; stupidly gives you the head of the trunk. |
1647 |
|
(append (unless (equal rev "HEAD") (list "-r" rev)) |
1648 |
|
(list file))))) |
1649 |
(when (and res (not (and (equal 0 res)))) |
(when (and res (not (and (equal 0 res)))) |
1650 |
(error "Something went wrong retrieving revision %s: %s" rev res)) |
(error "Something went wrong retrieving revision %s: %s" rev res)) |
1651 |
(set-buffer-modified-p nil) |
(set-buffer-modified-p nil) |