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 DIRECTORYCVS if DIRECTORY is managed by CVS. nil if not.
ecb-vc-dir-managed-by-RCS DIRECTORYRCS if DIRECTORY is managed by RCS. nil if not.
ecb-vc-dir-managed-by-SCCS DIRECTORYSCCS if DIRECTORY is managed by SCCS. nil if not.
ecb-vc-dir-managed-by-MTN DIRECTORYMTN if directory is managed by Monotone. nil if not.
ecb-vc-dir-managed-by-GIT DIRECTORYGIT 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 DIRECTORYSVN 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