2016-10-13 48 views
3

我在工作時間使用的darcs了一年多了,但我一直在問自己同樣的問題:追查依賴

什麼是跟蹤代碼行/文件/更改代碼的最佳方式導致兩個補丁之間的依賴關係?現在我做的方式,這是如下:

  1. 我檢查哪些文件的兩個補丁影響使用darcs changes -i並鍵入x了相應的補丁。

  2. 我檢查哪些文件受到這兩個補丁的影響。

  3. 我猜是哪個文件導致了依賴關係,並且通過使用darcs amend --unrecord我從這兩個補丁中刪除了對該文件的更改。

  4. 我檢查依賴項是否已解決,並將修改添加回修補程序,同時不斷檢查是否重新生成了依賴關係,從而跟蹤導致依賴關係的代碼部分。

這種查找導致依賴性的代碼行/文件的試驗和錯誤技術花費了大量的時間。必須有一個更簡單的方法來做到這一點,我錯過了什麼?提前致謝!

回答

1

的darcs顯示依賴

開始的darcs 2.12(release notes) 可以生成與命令

darcs show dependencies 

注意,我建議用棧安裝的darcs如發行說明。


顯示輸出

該命令產生的graphviz的點格式的依賴關係圖。 你必須照顧自己顯示的輸出(沒有意外)。

一個簡單的方法是將管道輸出直接進入dot,有它創建(例如一個使用Tpng PNG),然後通過管道將進入顯示@ ImageMagick的一些輸出:

darcs show dependencies --last 20 | head -n -1 | dot -Tpng | display 

或者你可以寫的東西到一個文件,並用了Evince或任何瀏覽器打開它,你喜歡:

darcs show dependencies --last 20 | head -n -1 | dot -Tpdf > darcs-dependencies.pdf && xdg-open darcs-dependencies.pdf 

圖形界面:

我已經寫了一個gui,它自動化了這個過程並且做了一些顏色編碼。

show dependencies dialogue colored sample output

,你可以在這裏找到:iHateDarcs on github

(免責聲明/警告:我目前是GUI的唯一用戶它是高度定製我的工作流程,包括很多其他的東西。你可能並不感興趣,比如與redmine問題跟蹤器集成,需要一些設置工作才能運行,但還沒有經過任何不是我的測試)

+0

哇這麼好的答案 – Janosch