2016-12-09 55 views
6

我們的軟件是模塊化的,在一個項目中我有大約20個git回購。git-bisect,但是對於N repos

如果測試失敗,有時很難找到匹配的提交,因爲幾個開發人員在這20個回購站上工作。

我知道測試昨天工作,今天無法reproachable。

有時我使用git-bisec,但是這隻適用於一個git回購。

經常在兩個git回購的變化使測試失敗。

我可以寫一個骯髒的腳本遍歷我ñ的git回購自己,但這樣做之前,我想知道專家如何解決這個問題。

我使用Python,Django和pytest,但AFAIK這個問題並不重要。

+0

可能的重複http://stackoverflow.com/questions/9711592/repo-bisect-for-debugging-android – Phillip

+4

@ Phillip的鏈接看起來很棒,但讓我只是說「這就是爲什麼你使用子模塊,這幾乎就是子模塊的要點:記錄哪些提交從多個基地構建項目。 「 – jthill

+0

嘗試手動縮小搜索範圍:找到複雜應用程序正常運行的時刻,然後崩潰它是否可以在整行中創建整個提交列表並認爲它? –

回答

3

我個人比較喜歡用repo tool來管理複雜的項目。將這20個倉庫置於manifest.xml中,每次構建開始時,如果構建失敗,則創建修補程序清單,然後執行repo diff清單以查看更改內容和位置。

+0

回購工具看起來很酷。它也適用於非Android項目嗎?我們在一個Django應用程序上工作。 – guettli

+0

是的,存儲庫是基於.git –

2

有「逆向依賴」CI構建的QA工具的類別。因此,每當進行較低級別的更改時,您的較高級別項目都會得到重建。規模可以是資源密集型的。

,如果停止處理回購對回購的關係,並開始下的子版本發佈方法,整個類的問題被刪除。然後,您可以跟蹤較低級別依賴關係的版本,並知道何時升級它。如果您想將系統化,您的CI可以針對多個版本的依賴關係進行構建。

Git的子模塊實現這一目標跟蹤單個的提交,所以你再能決定時納入從較低水平的變化。 (值得注意的是,如果你只是更新到標籤發佈提交,也可以像發佈版本一樣使用。)

+0

這種類型的「逆向依賴」CI構建的QA工具的哪個工具是你使用的? – guettli

+0

我目前的商店以前在我們的舊CI服務器上用Jenkins腳本編寫過。 –

+0

我們已經使用Jenkins。它從我們(全部來自master(agile))抽取N repos並嘗試測試特定項目。一個項目非常小,主要是配置,只有幾條編碼線。你現在用什麼工具? – guettli