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