0

我正在写一个从 Git 到 Plastic SCM 的导入程序,我发现了一个我不知道的案例:

M 100644 :31624 activesupport/lib/active_support/core_ext/array/conversions.rb
M 100644 :31625 activesupport/lib/active_support/vendor.rb
M 160000 70ab0f3cc5921cc67e09741939a08b2582d707cb activesupport/lib/active_support/vendor/i18n-0.0.1

如您所见,最后一个元素(通过 Git 存储库本身的快速导出功能导出)进入一个 blob 而不是标记。为什么会这样?有没有办法“强制”所有对象作为标记导出?

谢谢

4

1 回答 1

2

在 git 树中,文件模式1600000表示一个条目,activesupport/lib/active_support/vendor/i18n-0.0.1在这种情况下,是一个子模块。子模块存储在树中,作为子模块应该在的提交的对象名称(即 SHA1sum),这就是您在输出中看到的值。fast-export输出的内容足以fast-import重建树,以便git submodule update --init在新存储库中初始化子模块并将其更新为正确的版本。恐怕我不确定您的 traget SCM 中是否有与 git 的子模块等效的概念。

于 2011-01-28T10:21:42.287 回答