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