emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: vc-state-heuristic is gone


From: Eric S. Raymond
Subject: Re: vc-state-heuristic is gone
Date: Mon, 24 Nov 2014 03:33:10 -0500
User-agent: Mutt/1.5.21 (2010-09-15)

David Kastrup <address@hidden>:
> > Affected back ends: SCCS, RCS, CVS, SVN, Bazaar.  I've already tested
> > with RCS and any change in preformance is now so small that a human is
> > not capable of registering it.
> 
> For local files, presumably.  Both NFS and Tramp exist and are in use,
> however, so the "no cache" philosophy should likely not extend to
> operations which can be triggered repeatedly during keystrokes that do
> not explicitly invoke VC-based operations.

I hope I am parsing your last sentence correctly.  You do not appear
to be suggesting anything about how VC should work, but making a general
observation about *other* modes that have local caching.

Matters have advanced significantly on my feature branch since the
email you are replying to.  The following comment now lives in vc.el:

;;; Changes from the pre-25.1 API:
;;
;; - The 'editable' optional argument of vc-checkout is gone. The
;;   upper level assumes that all files are checked out editable. This
;;   moves closer to emulating modern non-locking behavior even on very
;;   old VCSes.
;;
;; - vc-state-heuristic is gone. Previously defined in bzr, CVS,
;;   RCS, and SCCS, it was an attempt to circumvent the slowness of
;;   disk operations on older hardware (and in the case of bzr,
;;   unreasonable slowness of older bzr versions). With modern hardware
;;   the tradeoffs have changed; it's OK to go direct to disk, and by doing
;;   so avoid various TOCTOU bugs and issues with what happens if you
;;   perform version-control operations behind Emacs's back.
;;
;; - the vc-mistrust-permissions configuration variable is gone; the 
;;   code no longer relies on permissions except in one corner case where
;;   CVS leavs no alternative (which was not gated by this variable).  The
;;   only affected back end was RCS.
;;
;; - the vc-stay-local-p function, and associated backend methods and
;;   configuration variables (including repository-hostname), are
;;   gone.  Affects the CVS and SVN back ends, but had previously to
;;   be half-disabled in the SVN back end anyway because of a
;;   performance limitation in the SVN tools. This change disables
;;   asynchronous diffs and asynchronous annotation in CVS and SVN,
;;   but that's OK as we need to make that an upper-level capability
;;   that extends across all backends.
;;
;; - The init-revision function and the default-initial-revision
;;   variable are gone.  These have't made sense on anything shipped
;;   since RCS, and using them was a dumb stunt even on RCS.
;;
;; - The vc-register function and its backend implementations no longer
;;   take a first optional revision argument, since on no system since 
;;   RCS has setting the initial revision been even possible, let alone
;;   sane.

The next thing I'm going to look at is unifying the status-querying
functions.
-- 
                <a href="http://www.catb.org/~esr/";>Eric S. Raymond</a>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]