2012-03-14 54 views
4

git bisect通過計算'good'和'bad'之間的提交次數並檢查中間的更改來工作。不幸的是,這對於回購並不適用,因爲一個項目(例如框架)可能會在早期發生很多變化,而另一個項目(例如內核)可能會有一堆以後的更改,因此「repo forall -c」git bisect .. 「'可以讓一個項目在比另一個更早的狀態下籤出。repo'bisect'用於調試Android?

我的問題是,是否有辦法讓git-bisect根據提交的日期選擇提交,所以當跨項目完成時,我們很可能會處於乾淨編譯狀態。

回答

5

git bisect不適用於同時在多個存儲庫中使用。

你可能會更好地編寫自己的腳本,它在每個日期範圍內實現基本的二分算法,並在每個存儲庫中使用git rev-list -n1 --before <DATEVALUE>來獲取git提交,以檢出與腳本當前分裂的日期相對應的值。

下面是我爲另一個目的而編寫的示例二等分腳本。請注意,它是而不是專爲您的情況而設計;它只是實現二分法的例子:

https://gist.github.com/2040290

+0

嗯,看起來像一個可行的解決方案。對於這個特殊的錯誤,這是不值得花時間的,但我認爲我應該在停機時間處理它。謝謝:) – Grazfather 2012-03-14 23:11:44

+0

要考慮的另一件事是每個單獨組件可能獨立於與總分配合並(即在同一天進行的更改可能永遠不會構建在一起)進行獨立更新。我懷疑你會更好地跟蹤失敗的組件,並專注於平分它。 – stsquad 2012-03-16 13:27:11