我正在尝试使用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"
这可能是因为多阶段?还是其他干扰的东西?
答案 0 :(得分:0)
您通常会收到此错误,因为您尚未将您的仓库推送到远程仓库。您可能只有一个名为new_ui的本地分支,但您没有远程跟踪它 - 所以当您推送时,分支不会反映在您的远程仓库上。