Bosser sur la zone avec git Mots-clés bash git spip svn 22 septembre 2017 ########################################################### ## 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