共享主机上没有git命令的Capistrano部署?

问题描述:

  • 开发A - 本地的资源库 - >拉/推---> github上
  • 开发人员B - 本地的资源库 - >拉/推---> github上
  • Capistrano的将留在我们的开发者的机器,但是我们将定义:存储库指向我们的GitHub项目:set:repository,“[email protected]:myuser/myproject.git”#我的克隆网址
  • 开发人员A或开发人员B必须被允许部署已提交的文件到生产机器。

我不确定第三点在这里,这可能吗?共享主机上没有git命令的Capistrano部署?

我已经告诉ctcherry这里On this workflow, does git command needs to be installed on the production server?说:

1)默认情况下Capistrano的部署会从存储库 ,所以 得到部署的文件,将来自被检查到GitHub上 码。您 可以配置Capistrano的使用不同的“部署 战略”由 部署从开发本地机器 在这里看到: http://rubydoc.info/gems/capistrano/2.5.19/Capistrano/Deploy/Strategy/Copy

但我还是有疑问这里。

如果我们使用这种方法,那么这里的工作流程会在什么地方?

  • 从开发者机器A-我们使用Capistrano从github抓取提交的文件。
  • 从同一个开发人员机器A - 我们通过SSH将这些文件部署到共享主机,这些文件将被放置在正确的位置?

是吗?

更新: 请我从未使用过任何的Git或Capistrano的部署然而,我尽我所能,试图了解这一切可能工作,为了让一个好的工作流开发过程中对我的ZF基于应用。

所以我的问题是非常基本的问题。

如果我必须提供任何其他信息,请让我知道。

非常感谢。

+0

蒂姆把它下拉到正确的位置,用zip/unzip。抱歉,我以前没有在其他帖子上看到您的消息。 – ctcherry 2011-03-16 17:25:54

+0

@ctcherry - 哦,拜托。不要担心。你已经5次开始帮助我。 :) 谢谢你们俩!真。 :) – MEM 2011-03-16 18:34:19

工作流程是一样的。会发生什么情况是,无论开发人员何时尝试部署该项目,Capistrano都会首先将新项目复制到其计算机上的临时目录中,然后将其压缩并上传到远程服务器。在远程服务器上,档案将被解压缩,其他一切正常工作。

请注意,这种方法比'正常'部署慢得多,特别是当您的Internet连接速度较慢时,因为整个项目每次都被复制。

+0

我的网络连接正常。所有这些问题的原因只是:我应该离开我的共享主机公司,不允许git命令和addopt这样,否则这可能会变得混乱,我真的应该做这个“正确的方式”?假设我的共享主机公司允许我安装非常特定的git命令(不是git命令本身),我的问题是:capistrano将在此场景中使用哪些特定的git命令或命令? (如果上面没有任何意义,请告诉我,为什么)。非常感谢。我真的很抱歉再次花费你的时间......关心。 – MEM 2011-03-16 15:26:54

+0

如果你的主机不允许安装git这种方法是绝对没问题的。部署需要的时间是唯一的缺点,所以如果这不是问题,那么我就坚持这一点。 – 2011-03-16 16:51:52

+0

@MEM也可以使用自定义部署策略,例如使用Rsync使这些部署更快,以下是有人做了这样的事情:https://github.com/vigetlabs/capistrano_rsync_with_remote_cache/tree注意:我没有测试过它。 – ctcherry 2011-03-16 17:26:39