Version 9 — Décembre 2020 — Pierre Bourgeois
Cette article se concentre sur les plugins. Pour des raisons techniques, si vous souhaitez installer SPIP via git, il faut utiliser spip-cli, checkout ou git_loader :
SVN > svn co svn ://zone.spip.org/spip-zone/_plugins_/projet/trunk
GIT > git clone https://git.spip.net/spip-contrib-extensions/nom_du_depot.git
SVN > svn up
GIT > git pull
SVN > svn up *
GIT > find . -mindepth 1 -maxdepth 1 -type d -print -exec git -C {} pull ~;
ou
for i in ls ./
;do cd $i ; git pull ; cd ../ ; done
Voir aussi :
https://github.com/aibeb/gitfox
https://linux.die.net/man/1/mr
SVN > svn switch svn ://zone.spip.org/spip-zone/_plugins_/projet/branches/v2
GIT > git checkout nom_de_la_branche
SVN > svn up -rNNNN
GIT > ???
La forge git propose un nouvel outil en plus des listes de discussion : après avoir vérifié que votre problème ou suggestion n’a pas déjà été signalée, vous pouvez créer un ticket dans l’onglet Tickets du dépôt correspondant.
Après en avoir discuté sur spip-dev@rezo.net, se rendre sur https://git.spip.net/, choisir la bonne organisation et créer le nouveau dépôt (le propriétaire doit être l’organisation choisie).
cd dossier_existant
git init
git remote add origin https://git.spip.net/spip-contrib-extensions/nom_du_depot.git
git add .
git commit -m "Premier commit"
git push -u origin master
git status
La référence du premier commit, deux petits points et la référence du second commit. Si on ajoute l’option -w ça ignore les changements qui ne sont que des espaces.
git diff abcdef..123456
git revert 123456
123456 étant la référence du commit à annuler.
git add nom_du_fichier_ou_dossier
git commit -m "Message de commit"
git push
Note : pour ajouter tous les fichiers, utiliser $ git add . avant de commiter.
Depuis la bascule vers git, monter la version du plugin ne suffit plus pour distribuer les modifications via SVP et plugins.spip.net, il faut désormais créer un tag. Voir https://www.mail-archive.com/spip-dev@rezo.net/msg68899.html
git tag vx.y.z
git push
git push --tags
Note : pas besoin de monter de version et créer des tags à chaque modification, il suffit de le faire une fois les modifications terminées quand vous estimez que le plugin est utilisable.
git checkout -b nom_de_la_branche
Note : une fois les modifications faites et commitées, il faut pousser sur cette branche avec $ git push origin nom_de_la_branche
QUESTION : Ou est-ce qu’il ne faut pas faire un —set-upstream ?
Quand contribuer via pull-request ? Si vous ne souhaitez pas faire de modifications directement sur la branche master d’un plugin, mais préférez passer par la validation de l’équipe qui maintient ce le plugin.
Commencer par créer un branche, dans le même dépôt, pour travailler dessus. Une fois vos modifications poussées sur cette nouvelle branche, vous pouvez lancer la demande de fusion : via l’interface web, dans l’onglet Demandes d’ajout, cliquer sur le bouton Nouvelle demande d’ajout puis sélectionner dans les menus déroulants votre nouvelle branche et la branche cible qui va recevoir vos modifications (généralement Master), puis valider avec le bouton Nouvelle demande d’ajout.
A partir de là, un mail est envoyé aux personnes en charge du plugin qui feront le nécessaire (acceptation de la PR, retour sur la page dédiée si besoin...).
Pour fusionner une branche source dans une branche cible.
git checkout nom_de_la_branche_source
git merge nom_de_la_branche_cible
https://blog.smellup.net/spip.php?article109
https://www.yterium.net/Git-c-est-facile
https://docs.gitlab.com/ce/gitlab-basics/start-using-git.html
https://github.github.com/training-kit/downloads/fr/github-git-cheat-sheet.pdf
https://github.com/AlexZeitler/gitcheatsheet/blob/master/gitcheatsheet.pdf
A fusionner/articuler avec :
https://contrib.spip.net/Git
https://contrib.spip.net/FAQ-pratique-Comment-SPIPer-avec-git-spip-net
https://contrib.spip.net/Proposer-un-patch-via-git-spip-net-pour-le-noyau-ou-la