随着我的项目越来越大,我正在尝试进入版本控制。目前我的发展是这样的:
我的本地平台是 Gentoo,Linux。我对 SVN 进行了一些研究,但我认为它可能不适合我的需要,因为我的本地网络服务器(和 Unison)只能访问当前 checkout 的代码,等等。我可能错了,但我对此知之甚少。
有人可以指导我在现有代码上设置某种版本控制,这将导致本地网络服务器可以访问最新版本并且不会破坏未编辑文件的访问时间? (我不希望每次更改时 Unison 都上传每个文件)
最佳答案
我为此使用颠覆,并且效果很好。
通常我会逐渐发展,直到我为发布清理了一些东西。
那时,我将创建一个名为 release- 的分支。我将跳上生产系统并检查我新创建的分支。对于几个项目,我将有一个在生产系统上运行的暂存区。
例如,我可能有一个如下所示的目录树:
/web/sites/release-1
/web/sites/release-2
/web/sites/release-3
/web/sites/release-4
/web/sites/stage ==> release-4
/web/sites/live ==> release-3
“stage” 和 “live” 是符号链接(symbolic link),是 Apache 为 DocumentRoot 提供的用于虚拟主机 www.example.com 和 stage.example.com 的链接)
这种设置允许我在实际生产环境中非常仔细地测试事物,然后通过交换符号链接(symbolic link)进行切换。
通过在部署之前进行分支,我可以在极少数情况下对生产进行紧急修复。然后,只要方便和适当,我就可以将这些更改合并回主干。
最后一个提示:如果您在生产环境中使用 subversion 项目的工作副本,您需要阻止 apache 允许人们浏览您项目中的 .svn 目录:
在 httpd.conf 中:
<Directory ~ "\.svn">
Order allow,deny
Deny from all
</Directory>
关于svn - 为 Web 开发实现版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3678778/