CVS for Visual Studio Code
The extension provides CVS (Concurrent Versions System) support to VS Code. CVS is an older Source Control Management (SCM) system. The extension integrates CVS into VS Code's SCM interface for a familiar user experience such as git.
- CVS client software is installed.
- For remote CVS servers (pserver & ext) ensure the CVS client can login/connect successfully before using the extension. Future versions of the extension will attempt to detect and warn when the CVS server cannot be accessed.
- The root of workspace folders must contain a
CVS folder. The extension will ignore workspace folders (including sub-folders) that do not contain a
CVS folder directly under the root of an added/imported workspace folder.
The extension will automatically activate when it detects source code managed by CVS. It provides the following features:
- Add new file or folder to the repository:
- Remove file from repository:
- Commit changes to the repository:
- Merge changes from the repository into local copy
- Discard local changes and revert to the repository revision.
- View diffs between locally modified file and repository revision.
- Display branch and revision number of file opened in active editor.
Source Control States
The following describes the possible states for a source control resource:
M (Staged Changes/Changes) Locally Modified
A (Staged Changes/Changes) Locally Added
R (Staged Changes/Changes) Locally Removed
D (Changes) Locally Deleted
R (Repository Changes) Removed from repository
F (Repository Changes) Folder found in repository
M (Repository Changes) Needs Merge with repository
NC (Conflicts) Needs Checkout from repository
P (Repository Changes) Needs Patch from repository
C (Conflicts) File had conflicts on merge
U (Untracked) Resource is not part of source control
Changes to be included in a commit must be staged. However, unlike git, additional changes made to a staged item will not display under
Changes. Think of
Staged Changes as a collection of changed source control items that are selected for the next commit.
To check for remote changes use the
Refresh Repository icon. Remote changes detected by the extension are displayed here.
Changes that require user intervention to solve merge conflicts are listed in
Branch and Revision
The Branch (Sticky Tag) and Revision are displayed for the file opened in the active editor.
Both the regular diff (when the user clicks on the changed resource in the source control view) and the Quick Diff (available in the left margin of the text editor) are provided by the extension.
The File History tree view is
defaulted to disabled (off). The view displays the revisions, for the current branch, assocaited with the file in the active editor.
The view is designed with the expectation that the CVS repository has managed all cvs revison numbers for trunk (1.1, 1.2, 1.3, ...) and branches (22.214.171.124, 126.96.36.199, ...). If the cvs revision numbers have been manualy manipulated (e.g.
cvs commit -r 3.0) the view will have undefined behaviour.
The Branches tree view is
defaulted to disabled (off). The view displays the bracnhes assocaited with the file in teh active editor.
Supported CVS Version
The extension was developed using version 1.12.13-MirDebian-28 (client/server) of CVS. Older versions may not be compatible with the extension.
- The extension has been tested with Ubuntu 16.04 & 22.04 LTS. Issues encountered with Windows or macOS may not be resolved in a timely fashion.