跳转到主要内容

准备RCS项目以供cvs2svn处理

项目描述

rcs4cvs2svn为使用cvs2svn处理准备RCS项目。

rcs4cvs2svn对于仍有一些古老的源代码存储在RCS仓库中的开发者来说很有用,他们想要将其迁移到现代的源代码管理系统中。

虽然rcs4cvs2svn不提供直接迁移到任何其他源代码管理系统的可能性,但它创建了一个RCS仓库的副本,该副本可以被cvs2svn处理。

这样,您最终将得到一个Subversion仓库,这已经可能足够了。或者,Subversion为迁移到Git或Mercurial等其他源代码管理系统提供了一个良好的基础,因为大多数源代码管理系统供应商提供从SVN迁移的工具,但不提供从RCS迁移的工具。

(您当然可以使用rcs4cvs2svn作为各种rcs2cvs脚本的替代品。与许多这些脚本不同,rcs4cvs2svn可以处理包含空格的文件名,并处理它遇到的任何错误。)

用法

用法简单

$ python rcs4cvs2svn.py /path/to/rcs/project /path/to/cvs/repository

有几个选项,更多信息请运行

$ python rcs4cvs2svn.py --help

教程

本节介绍了如何将 RCS 仓库迁移到 CVS,然后再迁移到 Subversion。

首先,为名为“hello”的项目创建一个简单的 RCS 仓库,该仓库包含一个名为“hello.txt”的单个文件,具有 2 个版本。

$ 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

现在将 RCS 仓库迁移到 CVS。

$ python rcs4cvs2svn.py hello/ /tmp/hello_cvs/

输出应该是:

INFO:rcs4cvs2svn:create new CVS repository at "/tmp/hello_cvs/"
INFO:rcs4cvs2svn:migrated 1 files from "hello/" to "/tmp/hello_cvs/"

由于 CVS 仍然是一种非常过时的软件项目管理方式,让我们继续到进化的下一个步骤:Subversion。您需要从 <http://cvs2svn.tigris.org/> 获取 cvs2svn

虽然有多种方法可以将 CVS 转换为 SVN,但对于我们的任务来说,最简单的方法是创建一个包含 CVS 作为分支的 SVN 导出文件。

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

现在您可以为 SVN 创建一个仓库并将分支加载进去。

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

关于迁移到更高级的版本控制系统,留给读者作为练习。

许可证

版权 (c) 2006-2011, Thomas Aglassinger。保留所有权利。在 BSD 许可证 下分发。

源代码

源代码可以从 <https://github.com/roskakori/rcs4cvs2svn> 获取。

版本信息

版本 1.2,2011-10-26

  • 修复了可能导致文件名包含非 ASCII 字符或百分号 (%) 的问题的日志记录。

  • 改进了对 CVS 目标文件夹的处理,现在即使 csv init 预期的是一个绝对文件夹,它也可以是一个相对文件夹。

  • 改进了 API:添加了 rcs4cvs2svn.main(),可以从 Python 调用,类似于命令行。

  • 将测试 shell 脚本改为合适的单元测试。

  • 清理了 PEP8 问题。

版本 1.1,2010-07-06

  • 添加了在目标路径不包含 CVSROOT 文件夹时自动创建 CVS 仓库的功能。为了使此功能正常工作,必须安装 cvs 命令行客户端。

  • 修复了从 RCS 复制的保护位,这使得文件被设置为只读(这对于转换为 SVN 没有问题,但强制用户在重复转换时删除 CVS)。

  • 清理了 API。只需 import rcs4cvs2svn 并根据需要调用 initCvsRepository()convertRcsToCvs() 即可。

版本 1.0,2010-07-04

  • 首次公开发布。

版本 0.9,2006-05-01

  • 初始内部版本,用于转换我的部分项目。

项目详情


下载文件

下载适合您平台的文件。如果您不确定要选择哪一个,请了解有关 安装包 的更多信息。

源代码分发

rcs4cvs2svn-1.2.zip (9.1 kB 查看哈希值)

上传时间

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面