2012-03-02 91 views
5

我正在尋找不特定於Java或任何其他語言的依賴關係管理工具。是否有任何非語言特定的良好依賴管理工具?

我們使用SystemVerilog,一種硬件描述語言來創建獨立模塊。我們在各個里程碑處標記這些模塊的發佈。更高級別的設計經常使用Subversion標籤吸引其他模塊。

我們試圖使用Subversion externals來自動化事物,所以當你簽出一個模塊時,你也會得到它的依賴關係。但是當你進入系統級別時,有太多的嵌套外部代碼需要花費一個小時來運行svn update。很明顯,這種方法無效。

基本上,我希望能夠說,「我的模塊依賴於此版本的模塊A,此版本的模塊B和此版本的模塊C.」該工具將完成檢查依賴關係,檢查依賴關係的依賴關係以及確保沒有衝突依賴關係(例如同一模塊的兩個版本)的工作。

是否有任何工具可以很好地處理任意語言和Subversion?

回答

0

我不覺得你正在描述的依賴關係跟蹤的痛苦,這意味着我可能不完全理解你的問題。

一種方法是將所有版本的模塊保存在同一個庫中的單獨文件中。例如,您可以使用adder_0_0.sv作爲完整加法器HDL模塊的第一個版本,該模塊將描述名爲adder_0的模塊。如果在模塊中發現錯誤,則可以創建一個名爲adder_0_1.sv的文件,該文件也描述了adder_0。您將可以使用adder_0_1.sv而不是adder_0_0.sv。如果要更改接口(通過添加或刪除端口或更改端口的語義),則可以創建一個名爲adder_1_0.sv的文件,描述名爲adder_1的模塊。請注意0​​和adder_1不能可互換使用。

這種方法背後的理念是所有這些文件都是一次寫入。你只是不斷添加新的文件到你的庫中。任何使用這個庫的項目都會檢查整個庫並使用他們想要的任何文件。依賴性管理只需將正確的文件名放在正確的項目描述文件中,無論您使用哪種模擬或綜合工具。不需要特殊的依賴管理工具。您擁有的獨立庫越少,管理它們就越容易。

0

一旦我有一個工具在兩個地方查找源文件。首先,它查看本地目錄。其次,它在共享的「主」區域中查看,只讀目錄中檢出所有代碼供所有人使用。如果我需要修改代碼,我只檢出了我需要的模塊。然後,腳本會從我的本地工作區中選取該模塊。它從主區域讀取的其餘代碼。這是所有自定義腳本,沒有現成的工具,但它並不難。

如果你得到這個工作,你可能會進一步將主區號編譯成共享的主庫。這實際上可以加快編譯時間。

相關問題