【问题标题】:Subversion and web development颠覆和网络开发
【发布时间】:2010-09-06 01:28:16
【问题描述】:

我正在将 Subversion 引入我们的网上商店。我希望通过 FTP 将签入的文件上传到服务器(并且当它们通过 SFTP 使用 Subversion 时)。这些文件被发送到发布候选页面以进行测试。可以调用脚本将文件移动到生产环境中。

我的问题是:如何通过 Subversion 将文件传输到服务器?是否有我可以添加的脚本在文件签入时进行传输?

【问题讨论】:

    标签: svn ftp


    【解决方案1】:

    如果您对服务器具有 shell 访问权限,并且在其上安装了 SVN(或能够安装 SVN),那么您最好的选择可能就是完全绕过 FTP。

    我们如何部署应用是(简化的)

    • 开发人员编写代码并将其检入主干
    • 定期,当主干稳定时,我们会将其快照作为标签
    • 在服务器上,svn checkout 标记

    如果需要对服务器进行任何更改(或直接在实时服务器本身上),使用 subversion 来同步代码是微不足道的

    【讨论】:

      【解决方案2】:

      您想构建一个在 SubVersion 中使用 post commit 挂钩的脚本。您可以将脚本从存储库导出,然后通过 FTP 传输到服务器,或者您可以从存储库签出到服务器上的工作目录,然后在提交后挂钩脚本中的服务器工作目录上调用“svn update” .

      There's more information in the Subversion FAQ

      【讨论】:

        【解决方案3】:

        我认为您可能应该使用 svn export 而不是 svn checkout 进行部署,这样您就不会让那些 .svn 目录混淆您的生产备份工作。 svn export 是一个“干净”的结帐。

        我还会创建一个脚本来为您处理这一切。根据您的代码结构,您通常可以对目录进行版本控制,只需将符号链接更新到最新版本,这样可以更轻松地回滚。

        您甚至可以使用 Capistrano 之类的东西来自动化部署。不过,我支持 CruiseControl 的建议。

        【讨论】:

          【解决方案4】:

          我认为您正在寻找类似于与自动构建脚本集成的东西。我已经使用CruiseControl 对 ASP.Net 应用程序做类似的事情。我不知道你的确切要求,但我敢打赌你可以让它做你想做的事。

          【讨论】:

            【解决方案5】:

            提交后脚本对此很有用。基本上每次提交都会在事件之后调用一个脚本,您可以使用该脚本将 svn 导出到任何地方。

            一个有趣的article 展示了如何做到这一点,this 展示了钩子脚本如何与 subversion 一起使用

            【讨论】:

              【解决方案6】:

              您可能可以使用 SVN“钩子”来执行此操作。基本上,您可以将服务器配置为在每次签入之前或之后运行脚本。这是online book相关部分的直接链接。

              【讨论】:

                【解决方案7】:

                我赞同 Orion 的想法。如果您拥有对服务器的 shell 访问权限,那么使用 Subversion 本身作为部署工具实际上非常容易。只需确保设置了一些 Web 服务器规则,以免意外暴露 .svn 目录。

                【讨论】:

                  【解决方案8】:

                  svn2web 将在每次提交时从 subversion 存储库 ftp 或 scp 文件到 Web 服务器。有关详细信息,请参阅SourceForge 项目。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2010-10-08
                    • 2010-10-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-12-30
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多