Je suis passé à Git pour ma gestion de révision de fichiers en abandonnant peu à peu SVN. Je vous le conseille fortement d’ailleurs… La gestion des branches est beaucoup plus facile et intuitive que SVN.
Pour mes projets Rails j’ai besoin au minimum d’avoir 2 branches : Une pour ma version de production et une pour ma version de développement.
Ma version de développement sera dans une branche dev, et ma version de prod dans master.
Mais voilà… pour pouvoir déployer ma version de dev il faut que la branche se situe également sur le serveur et pas seulement en local sur ma machine.
La solution est de créer une remote branche :
$ git push origin origin:refs/heads/dev
$ git fetch
$ git branch -r
Voilà, notre branche a été créé sur le dépôt.
Maintenant créons une branche en local qui permet de travailler directement sur la remote branch précédemment créée :
$ git checkout --track -b dev origin/dev
Nous voilà donc avec 2 branches.
Note : Pour pouvoir fair un push de ma branche dev, un simple git push ne semble pas fonctionner lorsque l’on est dans la branche dev. Je fais donc :
$ git push origin dev
Déploiement
Nous allons utiliser le plugin capistrano-ext :
gem install capistrano-ext
voici mon deploy.rb se situant dans config/
set :stages, %w(prod dev)
set :default_stage, “dev”
require ‘capistrano/ext/multistage’
require ‘mongrel_cluster/recipes’
default_run_options[:pty] = true
Je vais créer le dossier config/deploy/ dans lequel se situera mes fichiers dev.rb et prod.rb
Me voilà donc prêt à déployer mes applications
$ cap dev deploy:setup
// Paramétrages des fichiers de config database.yml et mongrel_cluster_(dev)(prod).yml
$ cap dev deploy:cold
$ cap dev deploy (pour le déploiement normal)
Pour déployer la version en production, rien de plus simple :
$ cap prod deploy:setup
$ cap prod deploy:cold
$ cap prod deploy (pour le déploiement normal)
Il m’est maintenant plus aisé d’avoir ma version stable et de développement. Lorsque ma version de développement est validée, je la merge dans mon master :
(master) $ git merge dev
Commentaires récents