rcs4cvs2svn

Software Screenshot:
rcs4cvs2svn
Software Details:
Version: 1.2
Upload Date: 11 May 15
Developer: Thomas Aglassinger
Distribution Type: Freeware
Downloads: 5

Rating: nan/5 (Total Votes: 0)

rcs4cvs2svn is a software that 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.

What is new in this release:

  • Fixed logging which could cause issues with file names containing non ASCII characters or percent signs (%).
  • Improved handling of CVS target folder, which can now be a relative folder even though csv init expects an absolute folder.
  • Improved API: Added rcs4cvs2svn.main(), which can be called from Python similar to the command line.
  • Changed test shell scripts to proper unit test.
  • Cleaned up PEP8 issues.

What is new in version 1.1:

  • Added automatic creation of CVS repository in case the target path does not already contains a CVSROOT folder. In order for this to work, the cvs command line client has to be installed.
  • Fixed protection bits in CVS which were copied from RCS and does made the files write protected (which was not an issue for converting to SVN but forced the user to remove the CVS for repeated conversion).
  • Cleaned up API. Simply import rcs4cvs2svn and call initCvsRepository() and convertRcsToCvs() as needed.

Requirements:

  • Python

Similar Software

cgit
cgit

17 Feb 15

bzr-colo
bzr-colo

14 Apr 15

github-distutils
github-distutils

20 Feb 15

autohook
autohook

14 Apr 15

Other Software of Developer Thomas Aglassinger

Jomic
Jomic

11 May 15

Scunch
Scunch

12 May 15

tratihubis
tratihubis

14 Apr 15

Comments to rcs4cvs2svn

Comments not found
Add Comment
Turn on images!