我们刚刚创建了两个发布分支,分别是为两个网站准备的。当我们工作时,将所有内容都提交到每个站点的trunk中。当“准备好上线”后,我们将其合并到该站点的发布分支中。这一切都很顺利,除了今天我们修改了一些共享代码,并注意到在更新发布分支时会立即引入这些代码。这不是我们想要的:(
那么,有什么办法可以解决这个问题吗?我们使用外部文件来简化代码共享,但是否还有其他方法?在这个问题(如何在SVN中分支,让它同时分支我的svn:external文件夹?) 中,他们提到外部文件不好,我们应该使用不同的构建进程,但没有提到应该使用什么。
我们正在使用CruiseControl.net来运行构建,并渴望解决这个问题。有人对更好的流程有任何想法吗?
谢谢
彼得
更新:我们已经转向使用Mercurial(Fogcreek's Kiln)作为我们的源代码控制。Mercurial也有子存储库的概念,因此我们也采用了该方法。然而,这是有代价的,分支变得非常困难,标记和简单地保持一切最新也很困难。我们的最新方法是将两个项目并入一个存储库中,包括所有共享存储库。这给我们带来了一个“超级项目”,这会减慢克隆时间(在SVN中检查),但我们很少这样做,不必处理子存储库的利益使其非常值得。我们现在使用功能切换/切换而不是分支,这也极大地简化了我们的开发。
trunk
中使用v1.9
的库,并在可用时有意识地将其更新为新的(稳定的)版本。 - Wasted_Codersvn:externals
指向该主项目的release
分支,但直接指向库,例如project1/branches/release1/library
。这将直接将库版本与主项目版本耦合在一起,但确保了project1/trunk
内库中的破坏性更改不会影响其他项目,同时它们的发布版本也会跟踪主项目库的特定版本。 - Wasted_Coder