One-way bridge for the holdouts.
git cvsexportcommit takes a single Git commit and replays it onto a CVS working copy so it can be cvs commit-ed. It exists for teams forced to keep CVS as the system of record.
Think of it as a patch courier: it generates a diff for one Git commit, applies it inside a CVS checkout, and optionally runs cvs commit with the same log message.
git cvsexportcommit [-h] [-u] [-w cvsworkdir] [-W] [-p] [-v]
[-c] [-f] [-a] [-m msgprefix]
[parent-commit] commit-id
Requires a CVS working directory checked out somewhere on disk;
specify it with -w or use -W to reuse the current Git work tree.| Flag | What it does |
|---|---|
-c | After applying, run cvs commit automatically |
-p | Apply the patch with git apply --3way for cleaner merges |
-v | Verbose; show the diff and apply progress |
-u | Run cvs update on the work dir before applying |
-w <dir> | Path to the CVS working directory to apply the commit into |
-W | Use the current Git work tree as the CVS work dir (advanced) |
-f | ⚠️ Force the commit even if the tree is dirty or differs |
git cvsexportcommit -v -w /srv/cvswork/myproj HEADgit cvsexportcommit -u -p -c -w /srv/cvswork/myproj HEADgit cvsexportcommit -v -c -w /srv/cvswork/myproj 9f1c2ab^ 9f1c2abgit cvsexportcommit -W -c HEADHit each option, then Check answers. Score is recorded; Next is always open.