J'ai recherché tous les problèmes Capistrano pertinents, mais je n'ai pas trouvé quelque chose qui m'a même permis de comprendre quelque chose ici.Capistrano et Git, ruinant ma vie. "Impossible de résoudre la révision de [HEAD] sur le référentiel ..."
git version 1.6.4.2
Capistrano v2.5.10
En fait, quand je lance mon script deploy.rb cap, il se connecte au serveur, commence à exécuter la deploy: tâche de mise à jour, dans la deploy: tâche update_code:
*** [deploy:update_code] rolling back
* executing "rm -rf /home/user_name/public_html/project_name/releases/20091223094358; true"
servers: ["project_name.com"]
Il échoue avec l'erreur suivante:
/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)
Voici mon script deploy, je l'ai essayé, y compris et en omettant:
set: branche 'master'
Je pensais aussi que mon chemin vers le dépôt était éteint, mais j'ai essayé à peu près toutes les permutations (absolu, pas absolu, suffixe .git, pas de suffixe). Il y a certainement un dépôt git nu sur le chemin que je pointe vers.
** J'ai plusieurs projets hébergés sur une seule tranche. Les autres projets sont aussi un projet de rails, mais ils utilisent SVN. Les déploiements de Capistrano fonctionnent bien.
Tout pointeur dans la bonne direction ou toute idée aiderait à réduire la quantité de boisson que je prévois de faire si je ne peux pas comprendre cela. (Chemins/IP brouillées, ne pas me pirater 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
Ce fut le plus pertinent après (extrêmement pertinente même), mais je ne pouvais pas vraiment comprendre ce qu'ils disaient le correctif est. Je suis assez nouveau avec les config git/capistrano.
Merci! Je ne savais pas que vous pouviez définir les deux variables, mais cela a fonctionné! – Andrew