Next: , Up: Describing a VCS


16.9.2.1 The VCS node

The vcs node is the toplevel node which contains the description of the general behavior expected from the VCS. It has the following attributes:

name
The attribute name indicates the identifier of the VCS. The casing of this name is important, and the same casing must be used in the project files.
absolute_names
The attribute absolute_names indicates the behavior of the VCS relative to file names, and can take the values TRUE or FALSE. If it is set to TRUE, it means that all commands in the VCS will work on absolute file names. If it set to FALSE, it means that all actions work on base file names, and that GPS will move to the appropriate directory before executing an action.
group_queries_by_directory
The attribute group_queries_by_directory indicates that, when querying status for all the source files in a directory, a query for the directory should be launched, instead of launching a query for multiple files. This operation is faster on some Version Control systems. By default, this is set to FALSE.
ignore_file
The attribute ignore_file specifies the name of the file used by the VCS Explorer to get the list of files to ignore. By default for the CVS mode this is set to .cvsignore.
atomic_commands
The attribute atomic_commands specifies if the VCS supports atomicity and can take the values TRUE or FALSE. If it is set to TRUE it means that the VCS supports atomic commands. It is FALSE by default. This attribute is important to trigger the activities group commit feature. See See The VCS Activities.
path_style
The attribute path_style specifies which kind of directory separator is supported by the VCS and can take the values UNIX, DOS, Cygwin or System_Default. The later value is the default value. With this attribute it is possible to control the directory separator to use when specifying files to the VCS. For the Cygwin case the drive is specified as /cygdrive/<drive>.
dir_sep
Alias for path_style, obsolescent.
commit_directory
The attribute commit_directory specifies if the VCS supports commit on directories and can take the values TRUE or FALSE. If it is set to TRUE it means that the VCS supports commit on directories this is the case for Subversion for example.
administrative_directory
The attribute administrative_directory specifies the name of the directory where the external VCS stores the local repository information. For example for Subversion this is .svn. This information is used when the project is setup to select automatically the external VCS. See Version Control System.
prev_revision
A string which can be used when querying revisions to indicate the previous revision of a file, for instance "PREV" for subversion.
head_revision
A string which can be used when querying revisions to indicate the latest revision of a file, for instance "HEAD" for subversion.
require_log
The attribute require_log specifies if the VCS require a log for the commit/add/delete actions. It can take the values TRUE or FALSE. If it is set to TRUE GPS will ensure that a log is created for each file. If it is set to FALSE GPS will not ask for log, it is expected to be handled by the external VCS.

Note that to support group commit with shared log on GPS both absolute_name and atomic_commands must be true. This is the case for the Subversion VCS for example.

Here is an example, adapted to the use of CVS:

        <vcs name="Custom CVS" absolute_names="FALSE">
     
           (... description of action associations ...)
           (... description of supported status ...)
           (... description of output parsers ...)
     
        </vcs>