准备用cvs2svn处理的rcs项目
rcs4cvs2svn的Python项目详细描述
rcs4cvs2svn准备rcs项目以使用cvs2svn进行处理。
rcs4cvs2svn对于仍然拥有古老源代码的开发人员非常有用 在rcs存储库中浮动,并希望将其移动到现代scm系统中。
而rcs4cvs2svn不提供直接迁移到任何 在其他的scm系统中,它创建一个rcs存储库的副本,可以是 由cvs2svn处理。
这样,您将得到一个subversion存储库,它可能已经 足够了。或者,subversion为进一步的迁移提供了一个良好的基础。 到另一个scm,如git或mercurial,因为大多数scm供应商提供工具给 从svn迁移,但不从rcs迁移。
(当然,您可以使用rcs4cvs2svn替换各种rcs2cvs脚本 四处漂泊。与许多这些脚本不同,rcs4cvs2svn可以处理 带有空格字符的文件名,并处理遇到的任何错误。)
用法
用法很简单:
$ python rcs4cvs2svn.py /path/to/rcs/project /path/to/cvs/repository
有两个选项,有关详细信息,请运行:
$ python rcs4cvs2svn.py --help
教程
本节描述如何将rcs存储库迁移到 然后去颠覆简历。
首先,为一个名为“hello”的项目创建一个简单的rcs存储库 包含一个文件“hello.txt”,有两个修订版:
$ 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仍然是一种非常过时的管理软件项目的方法,让我们 进入进化的下一步:颠覆。你需要cvs2svn, 可从<;http://cvs2svn.tigris.org/>;获得。
虽然有几种方法可以将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,托马斯·阿格拉辛格。保留所有权利。分布的 在BSD License下面。
源代码
源代码可从<;https://github.com/roskakori/rcs4cvs2svn>;获得。
版本信息
版本1.22011-10-26
- 修复了可能导致包含非ascii文件名的问题的日志记录 字符或百分号(%)。
- 改进了对cvs目标文件夹的处理,该文件夹现在可以是相对文件夹 即使csv init需要绝对文件夹。
- 改进的api:添加了rcs4cvs2svn.main(),可以从python调用 类似于命令行。
- 将测试shell脚本更改为正确的单元测试。
- 清除了PEP8问题。
版本1.12010-07-06
- 添加了自动创建cvs存储库以防目标路径 尚未包含CVSROOT文件夹。为了让它起作用, cvs必须安装命令行客户端。
- 修复了从rcs复制的cvs中的保护位,并使 文件写保护(这不是转换为svn的问题,但 强制用户移除cvs以进行重复转换)。
- 已清除API。只需import rcs4cvs2svn并调用 initCvsRepository()和convertRcsToCvs()根据需要。
1.0版,2010-07-04
- 首次公开发行。
版本0.92006-05-01
- 最初的内部版本用来转换我自己的一些项目。