Carnet Wiki

Proposer un patch via git.spip.net

Version 4 — Mai 2019 — Pierre Bourgeois

Liste des repos

-  le core de SPIP : https://git.spip.net/SPIP/spip/

-  les plugins-dist sont dans le dossier https://git.spip.net/dist et il y a un repo par plugin.
Par exemple : https://git.spip.net/dist/organiseur

Cloner le repo sur git.spip.net

Via l’UI gitea gitlab (bouton « bifurcation » ou « fork »)

Si votre pseudo est monpseudo, cela crée un repo https://git.spip.net/monpseudo/spip ou https://git.spip.net/monpseudo/organiseur

Cloner localement le repo

Cloner localement votre clone distant.

Pour le core :

git clone https://git.spip.net/monpseudo/spip.git

Pour un plugin, par exemple :

git clone https://git.spip.net/monpseudo/organiseur.git

Brancher localement

La branche servira à faire la modif proposée sur une base propre et qui ne servira que pour ce patch.

git branch ma_modif

se mettre sur la branche

git checkout ma_modif

Créer la branche sur votre repo distant en la reliant à sa version locale

git push --set-upstream monpseudo ma_modif

Editer les fichiers

Faire vos modifs dans les fichiers

Commiter et pusher

Commiter toutes vos modifs sur cette branche (locale) :

git commit -am "un joli message de log"

Reporter sur votre repo distant :

git push

Proposer le patch aux repos SPIP

Via l’UI gitea gitlab : dans l’onglet « Demandes d’ajout » de votre repo cloné distant, cliquez « Nouvelle demande d’ajout ».
-  Dans le 1er select, laissez la destination « SPIP:master ».
-  Dans le 2e select, choisissez la branche d’origine : « monpseudo:ma_modif »
-  Vérifiez le message de commit et validez avec « Créez une demande d’ajout »

Voilà.
Votre proposition se retrouve sur https://git.spip.net/SPIP/spip/pulls

La prochaine fois

Si vous devez améliorer votre patch, restez sur cette branche ou revenez y :
git checkout ma_modif

Pour synchroniser cette branche avec les devs SPIP (master) :
— je sais pas faudra essayer —

Proposer un PR

La solution recommandée est d’utiliser une copie locale du dépôt GIT.
Passer par l’interface Web est beaucoup simpliste et ne devrait être utilisé que dans les cas simple comme la correction d’un faute de typo.

Faire la PR tout en local

Le process ci dessus passe par l’UI de git.spip.net Le process ci dessus passe par l’UI gitlab pour faire la PR, ce qui nécessite un clone distant intermédiaire géré par git gitlab .spip.net. MAIS l’UI gitea gitlab ne permet pas de créer des branches. On ne peut donc pas rester en ligne et tout faire sur l’UI gitea gitlab : il faut aussi un repo local... :-(

Comment faire pour faire une PR tout en local, sans passer par l’intermédiaire d’un clone distant et de l’UI gitea gitlab ?