我在源代码级别使用svn:externals进行自动化模块到系统构建升级,以便
/branches/release-123/modules/xxx
将包含
的推广版本/trunk/modules/xxx
我正在考虑使用/branches/release-123/modules/xxx
创建svn mkdir
并将svn:externals
属性设置为该属性,但外部结帐到具有该属性的目录的根目录似乎不被允许
另一种选择是将属性添加到modules目录,并将xxx作为checkout目录。但是有多个模块构建独立进行促销,因此脚本化的propget - modify - propset循环可能最终处于竞争状态。
是否有任何解决方法可以将外部结帐目录定义为"。"或者将非交互式属性修改作为原子操作?
到目前为止,我找到了2个解决方法:
1)创建像.xxx这样的虚拟目录,检查到../xxx。它应该在理论上起作用,但实际上是一个肮脏的黑客。
2)目前我已对其进行了设置,以便通过触发单个参数化的Jenkins作业来实现对外部的所有更改,以便不存在竞争条件。它完成了这项工作,但现在系统还有一个单点故障。
我无法使用简单的svn副本,因为这会混乱用于跟踪系统构建中的更改的更改日志。