2

我正在为Plastic SCM /Git 编写一个快速导出/快速导入套件,但我发现了一些问题。

正如我从文档中读到的:

这种设计允许前端程序同时处理无限数量的分支,按照它们从源数据中可用的顺序生成提交

但是,实现“导出器”我发现您无法引用尚未创建的提交。例如,假设您首先引入合并的提交目标而不是源,然后您只需在此处引用源,但它根本不起作用。

因此,据我所知,“按照它们从源中可用的顺序生成提交”这句话是完全错误的,并且 git fast-import 确实需要按顺序提供提交,并且引用只能存在于之前引入的对象中。

这是对的吗?

谢谢。

4

1 回答 1

1

是的,git-fast-import需要按从最旧到最新的顺序查看每个分支的提交。您从文档中引用的声明有些模棱两可,因为“它们从源数据中可用的顺序”实际上必须是增加每个分支的时间顺序。

我认为该声明意味着您不必按照严格的时间顺序呈现所有分支中的所有提交。相反,就像正常使用 Git 一样,每个提交都必须在其所有祖先创建后创建。

这种方法仍然在如何导入提交方面留下了一些灵活性。我编写了一个导入器(用于旧的专有源代码控制系统),它分别处理每个分支的全部内容(当然,从最旧到最新)。Git 匹配了不同分支之间的共同祖先,并制作了一个很好的合理层次结构树,因为每个分支中共同祖先的 SHA1 哈希值是相同的。

于 2011-05-18T22:00:31.893 回答