require 'mongrel_cluster/recipes'
set :user, "root"
set :application, "ecox.com"
set :repository, "file:///home/svn-repository/ecox/trunk"
set :svn_username, "root"
role :web, application
role :app, application
role :db, application
set :deploy_to, "/home/web/ecox.com/ftp/www"
set :mongrel_conf, "#{current_path}/config/mongrel_cluster.yml"
desc <<DESC
An imaginary backup task. (Execute the 'show_tasks' task to display
all
available tasks.)
DESC
task :backup, :roles => :db, :only => { :primary => true } do
on_rollback { delete “/tmp/dump.sql” }
run "mysqldump -u theuser -p thedatabase > /tmp/dump.sql" do |ch,
stream, out|
ch.send_data "thepassword\n" if out =~ /^Enter password:/
end
end
desc "Demonstrates the various helper methods available to recipes."
task :helper_demo do
setup
buffer = render("maintenance.rhtml", :deadline => ENV['UNTIL'])
put buffer, "#{shared_path}/system/maintenance.html", :mode =>
0644
sudo “killall -USR1 dispatch.fcgi”
run “#{release_path}/script/spin”
delete “#{shared_path}/system/maintenance.html”
end
desc "A task demonstrating the use of transactions."
task :long_deploy do
transaction do
update_code
disable_web
symlink
migrate
end
restart
enable_web
end
svnadmin create /home/svn-repository ?
Si oui, alors le problème est là
“svnadmin create” va créer un nouveau repository … si tu veux les
centraliser alors il faut créer un répertoire /home/svn (ou n’importe
quoi d’autre) et c’est dans celui-ci que tu fera tes “svnadmin create
/home/svn/myapplication”
en effet je crois avoir fait “svnadmin create
/home/svn-repository”… J’ai donc supprimer ce dossier, créé /home/svn
et exécuté “svnadmin create /home/svn/myapplication” dans le dossier de
mon application. Mais quand j’exécute “svn info”, il me donne toujours
l’URL “file:///home/svn-repository/ecox/trunk”.
en fait svnadmin create /path/to/repos va creer un repository “vierge”
En suite il faudra faire un “import” de ton projet dedans.
Puis creer un copie de travail de ce repos (checkout)
Sinon, dis nous comment se présente ton archi : config du serv, config
du client, et qui fait quoi (où est ton serveur svn : client?
serveur?) etc…
je te conseil de le mettre sur ton serveur, “capistrano” va y accéder
lors du deploy pour faire le checkout … dans la mésure du possible
il lui faudrait une URL valide (localhost c’est moyen) svn://ndd (ou
l’ip)/myapplication par exemple !
Il faudrait que tu arrives a faire un “svn co
svn+ssh://root@IP_ou_NDD/myapplication” de n’importe où (du client, du
serveur).
En suite il faudra faire un “import” de ton projet dedans.
OK, ça c’est fait…
Puis creer un copie de travail de ce repos (checkout)
myserver:/path/to/my/application# svn checkout
svn+ssh://root@localhost/home/svn/myapplication .
Password: xxxxxxx
svn: '' is already a working copy for a different URL; run 'svn
update' to complete it.
→ en effet, “svn info” balance toujours l’url de mon ancien “mauvais”
repository.
Il faudrait que tu arrives a faire un “svn co
svn+ssh://root@IP_ou_NDD/myapplication” de n’importe où (du client, du
serveur).
En tout cas, merci pour vos aides. Je cafouille pas mal mais j’apprends
de mieux en mieux comment tout cela fonctionne…
Si tout est sur la même machine l’interêt de Capistrano est limité au
simple apprentissage, cependant je te conseil de faire comme ceci :
Déjà diviser ton espace de travail en 2 (+1)
a. production
b. dev
(c. ) repertoire actuel (qui ne servira plus, ou alors pour des
simples backups … quoi qu’avec SVN normalement…
Créer le repos (svnadmin create /home/svn/monapp)
Faire un import de “c.” dans le nouveau repos
Créer “b.” (où tu veux), ce sont ces fichiers que tu modifiera pour ton dev
Faire un checkout du repos dans “b.” (tu as donc une copie de
travail … svn info pour être sur)
(re-)Configurer Capistrano (en lui spécifiant “a.” comme repetoire
pour l’application finale) / Faire les modifs necessaires… + commit
eventuel.
“The :repository variable is the location of the (subversion, in this
case) repository that stores our code. (Note that, for subversion, you
cannot use file:// repositories with Capistrano.)”
deux solutions, utilisé le serveur on va dire en “global” (j’ai oublié
les commandes pour ta distrib) soient le lancé de façon “spécifique”
comme ceci :
“svnserve -d -r /home/svn”
tu devrais avoir acces a ton repos comme ceci svn://localhost/myapp ,
essaye un svn co svn://localhost/myapp. tant que ceci ne fonctionnera
pas, capistrano ne fonctionnera pas non plus.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.