2009-05-06 17 views
8

私はMercurialを個人的に使用していますが、SVNの代替としていくつかの分散プロジェクトで使用しています。Mercurial:共通/共有コードを管理する方法

私は自己完結型のプロジェクトでそれを使用することに慣れていますが、共有するためのさまざまなオプションがありますが、共通ライブラリの管理に関するガイダンスは、転覆の外見。

コードの最も明白な共有は、エラー処理とレポートです。すべてのプロジェクト(これはかなり進化しています)でこれをほぼ同じにしたいと考えています。コンパイルされたクラスとしてプルインするよりも、ソリューションごとにビルドされたプロジェクトの方が優れていることがわかっているユーティリティコード、コントロールライブラリなどもあります(これは、常に最新の状態に保たれるためです) 。

思考(私はオープンエンドの質問は嫌いですが、他の人が何をしているのか分かりたいと思っています)。

答えて

3

Mercurial 1.3には現在、依存関係を表現するために使用できるnested repository supportが含まれています。もう一つの選択肢は、ビルドシステムがivyやmavenのようなものを使って依存関係のダウンロードと追跡を処理できるようにすることですが、コンパイルされたコードを取り除くことに集中しています。

+0

私のために1.3になる(または少なくとも!) – Murph

0

Forest Extensionを使用すると、HGのsvn外部をエミュレートすることができます。

+0

おかげで、私がやってそれを読んでそのない正確に何を(見てみましょうしかしその理由で私はまだ十分読んでいませんでした...) – Murph

+3

Forrest Extensionは公式にはサポートされていませんでしたが、Mercurial 1.3のサブモジュールサポートによって完全に取り除かれました。 –

+3

それは私をダウンさせる理由thats?私が答えを書いた時、Mercurial 1.3はなかった。 *一口* – ismail

1

私はその質問をして以来、世界は変わりました。私が今使っている解決策は異なります。

簡単な答えは、reposをネストしてプロジェクトにソリューションを含めるのではなく、共通のコードを提供するためにパッケージ(具体的にはNuGetを.NETと同じように)を使用することです。

TeamCityを使用してNuGetパッケージに組み込まれた一般的なコードがあります。以前は、外部/外部にプロジェクトのソースを含めることができました。 (subreposの)「...限界を克服する」

関連する問題