【发布时间】:2011-02-20 13:42:07
【问题描述】:
我有几个针对不同客户的 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-projv_file_attachment-sub-projz_business_logic-sub-proj
...所有内容都被组合并缩小(有点像编译)成_master-proj/js目录中的不同Javascript文件名;在最后一步中,_master-proj 被编译以部署到服务器。
现在关于我想用 hg 设置它的方式,我想做的是将主项目及其子项目从他们自己的基线存储库克隆到客户的工作副本,以便可以将模块添加(使用 hg)到特定客户的工作副本中。
此外,当我对一位客户的工作副本中的错误进行一些更改/修复时,我希望能够选择性地将更改/错误修复推送回主项目/子项目的基线存储库,为了最终将更改/修复拉到其他客户的工作副本中,这些副本可能包含需要修复的相同错误。
通过这种方式,我将能够在不同的客户端上使用相同的错误修复。
但是...我不确定使用 hg 和 Eclipse 执行此操作的最佳方法。
我read here,您可以使用 hg 的 Convert Extension 使用 --filemap 选项将子目录拆分为单独的项目。
但是,我仍然有点困惑,是否使用 Convert Extension 会更好,或者是否将每个模块都存放在自己的存储库中并将它们签出到一个单独的存储库中会更好每个客户的工作区。
【问题讨论】:
-
我在这里试图解释/执行的动词是否有一个简短的名称?
-
我认为我对此感到困惑的另一个地方是我如何才能从他们各自的存储库中签出我需要的正确的特定模块,而不将整个东西包含在一个大存储库中?跨度>
-
我想我可能在这里找到了答案:mercurial.selenic.com/wiki/subrepos
标签: eclipse ant mercurial multi-module