Next: Checking the state, Previous: Version-control support, Up: Version-control support
ECB tries all functions added as identify-backend-funtions to the
option ecb-vc-supported-backends
until one of them returns not
nil
but a symbol which identifies the backend (e.g.
CVS
). After this check ECB stores the result of this check
(i.e. either the identified backend or the fact that the directory is
not managed by a VC-system) for that directory in a special cache, so
the identify-backend-process will be performed only once per
directory. If for a directory a VC-backend could be identified ECB
stores not only the backend itself for that directory but also the
associated check-state-function defined in
ecb-vc-supported-backends
(see Checking the state).
You can add arbitrary functions to this options as long as they get one directory-argument and return either nil or a backend-symbol. Per default ECB offers the following functions to identify the VC-backend CVS, RCS, SCCS, Git, Monotone or Subversion1:
ecb-vc-dir-managed-by-CVS DIRECTORY
CVS
if DIRECTORY is managed by CVS. nil if not.
ecb-vc-dir-managed-by-RCS DIRECTORY
RCS
if DIRECTORY is managed by RCS. nil if not.
ecb-vc-dir-managed-by-SCCS DIRECTORY
SCCS
if DIRECTORY is managed by SCCS. nil if not.
ecb-vc-dir-managed-by-MTN DIRECTORY
MTN
if directory is managed by Monotone. nil if not.
ecb-vc-dir-managed-by-GIT DIRECTORY
GIT
if directory is managed by Git. nil if not.
Because with Git only the top-most directory of a source-tree has a subdir
.git this function tries recursively upwards if there is a .git-subdir.
ecb-vc-dir-managed-by-SVN DIRECTORY
SVN
if DIRECTORY is managed by Subversion. nil if not.
Returns always nil if the library vc-svn.el can not be found.
If ECB should support another VC-backend than CVS, RCS, SCCS, Monotone, Git or Subversion you have to write your own identify-backend-funtion for the used VC-backend (e.g. Clearcase)!
[1] For this the most recent version of the VC-package (incl. the libraries vc-git.el, vc-mono.el and vc-svn.el) is needed - as contained in Emacs >= 22 and XEmacs >= 21.4.22