并行阶段的最佳方式?
我想并行处理文件并同时提交到不同的分支。
将同时进行多次访问。 repo.Index.Stage / repo.Commit API在同一个当前目录下工作,所以我认为这是不可能的。
你们能给我一些关于如何实现这一目标的提示吗? 一般的想法?
从可行性的角度来看,我可以想到两种不同的选择:
将“并行阶段文件”视为约束
git用语中的“staging”一词意味着使用索引。
为了并行放入文件,可以打开许多存储库实例,每个实例都接受一对不同的工作目录/索引。 所有这些都在同一个对象数据库中创建对象。
这可以通过Repository
构造函数的可选RepositoryOptions
参数来实现。
看到这个测试 ,以便第一眼看到这是如何实现的。
替代提案,准系统版
另一种选择是不使用索引并直接在对象数据库中创建对象。 然而,这意味着什么都不会“上演”,并且必须手工创建Blob,Trees和Commits。
较低级别的API允许这种操作。 这个API甚至允许一个人对裸存储库“提交” 。
有关如何实现此目的的更多信息,请参阅ObjectDatabaseFixture和TreeDefinitionFixture测试套件。
此API仅在数据库中创建对象。 您必须自己更新分支的提示。 这可以通过Repo.Refs.Add()
和Repo.Refs.UpdateTarget()
方法实现。