我正在为Plastic SCM / Git写一个快速导出/快速导入套件,我发现了一些问题。
当我从documentation阅读时:
此设计允许前端程序 处理无限数量的 分支同时产生 按顺序提交 可从源数据
获得
但是,实现“导出器”后,我发现您无法引用尚未创建的提交。例如,假设您首先引入合并的提交目的地而不是源,那么您只需在那里引用源,但它根本不起作用。
因此,据我所知,句子“按照源代码可用的顺序生成提交”是完全错误的,git fast-import确实需要按顺序提供提交,并且引用只能存在于引入的对象中BEFORE。
这是对的吗?
感谢。
答案 0 :(得分:1)
是的,git-fast-import
需要按照从最旧到最新的顺序查看每个分支的提交。您从文档中引用的声明有些含糊不清,因为“它们从源数据中可用的顺序”实际上必须增加每个分支的时间顺序。
我认为该声明意味着您不必按严格的时间顺序呈现所有分支中的所有提交。相反,就像正常使用Git一样,必须在创建所有祖先之后创建每个提交。
这种方法在如何导入提交方面仍然具有一定的灵活性。我写了一个导入器(用于旧的专有源控制系统),它分别处理每个分支的整体(从最旧到最新,当然)。 Git匹配不同分支之间的共同祖先,并且制作了一个很好的合理层次树,因为每个分支中共同祖先的SHA1哈希是相同的。