我正在使用SVN,並有一個穩定的生產分支和不穩定的主幹。 對於每個版本,我們都會從樹幹中挑選要合併到生產中的物品。可以Git SVN工作svn mergeinfo - 顯示合格的
我用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
慢。
如果你已經有SHA並且不想調用'git svn find-rev',你可以嘗試從提交消息中挖掘svn修訂版本,通常由git-svn添加,例如, 'git cherry prod master |剪下-d''-f2 |同時讀取-r行;做git show -s --format = format:「%b」「$ line」| grep git-svn-id;完成;' – 2014-12-13 17:28:16