使用 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') )"

這會跳過所有不接觸目錄 foobar 的修訂版。