准备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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 35416ca67e3938c74a6cf696fe334e1cfb71dd0d49df1819a8d71c78028a7e24 |
|
MD5 | f6ee9777b3c3c0c0b84b9091e8070db4 |
|
BLAKE2b-256 | f16bd89c1ccc0a8af71899084c2a86e42a549b05d3341141869d27de18df05e6 |