Capistrano:我怎样才能在实时/部署

时间:2015-10-13 16:18:24

标签: ruby-on-rails git capistrano capistrano3

好的,使用带有Rails 4.2的capistrano 3.2。

简单地说,我想让实时服务器上的每个版本都有一个完整的git repo。我知道Cap使用git来克隆文件但是afik它默认删除了.git文件夹。我发誓我之前在早期版本的Capistrano上工作过,但没有多少Docs或Google搜索找到正确的设置。或者,如果我有一个奇怪的Cap版本

在我开始实施“版本控制直播之前?永远不要改变生活,在你的开发服务器上开发这个白痴!”

如果某些内容发生变化,或者如果有紧急情况,你别无选择,只能在现场进行活动的git repo非常宝贵。因为现在你有git显示的更改,你可以提交它,然后将它推回到你的中央仓库并让它整齐地上传。它之前保存了我的屁股,意味着我不必手动复制我所知道的已解决的“实时”问题。 无论如何,理由结束。谁知道怎么样?

我为这个简单的问题道歉,我认为这是不吉利的谷歌,这让我没有找到答案。搜索“Capistrano离开git on live”或其他此类术语会被使用git进行部署。

提前加油。

1 个答案:

答案 0 :(得分:0)

这将是非平凡的。 Capistrano使用git archive管道通过tar创建发布文件夹。假设,您可以覆盖执行此操作的任务,但您可能会花费更多的努力而不是它的价值。我强烈建议您只需创建一个提交修补程序并再次推送的工作流程。我们使用生产部署指向的prod分支,因此您可以将更改提交到prod分支和上限生产部署,然后将您的更改合并到开发分支。

如果你确实选择尝试覆盖它,请查看git tasks的Capistrano源代码。它使用Git Strategy类,因此您需要子类化并覆盖它,然后覆盖任务以使用您的类。 Capistrano基本上是just a subclass of Rake,因此请查找有关覆盖Rake任务的文档,例如: Overriding rails' default rake tasks

祝你好运!

相关问题