2014-11-21 90 views
2

我在做什麼:測試來自github的請求。我想在本地合併pull請求到master並對結果運行一些測試。由於存儲庫非常龐大,我做了一個淺層克隆。如何獲取足夠的提交在淺層克隆中進行合併

爲了能夠進行合併,我提取了越來越多的提交(git fetch,並增加--depth),直到我在merge-commit之間掌握拉取請求。

但是,它不是每次都有效。它看起來像我不僅需要合併基礎,而且還需要在master..merge_base範圍內的每個提交。但我不知道該怎麼做。

所以,問題是:我如何獲取足夠的歷史記錄來進行合併?

回答

0

你需要(我認爲),以catch-22的方式,是'git describe --all --first-parent'來告訴你來自適當分支的給定提交的深度。然而,我不確定如何從Github中獲取這些信息,然後再進行淺取;-)

+0

即使在這種情況下,提交的深度也是使用從主服務器到提交服務的最短路徑計算的,但是我似乎)需要master和merge_base之間的所有提交,這可能比merge_base更深。 – madjar 2014-11-21 16:45:31

+0

啊,是的,我沒有想到merge_base(而不是最短路徑)的完整遍歷。如果你有一個合併循環,有很多小的提交,深度可能很大。不幸的是,淺取僅受限於計數的深度,而不是任何其他方案。無論如何,我仍然不確定如何確定深度! – 2014-11-21 22:22:50