SCM Implementation: CVS
SCM Url
The general format for a CVS SCM Url is
scm:cvs<delimiter><method>[<delimiter>username_password_servername_port]<delimiter>path_to_repository<delimiter>module_name
As delimiter you can use either colon ':' or, if you use a colon for one of the variables (e.g. a windows path), a pipe '|'.
The following methods are supported:
- ext, connecting to a server using an external rsh program
- local, connecting to the local file system
- lserver, connecting to a local server
- pserver, connecting to a password-authenticating server
- sspi, secure authentication (less supported by clients and servers, may require using native implementation, for more details see "How to choose the CVS provider implementation")
- sserver, SSL connection method for CVS (only if cvs_native is used i.e. using -Dmaven.scm.provider.cvs.implementation=cvs_native with Maven)
Here are the format for each of the supported methods, using colon as delimiter.
scm:cvs<delimiter>local<delimiter>path_to_repository<delimiter>module_name scm:cvs<delimiter>lserver<delimiter>[username@]servername[<delimiter>port]<delimiter>path_to_repository<delimiter>module_name scm:cvs<delimiter>pserver<delimiter>[username[<delimiter>password]@]servername[<delimiter>port]<delimiter>path_to_repository<delimiter>module_name scm:cvs<delimiter>ext<delimiter>[username@]servername[<delimiter>port]<delimiter>path_to_repository<delimiter>module_name scm:cvs<delimiter>sspi<delimiter>[username@]host<delimiter>path<delimiter>module
Examples
scm:cvs:pserver:anoncvs:@cvs.apache.org:/cvs/root:module scm:cvs|pserver|username@localhost|C:/Program Files/cvsnt/repositories|module_name scm:cvs:ext:username@cvs.apache.org:/cvs/root:module scm:cvs:local:/cvs/root:module scm:cvs:sspi:cvs.apache.org:2222:/cvs/root:module
If you use anonymous access, with an empty password, you need to add a colon (:) between the username and "@" like it's done in the first example. This tells the SCM provider that there is a password and that it is empty.
How to choose the CVS provider implementation
By default, the pure java CVS provider is used (which may not support SSPI protocol), so you don't need a cvs client installed on your machine. In some case, you can want to use the installed CVS client (for example, CVSNT). To do it, you can change the implementation to use by settings the 'maven.scm.provider.cvs.implementation' system property:
-Dmaven.scm.provider.cvs.implementation=cvs_native
Provider Configuration
The provider configuration is defined in $user.home/.scm/cvs-settings.xml
Compression level
You can define the compression level in the provider configuration file (default value is 3). If compression level is equals to 0, there won't be any compression.
<cvs-settings> <compressionLevel>5</compressionLevel> </cvs-settings>
If you don't want compression, you can define the system property 'maven.scm.cvs.use_compression'.
mvn -Dmaven.scm.cvs.use_compression=true scm:changelog
.cvsrc file
By default, maven-scm doesn't use .cvsrc file. If you want to use it, you should allow it inprovider configuration file.
<cvs-settings> <useCvsrc>true</useCvsrc> </cvs-settings>
Trace CVS commands
By default, maven-scm doesn't use '-t' global option of cvs command line to trace. If you want to use it, add the following lines in your provider configuration file :
<cvs-settings> <traceCvsCommand>true</traceCvsCommand> </cvs-settings>