私はいくつかの異なるクライアントのためにいくつかのANTプロジェクトを持っています。プロジェクトのディレクトリ構造は次のようになります。
L___standard_workspace
L___.hg
L___validation_commons-sub-proj <- JS Library/Module
| L___java
| | L___jar
| L___old_stuff
| L___src
| | L___css
| | L___js
| | L___validation_commons
| L___src-test
| L___js
L___v_file_attachment-sub-proj <- JS Library/Module
| L___java
| | L___jar
| L___src
| | L___css
| | L___js
| L___src-test
| L___js
L___z_business_logic-sub-proj <- JS Library/Module
| L___java
| | L___jar
| L___src
| L___css
| L___js
L____master-proj <- Master web-deployment module where js libraries are compiled to.
L___docs
L___java
| L___jar
| L___src
| L___AntTasks
| L___build
| | L___classes
| | L___com
| | L___company
| L___dist
| L___nbproject
| | L___private
| L___src
| L___com
| L___company
L___remoteConfig
L___src
| L___css
| | L___blueprint
| | | L___plugins
| | | | L___buttons
| | | | | L___icons
| | | | L___fancy-type
| | | | L___link-icons
| | | | | L___icons
| | | | L___rtl
| | | L___src
| | L___jsmvc
| L___img
| | L___background-shadows
| | L___banners
| | L___menu
| L___js
| | L___approve
| | L___cart
| | L___confirm
| | L___history
| | L___jsmvc
| | L___mixed
| | L___office
| L___stylesheets
| L___swf
L___src-standard
作業コピー内で、モジュールはサブプロジェクトをマスタープロジェクトのJavascriptディレクトリに配置される単一のJavascriptファイルにコンパイルします。
たとえば、ディレクトリ:
validation_commons-sub-proj
v_file_attachment-sub-proj
z_business_logic-sub-proj
_master-proj/js
...すべてが結合され、ディレクトリ内の別のJavascriptファイル名に縮小されます(コンパイルされたようなものです) 。そして最後のステップで_master-proj
、サーバーにデプロイされるようにコンパイルされます。
これをhgで設定する方法に関して、私が実行できるようにしたいのは、マスタープロジェクトとそのサブプロジェクトを独自のベースラインリポジトリからクライアントの作業コピーに複製することです。 、モジュールを(hgを使用して)特定の顧客の作業コピーに追加できるようにします。
ただし、1人の顧客の作業コピーに変更を加えたりバグを修正したりする場合は、オプションで変更/バグ修正をマスタープロジェクト/サブプロジェクトのベースラインリポジトリにプッシュして戻すことができます。最終的には、修正が必要な同じバグが含まれている可能性のある他の顧客の作業コピーに変更/修正をプルします。
このようにして、異なるクライアント間で同じバグ修正を利用できるようになります。
しかし...私はhgとEclipseを使用してこれを行うための最良の方法がわかりません。
ここで、hgのConvert Extensionを使用して、オプションを使用してサブディレクトリを別のプロジェクトに分割できることを読みました。--filemap
ただし、 Convert Extensionを使用する方がよいのか、それとも各モジュールを独自のリポジトリに格納して、クライアントごとに1つのワークスペースにチェックアウトする方がよいのかについてはまだ少し混乱しています。 。