1 Version Control System Fields
2 =============================
6 Most of the version control system (VCS) fields types are common to both
7 ``source-repository`` and ``source-repository-package`` stanzas.
14 - source-repository (head|this)
15 - source-repository-package
30 - [x] (0 or 1 for each dependency)
34 * - post-checkout-command
43 Cabal supports specifying different information for various common source
44 control systems. This is the name of the source control system used for a
45 repository. The currently recognised types are:
51 - ``mercurial`` (or alias ``hg``)
52 - ``bazaar`` (or alias ``bzr``)
57 The VCS kind will determine what other fields are appropriate to specify for a
58 particular version control system.
63 The location of the repository, usually a URL but the exact form of this field
64 depends on the repository type. For example:
66 - for Darcs: ``http://code.haskell.org/foo/``
67 - for Git: ``https://github.com/foo/bar.git``
68 - for CVS: ``anoncvs@cvs.foo.org:/cvs``
73 Many source control systems support the notion of a branch, as a distinct
74 concept from having repositories in separate locations. For example CVS, SVN and
75 git use branches while darcs uses different locations for different branches. If
76 you need to specify a branch to identify a your repository then specify it in
82 A tag identifies a particular state of a source repository. The exact form of
83 the tag depends on the repository type.
88 A field of this type is always optional because it defaults to empty, which
89 corresponds to the root directory of the repository and is the same as
90 specifying ``.`` explicitly.
92 Some projects put the sources for multiple packages inside a single VCS
93 repository. This field lets you specify the relative path from the root of the
94 repository to the top directory for the package, i.e. the directory containing
95 the package's ``.cabal`` file.