我有几个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将被合并和缩小(类似于编译),并生成不同的Javascript文件名,存储在_master-proj/js目录中;在最后一步中,_master-proj将被编译以部署到服务器上。
现在,关于我想用hg设置这个的方式,我想能够从它们自己的基线仓库中克隆主项目及其子项目到客户端的工作副本中,以便可以向特定客户的工作副本添加模块(使用hg)。
此外,当我对某个客户的工作副本进行更改/修复错误时,我希望能够选择性地将更改/bug修复推回主项目/子项目的基线存储库,以便最终将更改/修复拉入其他可能包含需要修复的相同错误的客户工作副本中。
通过这种方式,我将能够在不同的客户之间使用相同的错误修复。
然而……我不确定使用hg和Eclipse完成此操作的最佳方法是什么。
我在这里阅读到可以使用hg的Convert Extension使用
--filemap
选项将子目录拆分为单独的项目。但是,我仍然有些困惑,是否最好使用Convert Extension或者将每个模块放在自己的存储库中,并将它们检出到每个客户端的单个工作区中。