我们正在摆脱我们的DEC Alpha工作站,并在OpenVMS代码管理系统(CMS)下有许多历史软件,我们希望将其导入到运行在Linux上的GIT中。目前我们不得不手工完成这项工作,这将需要很长时间。有没有人知道可以自动执行这个过程的脚本?
发布于 2015-12-18 01:35:40
我只需要处理CMS-Git迁移,需要找到现成的解决方案,这让我来到了这里。令人惊讶的是,这项任务的选择并不多。继续挖掘,还发现了另一个迁移实用程序exportcms-git:https://github.com/nomadbyte/cms-export
我试过那个工具,想在这里报告它,以便在其他人面临这样的任务时增加更多的主题。
这是一个DCL批处理,没有太多的研究,但是文档很有用。读取CMS,创建Git导入文件,您可以传输该文件并创建目标Git存储库。运行它来转换一个旧的CMS库(我们有五个!)它使用了一些小技巧,需要将导出的文件作为二进制进行ftp,显然我们在库中有一些二进制元素。
它是一代又一代的输出,基本上每一代都会变成一个Git提交。此外,它还为变体和类创建分支。我都不知道我们的CMS里还有变种。无论如何,Git代码库是可用的,我们计划重新安排它以适应新的构建过程,但我们保留了所有的修订。
发布于 2014-03-04 06:58:27
我有一些类似的东西:
$ ./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分支。目前,这只是一个概念上的证明。但如果有兴趣的话...
https://stackoverflow.com/questions/22156253
复制相似问题