lee*_*d00 7 eclipse ant mercurial multi-module
我为几个不同的客户提供了几个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
Run Code Online (Sandbox Code Playgroud)
在工作副本中,模块将子项目编译为单个Javascript文件,该文件位于主项目的Javascript目录中.
例如,目录:
validation_commons-sub-projv_file_attachment-sub-projz_business_logic-sub-proj...所有这些都被合并并缩小(有点像编译)到_master-proj/js目录中的不同Javascript文件名; 在最后一步中,_master-proj编译为部署到服务器.
现在关于我想用hg设置它的方式,我希望能够做的是将主项目及其子项目从他们自己的基线存储库克隆到客户端的工作副本中,以便可以将模块(使用hg)添加到特定客户的工作副本.
此外,当我对一个客户的工作副本中的/修复错误进行一些更改时,我希望能够选择将更改/错误修复推送回主项目/子项目的基线存储库,以便最终将更改/修复程序转移到其他客户的工作副本中,这些副本可能包含需要修复的相同错误.
通过这种方式,我将能够在不同的客户端上使用相同的错误修复程序.
但是......我不确定使用hg和Eclipse执行此操作的最佳方法.
我在这里读到你可以使用hg的Convert Extension将一个子目录拆分成一个单独的项目--filemap.
但是,我仍然有点困惑,如果使用转换扩展更好,或者如果将每个模块放在自己的存储库中并将它们检查到每个客户端的单个工作区中会更好一些.
是的,看起来subrepos就是您正在寻找的,但我认为这可能是错误问题的正确答案,并且我强烈怀疑您会遇到使用 svn:externals 时出现的类似问题
相反,我建议您将组合和缩小的 JS 文件“发布”到工件存储库,并使用依赖项管理器(例如Ivy)将工件的特定版本拉入主项目中。这种方法使您可以更好地控制主项目使用的子项目版本。
如果您需要对特定客户的子项目进行错误修复,您只需在该子项目的主线上进行修复,发布新版本(最好通过自动构建管道)并将其主项目更新为使用新版本。哦,您想在发布之前用他们的主项目测试新版本吗?在这种情况下,在推送修复之前,在本地合并并缩小子项目,将其发布到本地存储库,并让客户的主项目选择该版本进行测试。
| 归档时间: |
|
| 查看次数: |
1302 次 |
| 最近记录: |