Contactez-nous
Kitpages
17 rue de la Frise
38000 Grenoble
tel : 04 58 00 33 81
Mettre à jour Symfony Standard Edition
Warning
Cette page n'est ni vraiment à jour, ni vraiment pertinente. Je la garde en attendant de mettre une version mieux pensée.
Introduction
Si on utilise Symfony Standard Edition (2.0.0PR11 à l'heure de cet article), on télécharge d'un coup Symfony2, différents bundles et différentes librairies (doctrine2 notamment).
Ensuite, si on suit à la lettre les recommandations, notre code applicatif se retrouve mélangé avec Symforny Standard Edition (SF-SE).
Si ensuite on souhaite mettre à jour SF-SE, comment peut-on s'y prendre ?
Cet article propose une solution basée sur GIT. Elle n'est pas complètement enthousiasmante. Si vous avez des améliorations ou des idées meilleures à soumettre, je suis à votre écoute dans les commentaires.
Vue d'ensemble
Globalement, je suis les étapes suivantes :
- mettre SF-SE dans mon GIT
- Créer un 2e projet GIT par un fork de SF-SE pour mon projet
- En cas d'upgrade de SF-SE, voir comment gérer le merge
Mettre SF-SE dans mon GIT
télécharger Symfony Standard Edition sur le site http://symfony.com/download
Dézippez le dans un répertoire, et ajoutez le à votre GIT.
Voilà ce que ça pourrait donner chez vous.
git init git add . git commit -m "add initial version" git remote add origin git@mon_serveur_git:sf-se.git git push origin master
Forker le projet sf-se
Hum... fork en GIT ? c'est une notion bien connue, c'est le gros bouton "fork" dans github. Seulement git fork, ça n'existe pas. En fait c'est une forme de clone.
Voyons comment on peut faire un fork chez nous en interne.
# cloner en changeant le nom du remote de l'origine git clone -o sf-se-origin git@mon_serveur_git:sf-se.git my_project # ajouter un remote origin vers le nouveau projet git remote add origin git@mon_server_git:my_project.git # configurer une branche master spécifique au sf2 git config branch.sf-se-master.remote sf-se-origin git config branch.sf-se-master.merge refs/heads/master # dit à git que lors d'un push sur sf-se-origin # la branche sf-se-master doit aller vers la # branche master de sf-se git config remote.sf-se-origin.push refs/heads/sf-se-master:master # indique quelles branches à rappatrier lors d'un fetch git config remote.sf-se-origin.fetch +refs/heads/master:refs/remotes/sf-se-origin/master # renvoie les données my_project sur mon_serveur_git git push origin master # configure les tracking branch normales git config branch.master.remote origin git config branch.master.merge refs/heads/master
Hum... c'est une loi de la nature : rien n'est jamais simple dans GIT...
Mise à jour de Symfony2 standard Edition
Maintenant supposons qu'on doive mettre à jour Symfony Standard Edition. Voilà les étapes à suivre.
- Mettre à jour SF-SE dans le repository sf-se
- commiter puis pusher cette dernière version dans sf-se
- aller dans my-project
- faire un merge sur my-project du projet sf-se
Voyons ce que ça donne concrètement :
# télécharger la dernière version wget http://symfony.com/download?v=Symfony_Standard_Vendors_2.0.0PR11.tgz # Décompresser tar zxvf Symfony_Standard_Vendors_2.0.0PR11.tgz # ATTENTION Crados # déplacer de .git/ de l'ancienne version dans le # nouveau répertoire symfony mv sf-se/.git Symfony/ rm -rf sf-se/ mv Symfony sf-se # tout pusher dans le repository cd sf-se git add . git commit -a -m "mise en place version 2.0.0PR11" git push # merger le nouveau code git fetch sf-se-origin git merge sf-se-origin/master
Conclusion
Maintenant il ne reste plus qu'à résoudre les éventuels conflits dans votre code et à corriger les erreurs liées à la migration.
Je vous le concède, c'est assez compliqué, mais d'un autre coté ça paraît relativement propre à l'arrivée comme façon de faire.
Il y a peut-être moyen de scripter tout ça pour que les opérations paraissent plus simples.
Commentaires
Note : on ne peut plus ajouter de commentaire sur ce site