我有几个针对不同客户的 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)到特定客户的工作副本中。
但是,此外,当我确实对一位客户的工作副本中的错误进行了一些更改/修复时,我希望能够选择性地将更改/错误修复推送回主项目/子项目的基线存储库,以达到以下目的最终将更改/修复拉到其他客户的工作副本中,这些副本可能包含需要修复的相同错误。
通过这种方式,我将能够在不同的客户端上使用相同的错误修复。
但是...我不确定使用 hg 和 Eclipse 执行此操作的最佳方法。
我在这里读到,您可以使用 hg 的Convert Extension选项将子目录拆分为单独的项目--filemap
。
但是,对于使用Convert Extension是否会更好,或者将每个模块存放在自己的存储库中并将它们签出到每个客户端的单个工作区中是否会更好,我仍然有点困惑.