Publier son projet via SVN

Vous avez un projet de plugin pour SPIP ? ou de squelette ? de noisette ? que vous aimeriez bien placer sur LA zone, voir votre œuvre publiée, ou simplement mettre à la disposition de tous votre ouvrage, travailler en équipe. Mais ...

Mais LA zone n’est réellement accessible qu’en SVN (Subversion). SVN qui vous semble complexe, obscure, hermétique. Ou, plus simplement, plus généralement, vous n’avez pas le temps de vous plonger dans les HOW-TO, les TO-DO, les MAN et autres READ-ME, LISEZ-MOI, FAQ, INFO, ...

Publication SVN par l’exemple

Voici donc en quelques lignes l’illustration des commandes nécessaires à la publication sur la zone.

L’exemple est donné ici pour le plugin imaginaire mange_moi, outil croqué par notre ami Lewis (qui s’appelait en réalité Charles) au pays des merveilles.

Qu’importe ce que fait l’outil mange_moi ! Ce billet veut juste illustrer les quelques commandes employées pour
 :

  1. créer un répertoire d’accueil sur le dépôt (le dépôt, c’est le serveur SVN qui conserve respectueusement toutes les versions des fichiers) ;
  2. créer un répertoire de travail. Le répertoire de travail est local, c’est-à-dire qu’il est présent sur votre disque dur ;
  3. ajouter un fichier à votre répertoire de travail ;
  4. publier ce fichier dans le répertoire de dépôt, et donc le rendre accessible à tous ;
  5. supprimer ce fichier ;
  6. supprimer le répertoire du projet sur le répertoire de dépôt.

Ce n’est donc qu’un simple exercice ! À vos claviers...

Pour des raisons pratiques, les liens SVN sont donnés sur le serveur de test.

Créez le répertoire du plugin sur le dépôt :

svn mkdir svn://trac.rezo.net/test/mange_moi

Le système demande le mot de passe :

Domaine d'authentification : <svn://trac.rezo.net:3690> 99a980e4-0c26-0410-a405-ef9ab5f6b07a
	Mot de passe pour 'moi@foo.bar' : 

Dans cet exemple, moi@foo.bar sera remplacé par votre adresse mail.

Entrez le mot de passe qui vous a été confié suite à votre demande/proposition de participation [1]. L’éditeur texte prend le relais (en général vi). Entrez un commentaire concernant l’action que vous venez d’effectuer puis quittez l’éditeur en sauvegardant.

Le système confirme la mise à jour :

Révision 341 propagée.

Créez le répertoire local, celui de votre projet :

mkdir mange_moi

Entrez dans votre répertoire de travail :

cd mange_moi

Faire une première mise à jour afin de créer les ressources locales à votre projet - les dossiers/fichiers .svn (notez le point à la fin de la ligne pour préciser que l’update doit être placé dans le répertoire courant) :

svn checkout svn://trac.rezo.net/test/mange_moi .

Le système confirme la mise à jour du répertoire local :

Révision 341 extraite.

Le répertoire est vide ? Normal ! Vous n’y avez encore rien déposé.

Vous souhaitez ajouter le fichier plugin.xml sur le répertoire de dépôt. Il faut d’abord demander à svn de le marquer comme fichier à envoyer, puis ensuite confirmer votre commande pour le dépôt.

Créez ou recopiez votre fichier plugin.xml dans le répertoire courant, puis marquez-le « à envoyer » :

svn add plugin.xml

Vérifiez le ou les fichiers ajoutés en attente de confirmation :

svn status

Le système répond dans cet exemple :

A       plugin.xml

Le ’A’ veut dire ’add’ (ajouter). Le fichier plugin.xml est en attente d’envoi.

Confirmez l’ajout et envoyez ce fichier :

svn commit -m "ajout du fichier plugin.xml"

L’option -m indique que ce qui suit est le texte de commentaire pour l’action demandée.

Le système répond quelque chose du genre :

Révision 342 propagée.

Vous souhaitez maintenant supprimer ce dernier fichier. Il faut d’abord demander à svn de le marquer comme fichier à supprimer, puis ensuite confirmer votre commande pour le dépôt.

Marquez le fichier « à supprimer » :

svn delete plugin.xml

Le système répond :

D         plugin.xml

Le ’D’ veut dire ’delete’ (supprimer). La suppression est en attente de confirmation.

Confirmez :

svn commit -m "suppression du fichier xml pour la démo"

Le système répond quelque chose du genre :

Révision 343 propagée.

Il ne reste plus qu’à supprimer le répertoire de test sur le dépôt :

svn delete svn://trac.rezo.net/test/mange_moi -m "supprimer ce bout de projet"

