CVS Source ControlVS Code extension that integrates CVS as a native Source Control provider — the same look and feel as the built-in Git extension. Key featuresGit-style SCM panel with stagingFiles are split into Staged Changes, Changes, Untracked Files, Conflicts, ↓ Incoming Changes, and ⚠ Incoming Conflicts groups — identical in structure to the Git panel. CVS has no native staging; the extension emulates it by recording staged filenames locally and passing them explicitly to Incoming changesThe SCM panel is populated on open with a full dry-run sync, so ↓ Incoming Changes and ⚠ Incoming Conflicts include server-side new files and directories without a manual check. Check Remote runs the same sync on demand with forced directory relisting. Results appear in ↓ Incoming Changes only when they are safe to pull directly: server-side files absent locally, or tracked files with no local edits. ⚠ Incoming Conflicts is for paths that need user choice before updating, including server changes over local edits and server-tracked files that also exist locally as untracked files. Incoming new directories are expanded into file rows when their server listing is small enough; use View as Tree from the SCM view's Conflict resolution⚠ Incoming Conflicts shows files where merging would be risky or where a local untracked file blocks a server-tracked file at the same path. Click one to open VS Code's 3-way merge editor with your local edit as "Current" and the server revision as "Incoming". Revert on these files discards the local content and takes the server version after confirmation. After saving a merge, CVS: Resolve Incoming Conflict advances the file to the server revision and marks it DiffsClick any file in Changes or ↓ Incoming Changes for a side-by-side diff — no server round-trip for local changes (revision pinned from Commit historyCVS: Show History (SCM title or Explorer right-click) opens a filterable history panel. Commits by the same author with the same message within a configurable time window are grouped into one changeset row. The panel shows how many changesets are rendered out of the full result set, and Load more renders the next page when more entries are available. File-targeted view shows one row per revision and a Compare button for side-by-side diffs of any two revisions. Session logThe CVS Session Log panel in the SCM sidebar tracks every operation of the current session (commits, updates, reverts, pulls) with affected files and revision ranges. Filters to the active file automatically. Entries also appear in VS Code's built-in Timeline panel. Explorer integrationRight-click any file or folder in a CVS working copy and choose CVS for the same operations available in the SCM panel — Update, Commit, Add / Add Binary, Stage / Unstage, Remove, Revert, Rename, Tag, Ignore, Show History, Annotate, Diff, Resolve Conflict, plus folder-level Release and Checkout Subfolders. Menu entries only appear when applicable to the selected item's actual state (e.g. Add only for untracked files, Commit/Revert only for files with local changes) instead of showing every command unconditionally. CVS commands covered
Planned
Settings
Requirements
Tests
To run the pserver behavior suite, provide a pserver root through the environment:
The pserver suite covers mode-sensitive CVS behavior such as incoming new-directory reporting, |