Skip to content

Instantly share code, notes, and snippets.

@bystrano
Last active August 14, 2018 12:20
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bystrano/5755464 to your computer and use it in GitHub Desktop.
Save bystrano/5755464 to your computer and use it in GitHub Desktop.
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment