我們正在擺脫我們的DEC Alpha工作站,並在OpenVMS代碼管理系統(CMS)下安裝了許多我們想要導入到在Linux上運行的GIT的歷史軟件。目前我們必須手工完成,而且需要很長時間才能完成。有誰知道會自動執行此過程的腳本?如何導出OpenVMS CMS歷史記錄並將其導入GIT
1
A
回答
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-git
: https://github.com/nomadbyte/cms-export
試過了效用,認爲此處舉報加起來更多的情況下,別人主體面臨這樣的任務。
這是一個DCL批處理,沒有太多關注,但文檔很有用。 讀取CMS,創建您傳輸的Git導入文件並創建目標Git回購。 將它轉換成一箇舊的CMS庫(我們有五個!)它有一點點小心, 需要ftp導出的文件爲二進制,顯然我們在lib中有一些二進制元素。
它幾代人出口,基本上每個人都成爲一個Git承諾。它還爲變體和類創建分支。我不知道我們在CMS中甚至有變體。無論如何,Git repo是可用的,我們計劃重新安排它以建立一個新的過程,但我們保留了所有的修訂。
相關問題
- 1. 如何將gdoc的修訂歷史記錄導出到git?
- 2. 在Firefox中導出Awesomebar歷史記錄
- 3. 從Bitbucket導入存儲歷史記錄?
- 4. 導出包含版本歷史記錄的git
- 5. 用歷史記錄導出Git中的子樹
- 6. 告訴git-blame使用導入的歷史記錄
- 7. Subversion項目歷史記錄沒有正確導入到Git
- 8. 錄製網址導航歷史記錄
- 9. 將git歷史記錄作爲數組
- 10. 如何導出mercurial中的評論歷史記錄?
- 11. 如何導出Windows計劃任務歷史記錄
- 12. 如何在Dynamics中導入歷史記錄?
- 13. 將TFS 2010歷史記錄導出到Excel或文本文件
- 14. Emacs導航位置歷史記錄
- 15. Angular2瀏覽器歷史記錄導航
- 16. 具有完整修訂歷史記錄的導出/導入內容mediawiki
- 17. 如何將現有的GIT項目導入SVN,保留主分支上的GIT歷史記錄?
- 18. 如何創建oracle過程以將數據導出到歷史記錄表中?
- 19. 如何從git-svn遷移到gitolite並保留歷史記錄
- 20. 如何線性化Git中的「分裂」合併歷史記錄?
- 21. TFS簽入歷史記錄
- 22. 將歷史記錄插入新表
- 23. GWT歷史記錄:歷史記號
- 24. 在導入分支的git中重新創建分支歷史記錄
- 25. 從SVN導入歷史記錄到Git - 更改提交者信息
- 26. SVN遷移到Git:只導入某些分支和歷史記錄
- 27. 使用反應導航將導航歷史記錄重置爲登錄屏幕
- 28. 如何導入外的樹git的歷史樹
- 29. 修復損壞的git歷史記錄
- 30. 從Git歷史記錄中刪除具有歷史記錄的特定文件
CMS有一個[API](http://h71000.www7.hp.com/doc/82final/decset/cms_call_routines_reference.pdf)。如果沒有更好的東西出現,你可以編寫一個應用程序來提取GIT可以處理的所有內容。 – HABO