【发布时间】:2010-02-02 12:55:11
【问题描述】:
我们有两个网站用于同一个客户端(主 www 网站和另一个用于位于单独服务器上的电子商务网站),它们使用代码的共享部分(各种功能/样式/javascript 等)。我们目前通过在 SVN 中将共享代码作为单独的项目(在同一个 repos 中)并使用 svn:externals 将每个项目的分支拉入两个网站项目来管理这一点。
我们刚刚创建了两个发布分支,两个站点各一个。在工作时和“准备好上线”时,所有内容都会像往常一样被提交到每个站点的主干,我们将其合并到该站点的发布分支中。除了今天我们修改了一些共享代码并注意到当我们对发布分支进行更新时,发布分支立即将其拉入,这是一种享受。这不是我们想要的:(
所以任何想法我们可以解决这个问题。我们使用外部来干掉代码的共享,但还有其他方法吗?请注意,在这个问题 (How can I branch in SVN and have it branch my svn:external folders as well?) 中,他们提到外部是不好的,我们应该使用不同的构建过程,但没有提及应该是什么。
我们有 CruiseControl.net 运行我们的构建,并且渴望破解这个难题。有人对更好的流程有任何想法吗?
干杯
皮特
更新:我们已经开始使用 Mercurial(Fogcreek's Kiln)进行源代码控制。 Mercurial 也有子回购的想法,所以我们在那里的项目也遵循了这条路线。然而,这是有代价的,分支变得非常困难,标签和简单地保持一切都是最新的。我们最新的方法是将两个项目合并到一个存储库中,包括所有共享存储库。这为我们提供了一个“大型项目”,它可以减慢克隆时间(在 SVN 中查看),但我们很少这样做,以至于不必处理子存储库的收益使其非常值得。我们现在使用功能切换/切换而不是分支,这也大大简化了我们的开发。
【问题讨论】:
标签: svn release-management build-server