Version control 在没有外壳访问权限的共享主机上是否可以进行版本控制?

Version control 在没有外壳访问权限的共享主机上是否可以进行版本控制?,version-control,shared-hosting,Version Control,Shared Hosting,我有一个客户端的主机不允许shell访问。是否有任何多用户版本控制系统可以在这种情况下工作(在linux上)?他不愿意更换主机。当然,SVN可以有多个用户和多个存储库。当然,这取决于您的主机是否愿意安装它。如果这不起作用,也许你会考虑在其他地方托管你的版本控制?是的,因为你不要直接在生产服务器上做开发!生产服务器的内容只是源存储库的一个视图,它保存在其他地方,以便可以在单独的开发服务器上完成工作。这样,dev服务器上的一个愚蠢错误就不会影响您的生产系统。如果这意味着要手动签出以传输文件,那就这样

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

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

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

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

这不是你想要的答案,而是找到一个更好的主机提供商。您的主机提供商是否为您做了一些特别的事情,使您不想使用shell访问,甚至不想为您预先安装SVN?有很多非常便宜的非常好的主机可以让你安装SVN,并且可以访问shell

我一直在寻找同样的东西,我有一个无shell访问的主机提供商,没有附带的源代码控制,不想改变

目前,我正在使用git。但是我没有使用
gitpush
来更新远程存储库,而是使用脚本和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。它不是git push的完美替代品,它反映了本地回购,而不是将其与远程回购合并,因此首先确保本地回购是git pull的最新版本


git ftp声称也在做同样的事情。Github的。可能比ftpsync工作得更好,因为它是为这个目的而设计的,但我没有尝试过。

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


我使用Bazaar正是因为这个原因。如果服务器支持ftp或ftps,则支持Bazaar。

您可以在同一个共享主机上执行所有操作,只要您的开发工作在不同的子域上完成。保持你的配置文件不同,这样你就可以访问一个dev数据库,一切都很好。这仍然是一个坏主意,imo。当你在dev系统上的while循环中忘记增加计数器,而它又与cpu一起运行时,会发生什么呢?这样的事情时不时会发生在每个人身上,你希望这些错误与生产隔离开来。问题是,由于大量上传的大型文件,存储库变得庞大,因此从测试到产品的同步将是一个巨大的难题。也许有一种方法可以不将该文件夹包含在repo或其他内容中。@sprugman用户上传的文件不应使用您的代码进行版本控制。这是用户数据。你把它备份到磁带上。是的,我知道。正如我所说,“他不愿意换台。”大约4年前,我有一个糟糕的主持人。我也不愿意换。我理解这个问题。当它与一台主机“工作”时,你不想经历切换的麻烦。然而,这是值得的。有了一个计划得当的迁移,再加上两个帐户都有一个月的开放时间以确保切换顺利进行,就真的没有那么多问题了。另外,从长远来看,你会为自己省去很多麻烦。你能推荐一些教程来说明如何在现有网站上的共享主机上启动版本控制吗?