Tôi đã tìm kiếm tất cả các vấn đề Capistrano có liên quan, nhưng không thể tìm thấy thứ gì đó thậm chí làm sáng tỏ mọi thứ ở đây cho tôi.Capistrano và Git, Đang hủy hoại cuộc đời tôi. "Không thể giải quyết sửa đổi cho [HEAD] trên kho lưu trữ ..."
git version 1.6.4.2
Capistrano v2.5.10
Về cơ bản, khi tôi chạy kịch bản nắp deploy.rb của tôi, nó kết nối đến máy chủ, bắt đầu thực hiện các triển khai: nhiệm vụ cập nhật, sau đó trong triển khai: update_code nhiệm vụ:
*** [deploy:update_code] rolling back
* executing "rm -rf /home/user_name/public_html/project_name/releases/20091223094358; true"
servers: ["project_name.com"]
Nó thất bại với các lỗi sau:
/Library/Ruby/Gems/1.8/gems/capistrano-2.5.10/lib/capistrano/recipes/deploy/scm/git.rb:231:in `query_revision': Unable to resolve revision for 'master' on repository 'ssh://[email protected]_ip:path_to_git_repository'. (RuntimeError)
Dưới đây là kịch bản triển khai của tôi, tôi đã cố gắng bao gồm và bỏ qua:
set: branch 'master'
Tôi cũng nghĩ rằng đường dẫn đến kho lưu trữ bị tắt, nhưng tôi đã thử mọi hoán vị (tuyệt đối, không tuyệt đối, hậu tố .git, không có hậu tố). Có chắc chắn là một kho git trống ở con đường tôi đang trỏ đến.
** Tôi có nhiều dự án được lưu trữ trên một lát. Các dự án khác cũng là một dự án đường ray, nhưng đang chạy SVN. Việc triển khai Capistrano hoạt động tốt.
Bất kỳ con trỏ nào đi đúng hướng hoặc bất kỳ ý tưởng nào sẽ giúp giảm lượng nước uống mà tôi đang lên kế hoạch nếu tôi không thể tìm ra điều này. (Đường dẫn/IP bị xáo trộn, đừng hack tôi bro!)
set :application, "project1"
set :user, "username"
set :repository, "ssh://[email protected]/home/git/project1.git"
set :branch, "master"
set :port, 696969
set :deploy_to, "/home/username/public_html/#{application}"
set :scm, :git
role :app, application
role :web, application
role :db, application, :primary => true
# deployment via remote client (workstation)
set :deploy_via, :copy
set :runner, user
# mod_rails
namespace :deploy do
desc "Restarting mod_rails with restart.txt"
task :restart, :roles => :app, :except => { :no_release => true } do
run "touch #{current_path}/tmp/restart.txt"
end
[:start, :stop].each do |t|
desc "#{t} task is a no-op with mod_rails"
task t, :roles => :app do ; end
end
end
Đây là bài đăng có liên quan nhất (thậm chí có liên quan thậm chí rất quan trọng), nhưng tôi thực sự không thể biết được họ đang sửa lỗi gì. Tôi khá mới với cấu hình git/capistrano.
Cảm ơn bạn! Tôi không biết bạn có thể đặt cả hai biến, nhưng nó đã hoạt động! – Andrew