Skip to main content

rcs4cvs2svn prepares an RCS project for processing with cvs2svn.

rcs4cvs2svn is useful for developers who still have ancient source code floating around in RCS repositories and want to move it to a modern SCM system.

While rcs4cvs2svn does not provide any possibility to directly migrate to any other SCM system, it creates a copy of your RCS repository that can be processed by cvs2svn.

That way, you’ll end up with a Subversion repository, which already may be sufficient. Alternatively, Subversion offers a sound base for further migration to another SCM such as Git or Mercurial, as most SCM vendors provide tools to migrate from SVN but not from RCS.

(You can of course use rcs4cvs2svn as replacement for various rcs2cvs scripts floating around. Unlike many of these scripts, rcs4cvs2svn can process filenames with space characters and handles any errors it encounters.)

Usage

Usage is simple:

cvs -d /path/to/cvs/repository init
python rcs4cvs2svn /path/to/rcs/project /path/to/cvs/repository

There are a couple of options, for more information run:

python rcs4cvs2svn --help

Tutorial

This section describes how to migrate an RCS repository to CSV and then to Subversion.

First, create a simple RCS repository for a project called “hello” which contains a single file, “hello.txt” with 2 revisions:

mkdir -p hello/RCS
cd hello
echo "hello world!" >hello.txt
echo "Added greetings.\n." | ci -u hello.txt
co -l hello.txt
echo "hello space!" >>hello.txt
echo "Added more greetings.\n." | ci -u hello.txt

Next, create a new CVS repository which will act as destination:

cvs -d /tmp/hello_cvs init

Now migrate the the RCS repository to CSV.

python rcs4cvs2svn.py hello/ /tmp/hello_cvs/

Because CVS still is a very dated way to manage a software project, let’s move on to the next step of evolution: Subversion. You will need cvs2svn, available from <http://cvs2svn.tigris.org/>.

While there are several ways to convert CVS to SVN, the easiest for our task is to simple create a SVN dumpfile containing the CVS as trunk:

cvs2svn --trunk-only --dumpfile hello.dump /tmp/hello_cvs/

Now you can create a SVN repository and load the trunk into it:

svnadmin create /tmp/hello_svn/
svnadmin load /tmp/hello_svn/ <hello.dump

Moving on to even more advanced SCM systems is left as an exercise to the reader.

License

Copyright (c) 2006-2010, Thomas Aglassinger. All rights reserved. Distributed under the BSD License.

Version information

Version 1.0, 2010-07-04

Initial public release.

Version 0.9, 2006-05-01

Initial internal version used to convert some of my own projects.

Metadata

Release files for rcs4cvs2svn 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rcs4cvs2svn 1.0
File Size Uploaded Provenance Actions
rcs4cvs2svn-1.0.zip 6.1 kB Without provenance Details for rcs4cvs2svn-1.0.zip

Release files / rcs4cvs2svn-1.0.zip

Download URL rcs4cvs2svn-1.0.zip
Size 6.1 kB
Tags Source
SHA-256 checksum
How to use checksums
932b20cb49f2d035ce825784abd4f009e4e2ad0234537455954601eb1892d723
BLAKE2b-256 checksum
How to use checksums
ec0fb8e13a04f346cc5291beda57e352362ad39400d9fa0c047ffb627f4b5d8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for rcs4cvs2svn 1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page