# HG changeset patch # User Stefan Monnier # Date 1057512492 0 # Node ID 11d614bbf7e3528b0bc2448c56aa00b9600934cc # Parent 856170cb64e90bd09aa501d2f10d5cced3282f5c (vc-stay-local, vc-stay-local-p): Move to vc-hooks.el. diff -r 856170cb64e9 -r 11d614bbf7e3 lisp/vc.el --- a/lisp/vc.el Sun Jul 06 17:26:48 2003 +0000 +++ b/lisp/vc.el Sun Jul 06 17:28:12 2003 +0000 @@ -7,7 +7,7 @@ ;; Maintainer: Andre Spiegel ;; Keywords: tools -;; $Id: vc.el,v 1.356 2003/06/20 13:21:24 teirllm Exp $ +;; $Id: vc.el,v 1.357 2003/06/30 10:34:26 rms Exp $ ;; This file is part of GNU Emacs. @@ -1739,55 +1739,6 @@ (vc-call diff file rel1 rel2)))) -(defcustom vc-stay-local t - "*Non-nil means use local operations when possible for remote repositories. -This avoids slow queries over the network and instead uses heuristics -and past information to determine the current status of a file. - -The value can also be a regular expression or list of regular -expressions to match against the host name of a repository; then VC -only stays local for hosts that match it. Alternatively, the value -can be a list of regular expressions where the first element is the -symbol `except'; then VC always stays local except for hosts matched -by these regular expressions." - :type '(choice (const :tag "Always stay local" t) - (const :tag "Don't stay local" nil) - (list :format "\nExamine hostname and %v" :tag "Examine hostname ..." - (set :format "%v" :inline t (const :format "%t" :tag "don't" except)) - (regexp :format " stay local,\n%t: %v" :tag "if it matches") - (repeat :format "%v%i\n" :inline t (regexp :tag "or")))) - :version "21.4" - :group 'vc) - -(defun vc-stay-local-p (file) - "Return non-nil if VC should stay local when handling FILE. -This uses the `repository-hostname' backend operation." - (let* ((backend (vc-backend file)) - (sym (vc-make-backend-sym backend 'stay-local)) - (stay-local (if (boundp sym) (symbol-value sym) t))) - (if (eq stay-local t) (setq stay-local vc-stay-local)) - (if (symbolp stay-local) stay-local - (let ((dirname (if (file-directory-p file) - (directory-file-name file) - (file-name-directory file)))) - (eq 'yes - (or (vc-file-getprop dirname 'vc-stay-local-p) - (vc-file-setprop - dirname 'vc-stay-local-p - (let ((hostname (vc-call-backend - backend 'repository-hostname dirname))) - (if (not hostname) - 'no - (let ((default t)) - (if (eq (car-safe stay-local) 'except) - (setq default nil stay-local (cdr stay-local))) - (when (consp stay-local) - (setq stay-local - (mapconcat 'identity stay-local "\\|"))) - (if (if (string-match stay-local hostname) - default (not default)) - 'yes 'no))))))))))) - (defun vc-switches (backend op) (let ((switches (or (if backend