Mercurial和Eclipse的模块?
我为几个不同的客户有几个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
目录_master-proj/js
所有的数据合并并缩小(有点像编译)成不同的Javascript文件名; 并在最后一步中将_master-proj
编译为部署到服务器。
现在关于我想用hg进行设置的方式,我想要做的是将主项目及其子项目从他们自己的基线存储库克隆到客户端的工作副本,因此可以将模块(使用hg)添加到特定客户的工作副本中。
另外,当我在一个客户的工作副本中修改/修正错误时,我希望能够选择性地将修改/错误修复推回到主项目/子项目的基线存储库中,以便最终将更改/修复引入其他客户的工作副本,这些工作副本可能包含需要修复的相同错误。
通过这种方式,我将能够在不同客户端上使用相同的错误修复。
然而......我不确定使用hg和Eclipse来做到这一点的最佳方式。
我在这里读到,您可以使用hg的Convert Extension使用--filemap
选项将子目录拆分为单独的项目。
不过,对于使用Convert Extension会更好,还是将每个模块放置在自己的存储库中,并将它们签出到每个客户端的单个工作区中,我还是有点困惑。 。
是的,它看起来像subrepos是你在找什么,但我想也许这是错误问题的正确答案,我强烈怀疑你会遇到类似的问题,发生在使用svn:externals
相反,我会建议您将组合和缩小的JS文件“发布”到artefact存储库,并使用像Ivy这样的依赖管理器将特定版本的artefact拖放到您的主项目中。 这种方法使您可以更好地控制主项目使用的子项目版本。
如果您需要对特定客户端的子项目进行错误修复,那么您可以在该子项目的主线上进行修复,发布新版本(理想情况下通过自动构建管道)并将其主项目更新为使用新版本。 哦,你想在发布之前用他们的主项目测试新版本吗? 在这种情况下,在推送修复程序之前,在本地合并和缩小子项目,将其发布到本地存储库,并让客户端的主项目为您的测试选择该版本。
链接地址: http://www.djcxy.com/p/969.html