【发布时间】:2009-03-09 14:12:57
【问题描述】:
我有一个主机不允许 shell 访问的客户端。是否有任何多用户版本控制系统可以在这种情况下工作(在 linux 上)?他不愿意切换主机。
【问题讨论】:
标签: version-control shared-hosting
我有一个主机不允许 shell 访问的客户端。是否有任何多用户版本控制系统可以在这种情况下工作(在 linux 上)?他不愿意切换主机。
【问题讨论】:
标签: version-control shared-hosting
是的,因为您不直接在生产服务器上进行开发!生产服务器的内容只是您的源存储库的一个视图,它保存在其他地方以便可以完成工作在单独的开发服务器上。这样,开发服务器上的愚蠢错误就不会影响您的生产系统。如果这意味着要进行手动签出以传输文件,那就这样吧。
【讨论】:
不是您要找的答案,而是找一个更好的托管服务提供商。您的托管服务提供商是否正在为您做一些特别的事情,让您想要忍受没有 shell 访问权限,或者甚至不只是为您预安装 SVN?有大量非常便宜的主机可以为您提供已经安装的 SVN 和 shell 访问权限。
【讨论】:
正是出于这个原因,我使用 Bazaar。如果服务器支持 ftp 或 ftps,则支持 Bazaar。 http://bazaar.canonical.com/
【讨论】:
我一直在寻找同样的东西,我有一个无外壳访问的托管服务提供商,没有包含源代码控制并且不想更改。
目前,我正在使用 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 效果更好,因为它是为此目的而设计的,但我没有尝试过。
【讨论】:
当然,SVN 可以有多个用户和多个存储库。当然取决于您的主机是否愿意安装它。如果这不起作用,也许您会考虑在其他地方托管您的版本控制?
【讨论】:
您的意思是要将版本控制存储库存储在主机上,然后从多个客户端访问它吗?如果是,那么所有现代版本控制系统都可以这样工作。
【讨论】:
我刚刚在 Mercurial 特定问题上发布了这个答案,但它也适用于这里。我使用 Mercurial,并找到了一个指南,让我只能通过 FTP/控制面板访问(无 shell)来安装它。
http://javadocs.wordpress.com/2010/04/27/set-up-mercurial-1-5-1-on-a-shared-host-simplified/
【讨论】: