Eri*_*fer 11 git import version-control mks mks-integrity
我只需要源树及其历史.我现在不关心要求/问题.我在命令行中玩了一下,以确定我是否可以获得主干和一些开发路径的更改包列表.我认为应该可以为每个更改包提取一个diff,并使用它来重放自git中第一次提交以来的所有更改.像这样的东西:
您还可以使用检查点补充更改包(对我来说已经足够了).
一种更简单的方法是只签出CP并添加/提交给git.但是你会忘记添加,删除,移动和重命名操作.
有谁知道如何从"si diff"获得统一的差异?那已经有很多帮助了.
有任何想法吗?
Edit2:
添加了一个答案,显示我实际上是如何进行迁移的......
Eri*_*fer 10
我不能发布我写的实际程序,因为我没有按照自己的时间去做.但是,我可以发布我是如何做到的.使用任何脚本语言重做它应该很容易.我编写的工具一次只迁移一个分支.我会告诉它我想要哪个分支(例如1.21.1)以及分支中的起始和结束修订(例如4和78会将所有修订从1.21.1.4迁移到1.21.1.78).要将所有分支放在一个repo中,我将提供用于导入的.git目录.
完成.
MKS对其字符串使用某种ASCII编码,而git通常使用UTF-8,因此在将元数据导入git(用户名,注释,标签等)时要注意问题.
对于更多的分支这样做:
还有一件事:"si"是MKS命令行工具.因此,您需要指定其完整路径或将其路径放入搜索路径.
MKS Integrity的问题在于它们所有存在的独特存储库:
由于这些数据可以按照自己的进度独立发展,因此在一个Git存储库中导入它们将是一个坏主意:您只能克隆Git存储库的所有内容(即使您可以限制该克隆的深度) ).
这意味着即使您只对代码感兴趣,也会获得所有文档.
MKS Integrity导出意味着首先定义许多Git存储库作为子模块.
我只需要源树及其历史.
像往常一样,我建议只导入:
我不会在一个 Git存储库中导入所有内容,除非您确信所有源代表一个开发为全部的系统(而不是几个独立开发的"模块")
一种更简单的方法是只签出CP并添加/提交给git.
这将是继续进行的方式.
但是你会忘记添加,删除,移动和重命名操作.
没有!你不会!Git将推断这些操作.
这是作为文件Content VCS的优势.
小智 6
FWIW,si diff遗憾地目前不支持统一差异.有一个要求进行更改的请求,但是还没有太多客户要求该功能.
免责声明:我为PTC(谁收购了MKS)工作.