3

我想并行暂存文件并同时提交到不同的分支。

同时会有多个访问。repo.Index.Stage/repo.Commit API 在同一个当前目录上工作,所以我认为这是不可能的。

你们能给我一些关于如何实现这一目标的提示吗?一个普遍的想法?

4

1 回答 1

4

从可行性的角度来看,我可以想到两种不同的选择:

将“并行阶段文件”视为约束

git 用语中的“分段”一词意味着使用索引。

为了并行暂存文件,可以打开许多存储库实例,每个实例都接受一对不同的工作目录/索引。他们都在同一个对象数据库中创建对象。

这可以通过构造函数的可选RepositoryOptions参数来实现Repository

请参阅此测试,以便初步了解这是如何实现的。

备用提案,准系统版

另一种选择是使用索引并直接在对象数据库中创建对象。但是,这意味着不会“暂存”任何内容,并且必须手动创建 Blob、Trees 和 Commits。

较低级别的 API 允许进行此类操作。这个 API 甚至允许一个人对一个裸存储库“提交” 。

有关如何实现这一点的更多信息,请参阅ObjectDatabaseFixtureTreeDefinitionFixture测试套件。

此 API 只会在数据库中创建对象。您必须自己更新分支的尖端。这可以通过Repo.Refs.Add()Repo.Refs.UpdateTarget()方法来实现。

于 2013-04-26T19:55:49.533 回答