Home Explore Blog CI



git

4th chunk of `Documentation/git-cvsserver.adoc`
372e6bc9fe8ecb5b59bb567c5e47f11e0da5e589d063c7a60000000100000cfc
 feature. May not
	contain colons (`:`).
	Default: 'SQLite'

gitcvs.dbuser::
	Database user. Only useful if setting `dbDriver`, since
	SQLite has no concept of database users. Supports variable
	substitution (see below).

gitcvs.dbPass::
	Database password.  Only useful if setting `dbDriver`, since
	SQLite has no concept of database passwords.

gitcvs.dbTableNamePrefix::
	Database table name prefix.  Supports variable substitution
	(see below).  Any non-alphabetic characters will be replaced
	with underscores.

All variables can also be set per access method, see <<configaccessmethod,above>>.

Variable substitution
^^^^^^^^^^^^^^^^^^^^^
In `dbDriver` and `dbUser` you can use the following variables:

%G::
	Git directory name
%g::
	Git directory name, where all characters except for
	alphanumeric ones, `.`, and `-` are replaced with
	`_` (this should make it easier to use the directory
	name in a filename if wanted)
%m::
	CVS module/Git head name
%a::
	access method (one of "ext" or "pserver")
%u::
	Name of the user running 'git-cvsserver'.
	If no name can be determined, the
	numeric uid is used.

ENVIRONMENT
-----------

These variables obviate the need for command-line options in some
circumstances, allowing easier restricted usage through git-shell.

GIT_CVSSERVER_BASE_PATH::
	This variable replaces the argument to --base-path.

GIT_CVSSERVER_ROOT::
	This variable specifies a single directory, replacing the
	`<directory>...` argument list. The repository still requires the
	`gitcvs.enabled` config option, unless `--export-all` is specified.

When these environment variables are set, the corresponding
command-line arguments may not be used.

ECLIPSE CVS CLIENT NOTES
------------------------

To get a checkout with the Eclipse CVS client:

1. Select "Create a new project -> From CVS checkout"
2. Create a new location. See the notes below for details on how to choose the
   right protocol.
3. Browse the 'modules' available. It will give you a list of the heads in
   the repository. You will not be able to browse the tree from there. Only
   the heads.
4. Pick `HEAD` when it asks what branch/tag to check out. Untick the
   "launch commit wizard" to avoid committing the .project file.

Protocol notes: If you are using anonymous access via pserver, just select that.
Those using SSH access should choose the 'ext' protocol, and configure 'ext'
access on the Preferences->Team->CVS->ExtConnection pane. Set CVS_SERVER to
"`git cvsserver`". Note that password support is not good when using 'ext',
you will definitely want to have SSH keys setup.

Alternatively, you can just use the non-standard extssh protocol that Eclipse
offer. In that case CVS_SERVER is ignored, and you will have to replace
the cvs utility on the server with 'git-cvsserver' or manipulate your `.bashrc`
so that calling 'cvs' effectively calls 'git-cvsserver'.

CLIENTS KNOWN TO WORK
---------------------

- CVS 1.12.9 on Debian
- CVS 1.11.17 on MacOSX (from Fink package)
- Eclipse 3.0, 3.1.2 on MacOSX (see Eclipse CVS Client Notes)
- TortoiseCVS

OPERATIONS SUPPORTED
--------------------

All the operations required for normal use are supported, including
checkout, diff, status, update, log, add, remove, commit.

Most CVS command arguments that read CVS tags or revision numbers
(typically -r) work, and also

Title: Git CVS Server Configuration and Client Compatibility
Summary
The Git CVS server provides various configuration options, including environment variables and command-line arguments, and is compatible with several CVS clients, including Eclipse, TortoiseCVS, and command-line CVS, supporting common operations like checkout, update, and commit.