2015-07-20 50 views
0

給定一個特定的引用(本例中是一個標籤),如何列出包含該提交的分支在git2go?類似於git branch --contains <commit>如何列出在git2go(libgit2)中包含給定提交的分支?

+0

我不知道那個庫,但你可能正在尋找一些大致相當的東西; foreach分支'git log | grep提交'。由於它全部在代碼中,可以列出分支,爲每個分支獲取日誌,在commit guid上做一個string.contains。 – evanmcdonnal

回答

1

這裏的問題,圖形方式是「我怎麼知道A是B的祖先?」 (對於你想成爲B的每個分支重複幾次)。要回答這個問題的唯一方法就是沿着從B開始的歷史記錄圖並檢查是否找到A.

您可以用幾種方法做到這一點,但最有效的方法通常是將問題簡化爲相當於「A是A和B的合併基礎?」。你可以通過Repository.MergeBase()在git2go中提出這個問題。這將返回您提交的兩個提交之間的最佳合併基礎。在您希望其中一個提交爲合併基礎的情況下,即使它將答案縮減到一個合併基數,也應始終提供正確的答案。

相關問題