我们在几个客户端的项目中尝试过Subversion。它的效果比我所期望的要好,但也有一些粗糙的边缘。
当前的解决方案是在我们的web服务器上使用Subversion存储库。如果需要更新文件,他们会安装TortoiseSVN,否则就会使用bat文件并调用命令行客户端。
自从我们引入Subversion以来,安装不同步已经没有问题了。我们还能够跟踪一些人搞砸了设置(并弄清楚了为什么会发生这种情况)。
偶尔你会发生冲突。这主要是因为新手用户错误地更改了其中一个设置。是否有一个svn客户端可以方便地为新手用户解决冲突?
(其中一家公司目前的解决方案是删除整个安装并执行新的签出)
编辑:该项目通常是我们标准应用程序的自定义版本。在客户位置的用户数为2-10个.
发布于 2009-05-11 15:30:39
在这些情况下,svn导出是您的朋友,它提供了代码的“干净”快照。我的建议是以这种方式进行测试和生产。这将帮助您找到提交问题,比如漏掉签入或冲突,因为您只在特定的修订版中获得文件。
为了防止这些问题中的一些,尤其是如果您一直使用svn,请尝试使用生产分支。产品分支由经验丰富的开发人员维护,开发人员可以使用多向差异工具从开发人员分支中提取更改。正如其他人所指出的,svn合并(甚至更新)可能容易出错,因此这个工作流允许有选择地合并更改,这就是dscm(由Richard描述)的工作方式。
发布于 2009-05-11 08:28:17
我对Subversion的未来之一是,它将一切视为一系列版本,其他版本控制系统(如汞 )则会查看变更集(正如最新的Stack溢出Podcast中所提到的)。Subversion的这个方面使得合并变得非常困难,因为它不知道什么已经改变了。
作为一种解决方案,它并不比当前的解决方案好多少,我建议在更新之前运行svn还原来重置安装。
发布于 2009-05-12 00:27:03
结帐和导出的好处是,您可以看到处理签出副本的用户所做的更改。
如果您想要一个自动化的解决方案,您可以让部署脚本使用svn将更改的副本保存到某个位置(或通过电子邮件发送给您),然后在更新之前进行还原。
https://serverfault.com/questions/6914
复制相似问题