【问题标题】:Is version control possible on a shared host w/o shell access?在没有外壳访问的共享主机上是否可以进行版本控制?
【发布时间】:2009-03-09 14:12:57
【问题描述】:

我有一个主机不允许 shell 访问的客户端。是否有任何多用户版本控制系统可以在这种情况下工作(在 linux 上)?他不愿意切换主机。

【问题讨论】:

    标签: version-control shared-hosting


    【解决方案1】:

    是的,因为您不直接在生产服务器上进行开发!生产服务器的内容只是您的源存储库的一个视图,它保存在其他地方以便可以完成工作在单独的开发服务器上。这样,开发服务器上的愚蠢错误就不会影响您的生产系统。如果这意味着要进行手动签出以传输文件,那就这样吧。

    【讨论】:

    • 你可以在同一个共享主机上做所有事情,只要你的开发工作是在不同的子域上完成的。保持你的配置文件不同,这样你就可以访问一个开发数据库,​​一切都很好。
    • 这仍然是个坏主意,imo。当您在开发系统上忘记在 while 循环中增加计数器并且它与 cpu 一起运行时,会发生什么?类似的事情不时发生在每个人身上,您希望将这些错误与生产隔离开来。
    • 问题是由于大量上传的大文件,存储库变得非常庞大,因此从测试到生产的同步将是一个很大的 PITA。也许有一种方法可以不将该文件夹包含在 repo 或其他内容中。
    • @sprugman 用户上传的文件不应使用您的代码进行版本控制。那是用户数据。你把它备份在磁带上。
    【解决方案2】:

    不是您要找的答案,而是找一个更好的托管服务提供商。您的托管服务提供商是否正在为您做一些特别的事情,让您想要忍受没有 shell 访问权限,或者甚至不只是为您预安装 SVN?有大量非常便宜的主机可以为您提供已经安装的 SVN 和 shell 访问权限。

    【讨论】:

    • 是的,我知道。正如我所说,“他不愿意转换。”
    • 大约 4 年前我遇到了一个糟糕的主人。我也舍不得换。我明白这个问题。当一切都在一台主机上“工作”时,你不想经历切换的麻烦。
    • 然而,这是值得的。通过适当计划的迁移,以及将两个帐户都打开一个月以确保切换顺利进行,确实没有那么多问题。另外,从长远来看,您会省去很多麻烦。
    【解决方案3】:

    正是出于这个原因,我使用 Bazaar。如果服务器支持 ftp 或 ftps,则支持 Bazaar。 http://bazaar.canonical.com/

    【讨论】:

    • 有什么教程可以推荐,展示如何在现有网站的共享主机上启动版本控制?
    【解决方案4】:

    我一直在寻找同样的东西,我有一个无外壳访问的托管服务提供商,没有包含源代码控制并且不想更改。

    目前,我正在使用 git。但是我没有使用git push 来更新远程存储库,而是使用脚本和 FTP 来更新服务器的副本。

    git pull 在任何客户端都能正常工作,前提是 ftp git 目录可通过 http 访问。

    git 推送替换:

    git update-server-info
    perl ftpsync.pl -v .git ftp://ftp.example.com/gitrepo/project.git
      ftpuser=user@example.com ftppasswd=*
    

    这是使用来自 Sourceforge ftpsync page 的 ftpsync。它是 git push 的一个不完美的替代品,它镜像本地 repo,而不是与远程合并,所以请确保本地 repo 是最新的 git pull 首先。

    git-ftp 声称做同样的事情。 Github 的git-ftp page。可能比 ftpsync 效果更好,因为它是为此目的而设计的,但我没有尝试过。

    【讨论】:

      【解决方案5】:

      当然,SVN 可以有多个用户和多个存储库。当然取决于您的主机是否愿意安装它。如果这不起作用,也许您会考虑在其他地方托管您的版本控制?

      【讨论】:

        【解决方案6】:

        您的意思是要将版本控制存储库存储在主机上,然后从多个客户端访问它吗?如果是,那么所有现代版本控制系统都可以这样工作。

        【讨论】:

          【解决方案7】:

          我刚刚在 Mercurial 特定问题上发布了这个答案,但它也适用于这里。我使用 Mercurial,并找到了一个指南,让我只能通过 FTP/控制面板访问(无 shell)来安装它。

          http://javadocs.wordpress.com/2010/04/27/set-up-mercurial-1-5-1-on-a-shared-host-simplified/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-07-11
            • 1970-01-01
            • 2020-01-03
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2020-07-11
            • 2019-05-02
            相关资源
            最近更新 更多