Pet*_*son 16 svn release-management build-server
我们有两个网站用于相同的客户端(主要的www站点,另一个用于电子商务网站,位于单独的服务器上),它们使用共享的代码部分(各种功能/样式/ javascript等).我们目前通过在SVN中将共享代码作为单独的项目(在同一个存储库中)并使用svn:externals将这些中的每个分支拉入两个网站项目来管理它.
我们刚刚创建了两个发布分支,每个分支对应两个站点.在工作时,一切都被正常地提交到每个站点的中继线,当"准备好直播"时,我们将它合并到该站点的发布分支中.除了今天我们修改了一些共享代码并注意到发布分支在我们对发布分支进行更新时立即将其拉出来.这不是我们想要的:(
所以任何想法我们如何解决这个问题.我们使用外部来干扰代码的共享,但还有另一种方法吗?请注意,在这个问题中(我如何在SVN中分支并让它分支我的svn:外部文件夹?)他们提到外部是坏的,我们应该使用不同的构建过程,但没有提到应该是什么.
我们有CruiseControl.net运行我们的构建,并渴望得到这个坚果破解.有没有人对更好的流程有任何想法?
干杯
皮特
更新:我们已经开始使用Mercurial(Fogcreek的Kiln)进行源代码控制.Mercurial也有子回购的想法所以我们也跟着那条路线跟我们的项目.然而,它是有代价的,分支是非常困难的,因为标记和简单地保持一切都是最新的.我们最新的方法是将两个项目都纳入一个回购,包括所有共享回购.这给了我们一个"大型项目",它减慢了克隆时间(在SVN中查看),但我们很少这样做,以至于不必处理子回购的收益使它非常值得.我们现在使用功能切换/切换而不是分支,这也极大地简化了我们的开发.
Oth*_*ide 19
如果我理解正确,你会有以下结构:
svn:externals library svn://repo/library)svn:externals library svn://repo/library)svn:externals library svn://repo/library)svn:externals library svn://repo/library)svn:externals library svn://repo/library)我假设你是svn:externals/ project1/trunk到/ library的设置.如果您随后将修订与svn:externalsto/project1/branches/release1合并并更新该分支,您将自动从库中获取最新版本.默认情况下,svn:externals将获得链接的HEAD修订版.
您可以定义svn:externals链接到特定修订,如下所示:svn:externals -r123 library svn://repo/library.这意味着外部链接将始终指向该特定修订.因此,您可以svn:externals在发布分支中安全地使用此类链接,而不必担心除非您手动更改共享库代码,否则将永久更新共享库代码svn:externals
可能更好的方法是使用共享库的标签并链接到特定标签.在这种情况下,您将获得以下存储库结构:
svn:externals library svn://repo/library/tags/version3)svn:externals library svn://repo/library/tags/version1)svn:externals library svn://repo/library/tags/version2)svn:externals library svn://repo/library/tags/version2)svn:externals library svn://repo/library/tags/version1)| 归档时间: |
|
| 查看次数: |
8758 次 |
| 最近记录: |