最佳做法项目特征子模块具有善变和日蚀?
-
27-09-2019 - |
题
我有几个蚂蚁项目,为几个不同的客户;该目录的结构,我对我的项目看起来是这样的:
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
编制部署到服务器。
现在我想设置这与汞,有什么我能做的就是克隆的主项目及其分项目从自己的基线库进入一个客户的工作的拷贝,因此,模块可以加入(使用汞柱)的特定客户的工作副本。
此外,然而,当我做一些改动/修正问题在一个客户的工作复制的,我想可以选择地推动改动/修复错误回到主的项目/分项目的基线储存库,目的最终拉的改动/修复到其他客户的工作副本,其中可能包含相同的错误,需要加以固定。
在这一方式,我将能够利用同样的错误修复在不同客户。
但是...我不确定最好的方式做到这一使用汞和食。
我 读到这里 你可以使用汞的 转换扩展 要分一个子目录入一个单独的项目使用 --filemap
选项。
然而,我还是有点困惑,如果它将更好地使用的 转换扩展 或者,如果这将是最好的房子的各个模块在他们自己的仓库,并检查他们进入一个单一的工作空间为每个客户。
解决方案
是的,它看起来像 subrepos 是你在找什么,但我想,也许是正确的答案错误的问题,我强烈怀疑,你会遇到类似的 出现的问题时使用svn:外部
而不是我建议你"发布"你的合并和缩小JS文件 人工制品的仓库 和使用依赖管理等 藤 拉具体版本的手工艺品为主的项目。这种做法给你远远更大的控制权的分项目的版本你的主项目的用途。
如果你需要作出错误的修复方法的一个子项目的一个特别的客户,可以仅仅是使修复了主线上对这一分项目,发布新的版本(最好通过一个 自动的构建管道)和更新各自的项目主要采用新版本。哦,你想要测试新版本,与他们掌握的项目之前发布?在这种情况下,在你把你的修复、整合和缩减你的子项目在当地,将其发布到一个 地库 有客户的主项目的挑选了那个版本对于你的测试。