使用capistrano从git部署特定的修订和分支

时间:2011-04-07 08:39:32

标签: ruby-on-rails git ruby-on-rails-3 capistrano

我正在尝试使用Capistrano将特定修订部署到服务器(我们正在尝试向集群添加新服务器,当然希望它与其他计算机具有相同的修订版本)。 问题似乎是我们正在分支机构。 所以,如果我们这样做:

cap production deploy:cold -S revision=bb88d26c4ec9e6c4fa132c63f79c8fdf8aa5aec4

它确实:

* executing "git clone -q --depth 1 ssh://git@xxx.unfuddle.com/xxx/mc.git /u/apps/xxx/releases/20110407083545 && cd /u/apps/xxx/releases/20110407083545 && git checkout -q -b deploy bb88d26c4ec9e6c4fa132c63f79c8fdf8aa5aec4 && (echo bb88d26c4ec9e6c4fa132c63f79c8fdf8aa5aec4 > /u/apps/xxx/releases/20110407083545/REVISION)"

但我们得到:

** [new.server.com :: err] fatal: reference is not a tree: bb88d26c4ec9e6c4fa132c63f79c8fdf8aa5aec4

似乎忽略了deploy.rb中的分支设置:

set :branch, "new_ui"

这可能是因为多阶段?还是其他干扰的东西?

1 个答案:

答案 0 :(得分:0)

您通常会收到此错误,因为您尚未将您的仓库推送到远程仓库。您可能只有一个名为new_ui的本地分支,但您没有远程跟踪它 - 所以当您推送时,分支不会反映在您的远程仓库上。