Commit c9ce5e2c authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(vc-backend-checkout): Don't use -G for SCCS.

parent dcd12c89
...@@ -1524,10 +1524,30 @@ Return nil if there is no such person." ...@@ -1524,10 +1524,30 @@ Return nil if there is no such person."
(let ((filename (or workfile file))) (let ((filename (or workfile file)))
(message "Checking out %s..." filename) (message "Checking out %s..." filename)
(vc-backend-dispatch file (vc-backend-dispatch file
(vc-do-command 0 "get" file ;; SCCS (if workfile ;; SCCS
(if writable "-e") ;; Some SCCS implementations allow checking out directly to a
(if workfile (concat "-G" workfile)) ;; file using the -G option, but then some don't so use the
(and rev (concat "-r" (vc-lookup-triple file rev)))) ;; least common denominator approach and use the -p option
;; ala RCS.
(let ((vc-modes (logior (file-modes (vc-name file))
(if writable 128 0)))
(failed t))
(unwind-protect
(progn
(vc-do-command
0 "/bin/sh" file "-c"
(format "umask %o; exec >\"$1\" || exit; shift; umask %o; exec get \"$@\""
(logand 511 (lognot vc-modes))
(logand 511 (lognot (default-file-modes))))
"" ; dummy argument for shell's $0
filename
(if writable "-e")
"-p" (and rev (concat "-r" (vc-lookup-triple file rev))))
(setq failed nil))
(and failed (file-exists-p filename) (delete-file filename))))
(vc-do-command 0 "get" file ;; SCCS
(if writable "-e")
(and rev (concat "-r" (vc-lookup-triple file rev)))))
(if workfile ;; RCS (if workfile ;; RCS
;; RCS doesn't let us check out into arbitrary file names directly. ;; RCS doesn't let us check out into arbitrary file names directly.
;; Use `co -p' and make stdout point to the correct file. ;; Use `co -p' and make stdout point to the correct file.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment