Show Table of Contents
1.3.2. Creating a New Repository
A CVS repository is a central place to store files and directories that are under revision control, as well as additional data such as a complete history of changes or information about who made those changes and when. A typical CVS repository stores multiple projects in separate subdirectories called modules. When publicly accessible, it allows several developers to create a working copy of any of the modules, make changes, and share these changes with others by committing them back to the repository.
Initializing an Empty Repository
To create a new, empty CVS repository in a directory of your choice, run the following command:
cvs-dpathinit
Note that path must be an absolute path to the directory in which you want to store the repository (for example,
/var/cvs/). Alternatively, you can specify this path by changing the value of the $CVSROOT environment variable:
exportCVSROOT=path
This allows you to omit the path from
cvs init and other CVS-related commands:
cvsinit
Example 1.15. Initializing a new CVS repository
To create an empty CVS repository in the
~/cvs/ directory, type:
~]$export CVSROOT=~/cvs~]$cvs init
Importing Data to a Repository
To put an existing project under revision control, change to the directory in which the project is stored and run the following command:
cvs[-dcvs_repository]import[-m"commit message"] module vendor_tag release_tag
Note that cvs_repository is a path to the CVS repository, module is the subdirectory in which you want to import the project (such as
project), and vendor_tag and release_tag are vendor and release tags.
Example 1.16. Importing a project to a CVS repository
Imagine that the directory with your project has the following contents:
~]$ ls myproject
AUTHORS doc INSTALL LICENSE Makefile README src TODO
Also imagine that you have an empty CVS repository in
~/cvs/. To import the project under project in this repository with vendor tag mycompany and release tag init, type:
myproject]$export CVSROOT=~/cvsmyproject]$cvs import -m "Initial import." project mycompany initN project/Makefile N project/AUTHORS N project/LICENSE N project/TODO N project/INSTALL ...

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.