使用 bisect 命令查詢錯誤
bisect
命令可幫助你跟蹤引入錯誤的變更集。
-
重置 bisect 狀態並將當前版本標記為錯誤(它包含錯誤!)
hg bisect --reset hg bisect --bad
-
回到你認為錯誤不存在的地步
hg update -r -200
-
現在你要測試軟體,如果你的假設是正確的(錯誤不存在),請將修訂標記為良好:
hg bisect --good
測試變更集 800:12ab34cd56ef(剩餘 x 更改集,~y 測試)
-
Mercurial 更新當前版本(介於壞的和好的變更集之間的中間位置)
-
再次測試軟體並適當標記當前版本。例如
hg bisect --good
測試變更集 900:21ba43dc65fe(x 更改集剩餘,~y 測試)
-
…
-
繼續,直到 Mercurial 將搜尋範圍縮小到單個變更集:
hg bisect --bad
第一個糟糕的修訂是:
變更集:987:1234bad99889
使用者:John Doe ____@gmail.com
日期:2016 年 7 月 28 日 16:00:00
hg bisect
命令使用其對專案修訂歷史的瞭解,按時間與要檢查的變更集數量的對數進行搜尋,並且在處理分支,合併或多個頭時沒有問題。
有時你會知道有罪的檔案,你可以給 Mercurial 一個提示:
hg bisect --skip "!( file('path:foo') & file('path:bar') )"
這會跳過所有不接觸目錄 foo
或 bar
的修訂版。