我们有两个网站用于相同的客户端(主要的www站点,另一个用于电子商务网站,位于单独的服务器上),它们使用共享的代码部分(各种功能/样式/ javascript等).我们目前通过在SVN中将共享代码作为单独的项目(在同一个存储库中)并使用svn:externals将这些中的每个分支拉入两个网站项目来管理它.
我们刚刚创建了两个发布分支,每个分支对应两个站点.在工作时,一切都被正常地提交到每个站点的中继线,当"准备好直播"时,我们将它合并到该站点的发布分支中.除了今天我们修改了一些共享代码并注意到发布分支在我们对发布分支进行更新时立即将其拉出来.这不是我们想要的:(
所以任何想法我们如何解决这个问题.我们使用外部来干扰代码的共享,但还有另一种方法吗?请注意,在这个问题中(我如何在SVN中分支并让它分支我的svn:外部文件夹?)他们提到外部是坏的,我们应该使用不同的构建过程,但没有提到应该是什么.
我们有CruiseControl.net运行我们的构建,并渴望得到这个坚果破解.有没有人对更好的流程有任何想法?
干杯
皮特
更新:我们已经开始使用Mercurial(Fogcreek的Kiln)进行源代码控制.Mercurial也有子回购的想法所以我们也跟着那条路线跟我们的项目.然而,它是有代价的,分支是非常困难的,因为标记和简单地保持一切都是最新的.我们最新的方法是将两个项目都纳入一个回购,包括所有共享回购.这给了我们一个"大型项目",它减慢了克隆时间(在SVN中查看),但我们很少这样做,以至于不必处理子回购的收益使它非常值得.我们现在使用功能切换/切换而不是分支,这也极大地简化了我们的开发.
我的情况:我有几个组件,有时会对它们进行更改,并在很多不同的项目中共享.每个项目都将这些文件放在名为/ depends的子文件夹中.依赖包含所有常见组件的一堆svn外部.
svn:externals给我带来了很多时间和痛苦.
请记住,我有几个项目(让我们说这个讨论每个使用相同的外部代码10),因此为每个项目保留正常的已提交目录将花费我很多合并时间.
对我的情况有更好的选择吗?
在使用TortoiseSVN合并项目的两个分支后,我遇到了提交更改的问题.
这是详细信息:
我做了一个合并分支到我正在进行的项目的主干.
项目包括主存储库和与主存储库连接的库,作为svn external(库也分支)作为项目的子目录.
当我试图提交更改时,TortoiseSVN说:
Commit A
re all the targets part of the same working copy?
Unable to lock 'D:\websites\project\lib'
Please execute the "Cleanup" command.
Run Code Online (Sandbox Code Playgroud)
当然清理没有帮助.
svn:项目目录的外部关键字定义良好,lib文件夹中仍然包含适当版本的库(trunk版本).
SVN服务器和客户端都是1.5.x版本(TortoiseSVN是1.5.3.x).
从技术角度来看,项目和库都是同一SVN存储库中的项目.
知道出了什么问题吗?
我一直在google搜索解决方案,但没有找到任何有用的东西,所以我尝试分两步提交我的更改:
哪个没有任何问题.
但我仍然想知道为什么我不能在一次提交中提交所有内容.
EDITS: