2012-03-02 4 views
5

私は、Javaや他の言語に固有の依存関係管理ツールを探しています。言語固有ではない優れた依存関係管理ツールはありますか?

ハードウェア記述言語であるSystemVerilogを使用して、スタンドアロンモジュールを作成します。これらのモジュールのリリースにはさまざまなマイルストーンでタグを付けます。より高いレベルの設計では、Subversionタグを使用して他のモジュールを頻繁に取得します。

私たちは物事を自動化するためにSubversionの外部関数を使用しようとしました。そのため、モジュールをチェックアウトすると依存関係も取得されます。しかし、あなたがシステムレベルになるときには、svn updateを実行するのに1時間ほどかかるネストされた外部がたくさんあります。明らかにそのアプローチは機能していません。

基本的には、「私のモジュールは、このバージョンのモジュールA、このバージョンのモジュールB、およびこのバージョンのモジュールCに依存しています。このツールは、依存関係をチェックアウトし、依存関係の依存関係をチェックし、矛盾する依存関係がないことを確認する作業を行う(例えば、同じモジュールの2つのバージョン)。

任意の言語とSubversionでうまく動作するツールはありますか?

答えて

0

私はあなたが記述している依存関係追跡の苦痛を感じていないので、あなたの問題を完全に理解していない可能性があります。

1つの方法は、すべてのバージョンのモジュールを同じライブラリの別々のファイルに保存することです。たとえば、adder_0というモジュールを表すフルアダーHDLモジュールの最初のバージョンには、adder_0_0.svを設定できます。モジュールでバグが見つかった場合はadder_0と記載されているadder_0_1.svというファイルを作成できます。 adder_0_0.svの代わりにadder_0_1.svを使用することができます。ポートを追加または削除するか、ポートのセマンティクスを変更することによって、インターフェイスを変更する場合は、adder_1というモジュールを記述するadder_1_0.svというファイルを作成できます。 adder_0およびadder_1は、を互換的に使用できないことに注意してください。

このアプローチの背後にある理念は、これらのファイルのすべてがと書かれていることです。です。ライブラリに新しいファイルを追加し続けるだけです。このライブラリを使用するプロジェクトは、ライブラリ全体をチェックアウトし、必要なファイルを使用します。依存関係管理は、使用するシミュレーションツールや合成ツールの適切なプロジェクト記述ファイルに正しいファイル名を入れることと同じくらい複雑です。特別な依存関係管理ツールは必要ありません。別々のライブラリが少ないほど、管理しやすくなります。

0

私はいったん2つの場所でソースファイルを探すツールフローがあった。まず、ローカルディレクトリを調べました。次に、共有された「マスタ」領域を参照し、読み取り専用のディレクトリで、すべてのコードをすべての人が使用するためにチェックアウトしました。コードを修正する必要がある場合は、必要なモジュールだけをチェックアウトしました。次に、スクリプトはローカルワークスペースからそのモジュールを取得します。マスターエリアから読み込んだコードの残りの部分。これはすべてカスタムスクリプトであり、シェルフツールではありませんでしたが、それほど難しくありませんでした。

これを実行すると、マスターエリアコードを共有しているマスターライブラリにコンパイルすることができます。これは本当にコンパイル時間を短縮します。

関連する問題