我正在为塑料SCM/Git编写一个快速导出/快速导入套件,并发现了一些问题。
正如我从文档上读到的
此设计允许前端程序同时处理无限数量的分支,按照源数据中可用的顺序生成提交。
但是,实现“导出”,我发现您不能引用尚未创建的提交。例如,假设您首先引入合并的提交目标而不是源,然后简单地在那里引用源,但它根本不起作用。
因此,据我所知,“按从源获取提交的顺序生成提交”这句话是错误的,git快速导入确实需要按顺序提供提交,而且引用只能存在于前面引入的对象。
这是正确的吗?
谢谢。
发布于 2011-05-18 22:00:31
是的,git-fast-import需要查看每个分支的提交,以便从最早的到最新的。您从文档中引用的语句有点含糊不清,因为“从源数据中获得它们的顺序”实际上必须增加每个分支的时间顺序。
我认为该声明意味着您不必以严格的时间顺序显示所有分支的所有提交。相反,就像正常使用Git一样,每个提交都必须在创建所有祖先之后创建。
这种方法在如何导入提交时仍然留有一定的灵活性。我编写了一个导入程序(用于一个旧的专有源代码管理系统),它分别处理每个分支的全部(当然,从最老的到最新的)。由于每个分支的SHA1哈希值相同,Git将不同分支间的共同祖先匹配起来,形成了一个很好的合理的层次树。
https://stackoverflow.com/questions/4804682
复制相似问题