Le système répond quelque chose du genre :

Révision 344 propagée.

En quelques mots

Pas toujours souhaitable (lenteur du serveur, taille du projet très importante, hésitation sur le chemin de publication, etc.) il est parfois préférable d’utiliser la méthode « pas-à-pas » illustrée ci-dessus.

Par contre, si votre projet est composé de quelques fichiers, ou si vous êtes sûr de vous, il est possible d’importer directement l’ensemble du projet en une seule ligne de commande.

Placez-vous dans le répertoire de votre disque dur contenant le projet à recopier sur le dépôt, puis lancez :

svn import mange_moi svn://trac.rezo.net/test/mange_moi -m 'description du biscuit mange_moi'

Le premier mange_moi est le nom du répertoire présent dans votre répertoire courant. Le second, en fin d’URL, est celui de destination, créé automatiquement pour l’occasion.

Les adresses de dépôt

Dans les exemples ci-dessus, c’est le serveur de test svn ://trac.rezo.net/test qui est utilisé.

Cette adresse est à remplacer par :

  • Pour les plugins : svn://zone.spip.org/spip-zone/_plugins_
  • Pour les squelettes : svn://zone.spip.org/spip-zone/_squelettes_

et ainsi de suite (voir le browser de la zone pour en déduire les autres secteurs).

Notes

[1Voir la Charte de fonctionnement pour plus de détails à propos de votre inscription

Discussion

6 discussions

  • Bonjour,
    ’’spip’’ m’a donné un login mot de passe pour ’’la zone’’ (datant du 25/01/2017, pas utilisé depuis), avec un lien sur cet article.
    J’essaye dons d’utiliser svn (cette article est à jour ? svn ://trac.rezo.net/test/ ne serait pas à remplacer par svn ://zone.spip.org/test ?) :
    -  svn mkdir svn ://..../test/monpetitplugin « créer repertoire monpetitplugin »
    retour : Erreur lors de l’analyse des arguments , Impossible de mélanger des cibles de dépôt et de copie de travail
     ?...

    (Suivant lien de ’’spip’’ : https://zone.spip.org/trac/spip-zone/wiki/CommentUtiliserSvn -> https://openclassrooms.com/en/courses/1129121-utilisation-de-subversion) :
    -  j’ai installé svn sur mon ordi (linux debian), créé le dossier repository (svnadmin create repository)
    -  j’ai réussi à télécharger spip-dreamweaver (dont je n’ai absolument pas besoin ...)
    -  mais donc, je butte au 1. de cette doc ...)
    Si vous pouviez m’éclairer.

    Répondre à ce message

  • Pour ma part sous Linux, RapidSVN plante méchamment. J’ai finalement opté pour NautilusSVN. Ensemble de scripts en python très bien intégrés, qui marchent plutôt bien, et qui sont impressionnants d’intuitivité. Pas disponible par contre dans les dépôts, il faut chercher les paquets (ou les sources) sur le site ad hoc.

    Sinon, dans le même genre et lui dans les dépôts, il y a le paquet nautilus-script-collection-svn (sur Ubuntu du moins). C’est le même principe que NautlusSVN (pas de soft à par entière, mais des scripts intégrés). Je l’ai trouvé un peu moins bien fini par contre...

    Répondre à ce message

  • Arnaud B.

    Je confirme après plusieurs test sur mac et linux j’ai préféré RapidSVN a svnX, ou autres : largement plus simple, une seule fenêtre et surtout plus stable..

    -  Multiplateforme (pour ceux qui comme moi ont la chance de travailler sur Windows au boulot, sur mac a la maison et sur linux dans le train) vous ne serez pas dépaysé :)
    -  Opensource et gratuit

    Répondre à ce message

  • Pour linux/mac/win , en GPL :
    Subcommander : me semble très performant, par contre semble être dans la langue de Shakespeare. Développé au même endroit que subversion, si je ne me trompe.

    Ou encore RapidSVN : plus agréable que le précédent.

    Je donne ces 2 là, parceque c’est ceux qui sont “installable” rapidement sur ma distrib. Je suppose donc qu’ils sont relativement apprécié, et j’aime les multi système.

    Répondre à ce message

  • 2

    Bonjour,

    Pour les GUI de SVN, il existe TortoiseSVN pour windows et SvnX pour Mac OS X... Linux, je ne sais pas ce qu’il en est.

    Répondre à ce message

  • ouch... rien de plus simple ? y’a pas des logiciel que l’on peu installer en local pour faire la ’synchro’ entre un repertoire local et le svn distant... c’est une mission d’utiliser la ligne de commande, non ? :)

    J’espere que certains apporterons leur petit truc pratique poru se simplifier un peu le SVN.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom