2009-09-21 118 views
1

我正在研究将当前保存在SCCS中的老化数字UNIX框上的源代码存储库迁移到Windows盒子上的Subversion。我最初的搜索引导我编写了一个python脚本,sccs2svn,看起来它可以完成这项工作 - 但有一些限制。 SCCS目录上的du -sk显示其大小约为550MB。将SCCS存储库转换为SVN

从我所知道的,脚本运行在本地机器上,并在本地SCCS和SVN上运行:SCCS通过直接执行SCCS命令; SVN通过一个python模块,但也调用svnadmin创建一个本地目录。

不幸的是,我需要在不同的服务器上创建回购;从我在SVN邮件列表中读到的内容等,如果平台不同,SVN repo不能简单地在服务器之间复制:需要svnadmin转储和恢复。

我认为我能看到这个工作的唯一方法是作为一个两阶段迁移:首先,在现有服务器上安装SVN和python,在那里运行脚本,然后转储出来并将其加载到Windows SVN - 应该可以工作,只需稍微耗费一点时间,并且需要多一点磁盘。

有没有人知道我可以做到这一点,而不是在两个阶段做到这一点?如果创建回购库的行被注释掉了,python脚本是否可以修改为在远程仓库上执行操作?我将对Python SVN模块进行一些阅读,但Python不是我以前玩过的脚本语言。

+0

是否有rcs2svn脚本?如果是这样,它是否消除了您需要删除的限制?重要的是我有一个体面的版本的sccs2rcs脚本,也许从SCCS迁移到RCS和从此到SVN会更顺利吗? – 2009-09-21 20:59:24

+0

@Jonathan:也考虑到了,但是作为SVN,我需要安装RCS(甚至是CVS)。 DEC OSF/1只带有SCCS。 – 2009-09-22 08:30:47

回答

3

如果您使用FSFS后端,则可以将存储库移至目标平台。 FSFS存储库是真正平台独立的。它们也是svn 1.3以来的标准设置,因此您不应该通过创建存储库而存在任何问题,然后通过任何文件传输将其复制到最终服务器。

+0

另外,您应该使用FSFS。 – 2009-09-22 01:43:00

+0

啊太棒了。这有帮助。 Windows SVN正在运行SVN 1.3.2(在某些时候,由于最新的SVN中有一些有用的东西,所以它将被升级,但目前存在“如果它工作并不能解决问题”的情况)。 – 2009-09-22 08:33:02

+0

只是为了确保您确实获得了FSFS存储库,请使用以下命令:svnadmin create --fs -type fsfs/PATH/TO/NEW/REPO – 2009-09-22 13:22:32

0

如果sccs2svn真的必须在本地工作,并且想要在Windows机器上运行SVN存储库,那么请使用Cygwin版本的GNU CSSC在Windows机器上运行sccs2svn。 CSSC是一个SCCS工作模式:请参阅http://www.gnu.org/software/cssc/

如果您有更多的灵活性,另一种选择是在GNU/Linux系统上同时使用CSSC和SVN。