Carnet Wiki

Dossiers d’un plugin : trunk / branches / tags

Version 4 — Janvier 2018 — 78.242.xx.xx

Voir aussi
-  Poser un tag d’un plugin
-  Commandes svn de base pour la zone

Introduction
-  le trunk c’est le développement le plus avancé. En pratique c’est quasiment toujours la version pour SPIP3.
-  les branches sont les autres versions : versions antérieures mais toujours maintenues, avec des mises à jours, corrections de bugs, et en pratique des nouvelles fonctionnalités. En pratique la plupart du temps ce sont les version toujours maintenues et développées pour spip2.
-  les tags, c’est une copie instantannée d’une version. C’est destiné à ne plus jamais bouger. On ne commite jamais sur une version « tag »

En pratique, les tags sont créés exactement comme les branches, mais contrairement aux branches, ils ne sont jamais modifiés ensuite.

Création d’une branche

Voir pour l’utilisation du processus : l’explication d’usages des plugins

cedric préconise :

svn mv corbeille corbeille_trunk
svn commit 
mkdir corbeille
svn add corbeille
svn mv corbeille_trunk corbeille/trunk
svn commit

Rastapopoulos précise :

// Sauver le dossier actuel en gardant l'historique
svn move monplugin monplugin_tmp


// Créer la nouvelle structure de dossier et la commiter
mkdir monplugin
mkdir monplugin/branches
svn add monplugin
svn commit monplugin


// Si on veut tout péter : sauver l'état actuel dans une branche du nom de la version
svn cp monplugin_tmp monplugin/branches/1.5.x


// Déplacer vraiment la sauvegarde dans le trunk cad la branche de dev
svn move monplugin_tmp monplugin/trunk


svn commit monplugin 

b_b rédige un pense bête ainsi : http://www.weblog.eliaz.fr/article113.html

Joseph, qui se sert de TortoiseSVN indique avec l’appui de Cerdic :
-  renommer le répertoire monplugin en monplugin_trunk
-  commiter (pour pouvoir plus loin recréer un répertoire du même nom)
-  créer le répertoire monplugin
-  renommer le répertoire monplugin_trunk en monplugin/trunk

Marcimat explique en détail comment pour sa part, pour partir d’un plugin existant X, il a fait :

svn mv X X_tmp
svn commit -m "prépa trunk/branches" X X_tmp


svn mkdir X
svn mkdir X/branches
svn cp X_tmp X/trunk
svn mv X_tmp X/branches/v1
svn commit -m "trunk/branches" X X_tmp

Sur le blog de b_b il affine le process :

svn mv querypath querypath_old
svn mkdir querypath/branches
svn cp querypath_old querypath/branches/v1
svn mv querypath_old querypath/trunk
svn commit -m "Passage trunk/branches de querypath" querypath

Structure élémentaire normative conseillée

En résumé, sur chaque sous-répertoire de la zone (consultez : ces sous-répertoires de http://zone.spip.org/trac/spip-zone/browser/ )
Le schema normatif à utiliser est donc le suivant :

<blockquote class="spip">

spip-zone/_plugins_/ monplugin /
spip-zone/_plugins_/ monplugin / branches : pour des versions « stables » à ne plus modifier
spip-zone/_plugins_/ monplugin / branches/version_0 :
spip-zone/_plugins_/ monplugin / branches/version_2 :
spip-zone/_plugins_/ monplugin / branches/version1 :
spip-zone/_plugins_/ monplugin / tags
spip-zone/_plugins_/ monplugin / trunk : normalement la version principale
choisir pour /selon regles definies dans REGLES_COMMIT/pour la version « utile »

spip-zone/_plugins_/ monplugin /

</blockquote>

Rappel :
-  éliminez les scories (.bak, .diff, logs et code de debuging) avant de transférer
-  commentez les commits (mettre un message avec l’option -m)