【问题标题】:svn checkout and update without the .svn directory没有 .svn 目录的 svn 签出和更新
【发布时间】:2010-11-06 08:53:26
【问题描述】:

我在 svn 下有一个网站,我想用存储库中当前的内容修补实时网站(即在实时网站上有效地调用 svn update),但我不希望生产中的每个文件夹中都有 .svn 目录网站。

有没有办法设置svn,使带有版本信息的.svn文件夹和版本控制下的文件不在同一个目录?

在 git 中,您可以通过这种方式创建和分离工作树并将更新推送到项目中(根据http://toroid.org/ams/git-website-howto),我基本上希望能够在 svn 中做类似的事情。

【问题讨论】:

  • 实际上我正在考虑为 git 跟踪网站使用 rsync,所以感谢您的提示。附言svn 只是一个进化步骤,到现在为止仅具有历史意义。再次感谢!

标签: svn website-deployment


【解决方案1】:

httpd.conf:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

【讨论】:

    【解决方案2】:

    您也可以使用git-svn 创建网站的 git 镜像,然后按照您链接的文章中描述的方式发布。显然这不是一个直接的解决方案。

    【讨论】:

      【解决方案3】:

      正如 laalto 所提到的,svn export 是一种在重复使用时更新“工作副本”的简单但不是非常有效的方法:

      milen@dev:~$ svn export --non-interactive --force "<URL>" <directory>
      

      【讨论】:

        【解决方案4】:

        rsync 配置为不复制“.svn”目录怎么样?

        rsync --exclude=.svn local_svn_copy webserver:site/

        这可以重新运行以刷新网络服务器的副本。

        【讨论】:

          【解决方案5】:

          svn export 的工作方式与checkout 类似,但没有.svn 目录。但是,您不能update 这样的结构,因为它不是 svn 工作副本。

          您还可以将 Web 服务器配置为禁止访问 .svn 目录,并使用 checkout+update 方法。

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-06
          • 2012-02-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多