2014-03-03 81 views
1

我们正在摆脱我们的DEC Alpha工作站,并在OpenVMS代码管理系统(CMS)下安装了许多我们想要导入到在Linux上运行的GIT的历史软件。目前我们必须手工完成,而且需要很长时间才能完成。有谁知道会自动执行此过程的脚本?如何导出OpenVMS CMS历史记录并将其导入GIT

+0

CMS有一个[API](http://h71000.www7.hp.com/doc/82final/decset/cms_call_routines_reference.pdf)。如果没有更好的东西出现,你可以编写一个应用程序来提取GIT可以处理的所有内容。 – HABO

回答

1

我有类似:

$ ./git-cmsimport.pl 
usage: ./git-cmsimport.pl [OPTION]... LIBRARY URL 
     Import the latest generation of all elements from the CMS LIBRARY 
         (in VMS syntax) located by the URL. 
         Results in files in the master. 
     -c CLASS,  import only the members of the CMS class CLASS. 
         Results in files in the branch CLASS. 
     -f FILE,   local file containing the CMS history (for -h) 
         or CMS generation information. 
     -h,    import the full CMS LIBRARY according to its history. 
         Results in files in the master and branches for classes. 
     -l,    lowercase all VMS names: library, user and files 
     -t OFFSET,  time zone, 4 digit offset from UTC (rfc2822) 
example: ./git-cmsimport.pl -f hist.txt -h -l -t -0600 [.cmsdemo] http://eisner.encompasserve.org 
$ 

也就是说,是当地的Linux系统我运行一个Perl脚本上,远程VMS系统上,从我的账户,我运行一个自己的HTTP服务器

$ ./git-cmsimport.pl -t -0600 [.cmsdemo] http://eisner.encompasserve.org:8081 
LIBRARY EISNER$DRA3:[DECUSERVE_USER.BECKER_H.CMSDEMO] 
%CMS-S-FETCHED, generation 5 of element EISNER$DRA3:[DECUSERVE_USER.BECKER_H.CMSDEMO]BAR.C fetched 
%CMS-S-FETCHED, generation 2 of element EISNER$DRA3:[DECUSERVE_USER.BECKER_H.CMSDEMO]FOO.C fetched 
%CMS-S-FETCHED, generation 2 of element EISNER$DRA3:[DECUSERVE_USER.BECKER_H.CMSDEMO]MAIN.C fetched 
$ ls -a CMSDEMO/ 
. .. BAR.C .cms-elements FOO.C .git MAIN.C 
$ 

正如你所看到的,它试图将CMS类映射到git分支。目前这只是一个概念验证。但如果有兴趣...

3

刚刚处理CMS-Git迁移,需要找到现成的解决方案,其中 带我到这里。令人惊讶的是,这项任务的选择并不多。不停地挖,也发现多了一个迁移实用程序exportcms-githttps://github.com/nomadbyte/cms-export

试过了效用,认为此处举报加起来更多的情况下,别人主体面临这样的任务。

这是一个DCL批处理,没有太多关注,但文档很有用。 读取CMS,创建您传输的Git导入文件并创建目标Git回购。 将它转换成一个旧的CMS库(我们有五个!)它有一点点小心, 需要ftp导出的文件为二进制,显然我们在lib中有一些二进制元素。

它几代人出口,基本上每个人都成为一个Git承诺。它还为变体和类创建分支。我不知道我们在CMS中甚至有变体。无论如何,Git repo是可用的,我们计划重新安排它以建立一个新的过程,但我们保留了所有的修订。

相关问题