Variable: projectile-vcs-markers

projectile-vcs-markers is a customizable variable defined in projectile.el.

Value

((".git" . git)
 (".hg" . hg)
 (".fslckout" . fossil)
 ("_FOSSIL_" . fossil)
 (".bzr" . bzr)
 ("_darcs" . darcs)
 (".pijul" . pijul)
 (".svn" . svn)
 (".sl" . sapling)
 (".jj" . jj)
 (".osc" . osc))

Documentation

Alist of (MARKER . VCS) pairs probed by projectile-project-vcs.

The order only breaks ties between markers in the same directory - during the upward walk the nearest marker directory always wins. The main reason to customize this is colocated repositories: a repository created with jj git init contains both .jj and
.git, and moving .jj first makes such projects detect as jj.

Unknown VCS symbols are fine - file listing falls back to the generic command and projectile-vc to vc-dir - so new markers can be added here without any other configuration.

VCS detection is cached per project; run projectile-invalidate-cache after changing this for it to affect already-visited projects.

This variable was added, or its default value changed, in projectile version 3.1.0.

Aliases

projectile--vcs-markers (obsolete since 3.1.0)

Source Code

;; Defined in ~/.emacs.d/elpa/projectile-20260820.1509/projectile.el
(defcustom projectile-vcs-markers
  '((".git" . git)
    (".hg" . hg)
    (".fslckout" . fossil)
    ("_FOSSIL_" . fossil)
    (".bzr" . bzr)
    ("_darcs" . darcs)
    (".pijul" . pijul)
    (".svn" . svn)
    (".sl" . sapling)
    (".jj" . jj)
    (".osc" . osc))
  "Alist of (MARKER . VCS) pairs probed by `projectile-project-vcs'.

The order only breaks ties between markers in the same directory -
during the upward walk the nearest marker directory always wins.
The main reason to customize this is colocated repositories: a
repository created with `jj git init' contains both `.jj' and
`.git', and moving `.jj' first makes such projects detect as `jj'.

Unknown VCS symbols are fine - file listing falls back to the
generic command and `projectile-vc' to `vc-dir' - so new markers
can be added here without any other configuration.

VCS detection is cached per project; run `projectile-invalidate-cache'
after changing this for it to affect already-visited projects."
  :group 'projectile
  :type '(alist :key-type (string :tag "Marker") :value-type (symbol :tag "VCS"))
  :package-version '(projectile . "3.1.0"))