Bosser sur la zone avec git
- ###########################################################
- ## Création d'un nouveau plugin sur la zone ###############
- ###########################################################
- # On commence par récupérer les plugins de la zone, mais sans prendre le contenu des dossiers
- svn checkout --depth=immediates svn://zone.spip.org/spip-zone/_plugins_
- # On crée ensuite son plugin et un trunk
- cd _plugins_
- mkdir mon_plug
- mkdir mon_plug/trunk
- # puis on le commit
- svn add mon_plug
- svn add mon_plug/trunk
- svn commit -m "ajout du nouveau plugin mon_plug"
- # On peut ensuite effacer tout ça, pour la suite on bossera avec git svn
- ############################################################
- ## importer un dépôt git existant dans la zone #############
- ############################################################
- # On crée le dossier du plugin sur la zone comme ci-dessus,
- # puis on clone ce dossier en local
- # l'option -s à la fin est utile si le dépôt SVN a la structure trunk branches tags
- git svn clone --prefix=origin/ svn://zone.spip.org/spip-zone/_plugins_/mon_plug -s
- # On crée une branche temporaire
- git branch svn
- # On importe le dépôt git existant (p.ex ici sur github
- git remote add github git@github.com:mon_compte_github/mon_plug.git
- git pull github master
- # Puis on passe tous ces commits git au-dessus du premier commit svn
- git rebase svn
- # On peut alors effacer la branche temporaire…
- git branch -d svn
- ############################################################
- ## Travailler sur un plugin existant déjà sur la zone ######
- ############################################################
- # on clone le projet à l'endroit souhaité
- # l'option -s à la fin est utile si le dépôt SVN a la structure trunk branches tags
- git svn clone --prefix=origin/ svn://zone.spip.org/spip-zone/_plugins_/mon_plug -s
- # le mieux est ensuite de se créer une branche locale
- git branch local
- # et de travailler sur cette branche
- git checkout local
- # Pour récupérer les nouveautés sur la Zone,
- # on repasse sur la branche principale
- git checkout master
- # et on chope les nouveautés
- git svn rebase
- # qu'on merge ensuite sur la branche locale
- git checkout local
- git merge master
- # Pour publier ses modifs, on commence par récupérer les
- # nouveautés comme ci-dessus…
- # Puis on merge la branche locale sur le master
- git checkout master
- git merge local
- # Et on envoie nos commits sur le SVN, chaque commit git va
- # créer un commit svn correspondant
- git svn dcommit
- # On peut ensuite travailler normalement avec git, sauf qu'au lieu de faire des
- # "git push", on fera
- git svn dcommit
source https://gist.github.com/bystrano/5755464