我正在使用 SVN,并且有一个稳定的生产分支和一个不稳定的主干。对于每个版本,我们都会从主干中挑选要合并到生产中的项目。
我已经用 git svn 克隆了我的 SVN 存储库,这样我就可以利用更快的搜索来搜索我需要合并的提交(因为我在提交消息中搜索 JIRA id)。但是,我仍然在它的末尾使用 svn merge 进行合并。
这个长期存在的生产分支的问题之一是主干中可能存在未合并的提交。
为了解决这个问题,我偶尔会运行:
svn mergeinfo --show-revs eligible https://my.server/svn/trunk https://my.server/svn/branches/PROD_V3.00
但是,这真的很慢。git中的等价物是
git log prod..master
但是,这似乎只是列出了所有提交。
这是因为 git 无法识别 svn 合并和 svn:mergeinfo 属性吗?
有什么方法可以让我使用 git 快速获得符合条件的提交?
编辑:
我尝试了乔斯的回答,但是,git cherry
只输出 SHA,我需要 SVN 修订版来进行合并。因此,我不得不通过管道git svn find-rev
找到 SVN id 来获得我需要的东西。
git cherry prod master|cut -d' ' -f2|while read -r line; do git svn find-rev "$line"; done;
不幸的是,这比svn mergeinfo --show-revs eligible
.