并行阶段的最佳方法?
作者:互联网
我想并行暂存文件并同时提交到不同的分支.
同时将有多个访问权限. repo.Index.Stage / repo.Commit API在同一当前目录上工作,所以我认为这是不可能的.
你们能给我一些如何实现的提示吗?一个一般的想法?
解决方法:
从可行性角度来看,我可以想到两种不同的选择:
将“并行阶段文件”视为约束
git术语中的“ staging”一词暗指使用索引.
为了并行暂存文件,可以打开许多存储库实例,每个存储库实例接受不同的一对工作目录/索引.它们都在同一个对象数据库中创建对象.
这可以通过Repository构造函数的可选RepositoryOptions参数来实现.
请看此this test,以初步了解如何实现.
替代方案,准系统版
另一种选择是不使用索引并直接在对象数据库中创建对象.但是,这意味着不会“上演”任何内容,并且必须手动创建Blob,Trees和Commits.
较低级别的API允许此类操作.此API甚至允许人们针对裸仓库“提交”.
有关如何实现此目的的更多信息,请参见ObjectDatabaseFixture和TreeDefinitionFixture测试套件.
该API仅在数据库中创建对象.您将必须自己更新分支的尖端.这要归功于Repo.Refs.Add()和Repo.Refs.UpdateTarget()方法.
标签:libgit2sharp,libgit2,c 来源: https://codeday.me/bug/20191031/1971941.html