svn - 为 Web 开发实现版本控制

标签 svn version-control

随着我的项目越来越大,我正在尝试进入版本控制。目前我的发展是这样的:

  • 我有在线托管的“实时”版本
  • 我有一个本地版本,以及一个本地网络服务器
  • 我编辑本地版本并在本地网络服务器上进行测试
  • 最后,我将运行 Unison从我的本地版本更新实时版本(以及使用对实时版本的任何更改来更新我的本地版本)

  • 我的本地平台是 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/

    相关文章:

    svn - 我手动编辑合并信息的方式安全吗?

    svn 分支和多轨开发

    django - 从 SVN 存储库中排除单个项目文件

    git - 如何在同一存储库的 README Markdown 文件中显示(链接到/超链接)Azure DevOps Git 存储库中的图像?

    git - Mode-Line 中的 Subversion 分支

    svn - 在哪里管理您在版本控制下的最敏感内容?

    svn - GUI 和命令行 SVN 客户端

    svn - 使用 Tortoise SVN 查看前几天所有更改的最简单方法是什么?

    svn - 解释版本控制的好视频?

    database - 保持多个环境中的开发数据库同步