我有一个主机不允许 shell 访问的客户端。是否有任何多用户版本控制系统可以在这种情况下工作(在 linux 上)?他不愿意换主人。
7 回答
是的,因为您不直接在生产服务器上进行开发! 生产服务器的内容只是源存储库的视图,它保存在其他地方,以便可以在单独的开发服务器上完成工作。这样,开发服务器上的愚蠢错误就不会影响您的生产系统。如果这意味着进行手动结帐以传输文件,那就这样吧。
不是您正在寻找的答案,而是获得更好的托管服务提供商。您的托管服务提供商是否正在为您做一些特别的事情,让您想要忍受没有外壳访问,甚至不只是为您预安装 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=*
那是使用 ftpsync,来自 Sourceforge ftpsync 页面。它是 git 推送的不完美替代品,它镜像本地仓库,而不是将其与远程合并,因此请确保本地仓库是最新的 git pull 首先。
git-ftp 声称做同样的事情。Github 的git-ftp 页面。可能比 ftpsync 效果更好,因为它是为此目的而设计的,但我还没有尝试过。
当然,SVN 可以有多个用户和多个存储库。当然取决于您的主机是否愿意安装它。如果这不起作用,也许您会考虑在其他地方托管您的版本控制?
您的意思是要将版本控制存储库存储在主机上,然后从多个客户端访问它吗?如果是,那么所有现代版本控制系统都可以这样工作。
我刚刚在 Mercurial 特定问题上发布了这个答案,但它也适用于这里。我使用 Mercurial,并找到了一个指南,让我只能通过 FTP/控制面板访问(无外壳)来安装它。
http://javadocs.wordpress.com/2010/04/27/set-up-mercurial-1-5-1-on-a-shared-host-simplified/