如何将git log --cherry-pick并行化?

qvk1mo1f  于 2023-05-05  发布在  Git
关注(0)|答案(1)|浏览(146)

我继承了一些使用git log --no-merges --right-only --cherry-pick --since='2 months ago' some_tag..origin/master -- path1, path2, ...作为初始步骤来确定some_tag中缺少的提交的代码。主要的问题是它的速度很慢,而且没有状态。
我可以使用git log git log --since='2 months ago' origin/master -- path1, path2, ...在指定的时间内获取所有为这些路径添加的提交,这很快。然后我想生成多个线程,然后分别检查提交,但我不确定对于单个提交的等效效果是什么。也许生成一个补丁文件并使用git apply --checkgit apply --reverse --check,但我不确定这是否等效。
或者有更直接的方法可以做到这一点?

sr4lhrrt

sr4lhrrt1#

您可以对每个提交的补丁调用git patch-id(并行),然后比较哪些提交在两端具有相同的patch-id。
我们并不完全清楚你是想移植完整的提交(在这种情况下,你应该在完整的diff上计算patch-id),还是只在特定的文件子集上(在这种情况下,你可以将输入diff限制为只在该路径集上)

相关问题