]> git.eshelyaron.com Git - emacs.git/commitdiff
(vc-checkout-model): For CVS, look at
authorRichard M. Stallman <rms@gnu.org>
Thu, 31 Jul 1997 06:16:32 +0000 (06:16 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 31 Jul 1997 06:16:32 +0000 (06:16 +0000)
permissions to see if a file is "watched".

lisp/vc-hooks.el

index 0cdfb82be7c482249a9e041e97d64ff8bbdb1cb1..b775e89cbfe3444e5990073ff3eb66473ca2a4a9 100644 (file)
@@ -514,7 +514,16 @@ For CVS, the full name of CVS/Entries is returned."
                (vc-file-getprop file 'vc-checkout-model))))
     ((eq (vc-backend file) 'CVS)
      (vc-file-setprop file 'vc-checkout-model
-                     (if (getenv "CVSREAD") 'manual 'implicit))))))
+      (cond
+       ((getenv "CVSREAD") 'manual)
+       ;; If the file is not writeable, this is probably because the
+       ;; file is being "watched" by other developers.  Use "manual"
+       ;; checkout in this case.  (If vc-mistrust-permissions was t,
+       ;; we actually shouldn't trust this, but there is no other way
+       ;; to learn this from CVS at the moment (version 1.9).)
+       ((string-match "r-..-..-." (nth 8 (file-attributes file)))
+        'manual)
+       (t 'implicit)))))))
 
 ;;; properties indicating the locking state