我们必须遵循以下问题。如果我们将更改导出到开发服务器,则导出将不会删除服务器上的任何文件。出于好的理由,我们不想手动执行此操作。所以我想把服务器上的目录作为工作副本,但所以任何开发人员都必须将他的更改提交到存储库,只是为了测试他的更改。我认为这是非常不切实际的,并且会进行许多不必要的修订。
所以我们需要来自两个世界的最好的 - 所以如果我们将更改导出到工作目录以进行测试,然后在开发完成后更新工作目录,SVN就能够处理它。
此致 烫发
答案 0 :(得分:0)
如果我们将更改导出到开发服务器,导出将不会删除服务器上的任何文件。
您的部署脚本应该只删除以前导出的文件夹并创建新导出。当然,停机几秒钟对开发服务器来说不是问题吗?
如果停机 出现问题(例如您的项目非常庞大,导出完成需要很长时间),那么您仍然可以通过使用硬链接立即部署下一个版本或符号链接。
例如,您可以在/var/www/myproject.latest
中托管您的项目,这实际上是/var/www/myproject.r123
的硬链接。导出新版本124
后,您可以使用以下命令立即更新硬链接:
ln -f /var/www/myproject.r124 /var/www/myproject.latest
(我假设您的项目托管在Linux服务器上,但您也可以在Windows上使用[NTFS结点] [1]点。)
所以我想把服务器上的目录作为工作副本,但所以任何开发人员都必须将他的更改提交到存储库,只是为了测试他的更改。
svn export
有相同的限制,所以我不知道这两种方法在这方面有何不同。如果所有开发人员都需要共享同一个测试服务器,那么无论如何这都是一件好事:如果开发人员A打破了测试服务器,那么开发人员B希望能够查看SVN日志以查看发生了什么!