2009-04-16 8 views
4

私の会社には、カスタムMVCフレームワーク、ユーティリティクラス、JavaScriptライブラリなど、多くの共通コードを使用する2つまたは3つのWebアプリケーションがあります。共通のコードを持つ複数のアプリ - これにアプローチする方法

私たちは、いくつかのわずかに異なるバージョンの使用に終わるので、各アプリケーションでこのコードをすべて複製したくないと思います。しかし、私たちはあるアプリケーションのアップデートが別のアプリケーションを潜在的に破壊することを望まないので、このコードの同じ正確なコピーをアプリケーションが必要としないようにします。

この問題に対処するヒントはありますか?私は技術的な答えを探しているとは思わない - もっと一般的なアプローチ。

コードをライブラリにして、アップグレードする準備が整うまでアプリを古いバージョンのライブラリに残すことができます。あるいは、複数のライブラリにすることができるので、すべてを一度にアップグレードする必要はありません。しかし、ライブラリのバージョン間の相互依存性を管理することは困難になるでしょうか?

答えて

5

私はsvn:externalsでSVNを使用します。あなたが安定したいものはタグフォルダになければならないので、依存するプロジェクトはトランクの他の開発の影響を受けません。

+1

+1からsvn:externals。彼らはこれを行う最も効率的な方法であり、簡単です。 –

+1

私はTortoiseSVNのためにこれについての素晴らしいチュートリアルを見つけました:http://justaddwater.dk/2007/10/23/setting-up-subversion-externals-with-tortoisesvn/ –

0

さまざまな要因によって異なります。異なる言語は、ライブラリに関して異なる動作をします。私が一般的にこれを処理する方法は、各アプリケーションに、私が書いたライブラリを含む外部依存関係のテストのバッテリーを持ち、これを使ってライブラリをアップグレードしてアプリケーションを破壊しないようにすることです。

使用しているプラ​​ットフォームに関する詳細はありますか?あなたの特定のニーズに役立つ特別なツールがあるかもしれません。

+0

私たちはCVSでPHPを使用していますSVNに)。しかし、具体的なツールではなく、コードを管理するアプローチについてより詳しく知りたいと思っています。ユニットテストに関する良い点。 –

0

SVNにsvn:externalsを付けて2番目の文字列です。私たちには、いくつかのコードを共有するクライアントとサーバーがあります。コードはサーバの下で管理されます(ただし、独自のリポジトリに移動することができます)。クライアントはsvn:externalsを使用してコードを取得します。クライアントトランクはサーバトランクからプルします。しかし、私たちが分岐すると(リリースのために)、特定のrev、branch、またはtagで外部に引っ張られます。もしあなたがそれをしておらず、古いブランチに戻って更新すれば、共有コードのトランクを得ることができます。

0

最新バージョンと最高バージョンを表す共通コード用のソースコントロールブランチを1つ作成します。

各プロジェクトごとに、必要な場所で迅速に修正したり、リリースに近いときに安定性を持たせる独自の独立したブランチがあります。

共有コードの他のユーザーが認識しているので、余暇にそれを修正する時間を得るために、共通コードで見つかったバグが一覧表示されます。

Gitは、 'master'ブランチに変更をマージするのがうまくいくので、うまくいくはずです。

関連する問題