[SPIP Zone] plugin "svn update"

Coucou,

je viens de faire un plugin "svn update" à partir de celui de Cedric ; je
n'ai pas pris la même approche, voici les différences :

- là où il ajoutait un bouton d'admin "svn update" sur les pages publiques,
  j'ai préféré une page spécifique dans l'espace privé
  (ecrire/?exec=svn_update)

- on peut updater SPIP, le répertoire de squelettes, le répertoire de
  plugins, etc : il suffit pour cela de lister les répertoires branchés
  dans mes_options, sous la forme
        define('_SVN_UPDATE_DIRS', './:plugins/');

  (ici, la racine -- donc SPIP -- et le répertoire de plugins ; par défaut
  seul ./ est prévu)

- seuls les admins numérotés explicitement sont autorisés à lancer la
  procédure ; par défaut c'est l'admin numéro 1, ça se configure sous
  forme de liste de numéros :
        define('_SVN_UPDATE_AUTEURS', '1:3');

A noter, sous AlternC ça fonctionne si svn fait partie des binaires
autorisés (ce qui est contradictoire avec le mode de sécurité d'AlternC...
donc possible uniquement sur des machines qui font confiance à leurs
hébergés). Je vais voir avec les gens d'AlternC s'ils ont une solution à ce
problème...

-- Fil

Le 12/09/06, Fil <fil@rezo.net> a écrit :

Coucou,

je viens de faire un plugin « svn update » à partir de celui de Cedric ; je
n’ai pas pris la même approche, voici les différences :

A noter, sous AlternC ça fonctionne si svn fait partie des binaires
autorisés (ce qui est contradictoire avec le mode de sécurité d’AlternC…
donc possible uniquement sur des machines qui font confiance à leurs
hébergés). Je vais voir avec les gens d’AlternC s’ils ont une solution à ce
problème…

– Fil

Je viens de le tester sur un serveur perso, ça passe bien il faut bien penser à donner les droits au user qui execute apache (ou svn ?) d’ecrire dans les repertoires.

Merci pour cette bonne idée

Arnaud

Je tente d'utiliser le plugin mais j'ai le message : Désolé, aucun répertoire n'est accessible en SVN.
Comment définir l'adresse snv de spip "svn://trac.rezo.net/spip" et de la zone "svn://zone.spip.org/spip-zone/_plugins_" ? Il faut les mettre dans mes_options.php ? Avec quelle syntaxe ?
Merci pour vos lumières.

Laurent Casagrande

Fil a écrit :

Coucou,

je viens de faire un plugin "svn update" à partir de celui de Cedric ; je
n'ai pas pris la même approche, voici les différences :

- là où il ajoutait un bouton d'admin "svn update" sur les pages publiques,
  j'ai préféré une page spécifique dans l'espace privé
  (ecrire/?exec=svn_update)

- on peut updater SPIP, le répertoire de squelettes, le répertoire de
  plugins, etc : il suffit pour cela de lister les répertoires branchés
  dans mes_options, sous la forme define('_SVN_UPDATE_DIRS', './:plugins/');

  (ici, la racine -- donc SPIP -- et le répertoire de plugins ; par défaut
  seul ./ est prévu)

- seuls les admins numérotés explicitement sont autorisés à lancer la
  procédure ; par défaut c'est l'admin numéro 1, ça se configure sous
  forme de liste de numéros :
        define('_SVN_UPDATE_AUTEURS', '1:3');

A noter, sous AlternC ça fonctionne si svn fait partie des binaires
autorisés (ce qui est contradictoire avec le mode de sécurité d'AlternC...
donc possible uniquement sur des machines qui font confiance à leurs
hébergés). Je vais voir avec les gens d'AlternC s'ils ont une solution à ce
problème...

-- Fil

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

--
__________________________
   Laurent Casagrande

CRDP de Bourgogne - Dijon
__________________________

Bonjour ,
Il y a une dépendance de base sur l'existence de svn (la commande) sur la machine cible.
Exemple , puisqu'on en parle beaucoup , je ne l'ai pas trouvée chez 1&1.
Personellement , je ne mettrais jamais svn pour un compte de production.
(oui , c'est de la frime)

C'est sans doute bien présomptueux , mais je fais une relation
à
http://trac.rezo.net/trac/spip-zone/browser/_dev_/bin_svn
,
http://trac.rezo.net/trac/spip-zone/browser/_outils_/svnup2tgz
ou
http://trac.rezo.net/trac/spip-zone/browser/_outils_/svnup2ftp
(que je suis bien content de saluer, leur réaction fut prompte)

Je pense , et je suis persuadé aussi que tu es d'accord , les divers modes distributions doivent se rejoindre.

... salut aussi à Laurent et mon frerôt bien sur
(je me suis fais jeté récemment pareil en disant svn://machin.truc...)

--
toggg

Fil wrote:

Coucou,

je viens de faire un plugin "svn update" à partir de celui de Cedric ; je
n'ai pas pris la même approche, voici les différences :

- là où il ajoutait un bouton d'admin "svn update" sur les pages publiques,
  j'ai préféré une page spécifique dans l'espace privé
  (ecrire/?exec=svn_update)

- on peut updater SPIP, le répertoire de squelettes, le répertoire de
  plugins, etc : il suffit pour cela de lister les répertoires branchés
  dans mes_options, sous la forme define('_SVN_UPDATE_DIRS', './:plugins/');

  (ici, la racine -- donc SPIP -- et le répertoire de plugins ; par défaut
  seul ./ est prévu)

- seuls les admins numérotés explicitement sont autorisés à lancer la
  procédure ; par défaut c'est l'admin numéro 1, ça se configure sous
  forme de liste de numéros :
        define('_SVN_UPDATE_AUTEURS', '1:3');

A noter, sous AlternC ça fonctionne si svn fait partie des binaires
autorisés (ce qui est contradictoire avec le mode de sécurité d'AlternC...
donc possible uniquement sur des machines qui font confiance à leurs
hébergés). Je vais voir avec les gens d'AlternC s'ils ont une solution à ce
problème...

-- Fil

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

bertrand Gugger a écrit :

Bonjour ,
Il y a une dépendance de base sur l'existence de svn (la commande) sur la machine cible.
Exemple , puisqu'on en parle beaucoup , je ne l'ai pas trouvée chez 1&1.
Personellement , je ne mettrais jamais svn pour un compte de production.
(oui , c'est de la frime)

C'est sans doute bien présomptueux , mais je fais une relation
à
http://trac.rezo.net/trac/spip-zone/browser/_dev_/bin_svn
,
http://trac.rezo.net/trac/spip-zone/browser/_outils_/svnup2tgz
ou
http://trac.rezo.net/trac/spip-zone/browser/_outils_/svnup2ftp
(que je suis bien content de saluer, leur réaction fut prompte)

Je pense , et je suis persuadé aussi que tu es d'accord , les divers modes distributions doivent se rejoindre.

Merci pour ça, mais je ne suis pas beaucoup aidé.
Sur mon serveur, il y a svn (la commande svn help fonctionne).
J'ai un site spip qui a été installé par en ftp depuis mon poste de travail (version 1.9.1) : http://neill.u-bourgogne.fr/crdp_1_9_1/
si j'utilise le plugin j'ai le message : Désolé, aucun répertoire n'est accessible en SVN.

Je pense commencer à comprendre, il faut que je fasse un svn checkout en ligne de commande sur mon serveur de svn://trac.rezo.net/spip/ dans le répertoire où est installé mon spip (/var/www/html/crdp_1_9_1/) et ensuite le plugin devrait fonctionner ? C'est ça ?
Si je souhaite garder à jour uniquement la branche stable de la 1_9_1 je fait svn checkout svn://trac.rezo.net/trac/spip/branches/spip-1.9 /var/www/html/crdp_1_9_1/

Cette commande installe une version svn de la branche 1.9 dans la répertoire var/www/html/crdp_1_9_1/ de mon serveur ?
Donc après un svn update fonctionnera.
encore une chose pour faire cela il faut avoir un accès en ligne de commande sur le serveur ? Comment fait-on si on a uniquement un accès ftp ?
Merci de me dire si j'ai compris.

--
__________________________
   Laurent Casagrande

CRDP de Bourgogne - Dijon
__________________________

Je pense commencer à comprendre, il faut que je fasse un svn checkout en
ligne de commande sur mon serveur de svn://trac.rezo.net/spip/ dans le
répertoire où est installé mon spip (/var/www/html/crdp_1_9_1/) et
ensuite le plugin devrait fonctionner ? C'est ça ?

Oui

Si je souhaite garder à jour uniquement la branche stable de la 1_9_1 je
fait svn checkout svn://trac.rezo.net/trac/spip/branches/spip-1.9
/var/www/html/crdp_1_9_1/

Exactement

Cette commande installe une version svn de la branche 1.9 dans la
répertoire var/www/html/crdp_1_9_1/ de mon serveur ?
Donc après un svn update fonctionnera.
encore une chose pour faire cela il faut avoir un accès en ligne de
commande sur le serveur ? Comment fait-on si on a uniquement un accès ftp ?
Merci de me dire si j'ai compris.

Pour le checkout initial, tu peux faire un script php à déposer à la racine
du serveur du genre :

<?php
        $a = exec('svn co svn://trac.rezo.net/trac/spip/branches/spip-1.9/ ./');
        print_r($a);
?>

S'il fonctionne, ton install est sous SVN (et tu dois alors supprimer ce
script d'install pour évitrer toute blague...)

Evidememnt aucun plugin ne va fonctionner tant que SPIP n'est pas installé :
il manque une brique ici, un "spip-loader svn"...

-- Fil

Le 13/09/06, Laurent Casagrande <l.casagrande@free.fr> a écrit :

Je tente d’utiliser le plugin mais j’ai le message : Désolé, aucun
répertoire n’est accessible en SVN.
Comment définir l’adresse snv de spip « svn://trac.rezo.net/spip » et de
la zone « svn://zone.spip.org/spip-zone/plugins » ? Il faut les mettre
dans mes_options.php ? Avec quelle syntaxe ?
Merci pour vos lumières.

Pour que l’update soit possible il faut que le site ait été construit à partir d’une descente directe via svn :
svn checkout svn://trac.rezo.net/spip/spip (pour la partie spip, pour les squelettes plugins … idem mais à partir de spip zone (voir les adresses sur http://zone.spip.org/trac/spip-zone/ )

le plugin permet ensuite de faire des mises à jour (svn update) depuis le repository spip.

au minimum tu dois avoir svn utilisable sur ton serveur et pouvoir lancer la commande de checkout pour la creation locale des fichiers.


Arnaud

OK , il faut exec & svn + un shell ?
Je répondais à fil au départ en fait , laurent.
--
toggg

Fil wrote:

Je pense commencer à comprendre, il faut que je fasse un svn checkout en ligne de commande sur mon serveur de svn://trac.rezo.net/spip/ dans le répertoire où est installé mon spip (/var/www/html/crdp_1_9_1/) et ensuite le plugin devrait fonctionner ? C'est ça ?
    
Oui

Si je souhaite garder à jour uniquement la branche stable de la 1_9_1 je fait svn checkout svn://trac.rezo.net/trac/spip/branches/spip-1.9 /var/www/html/crdp_1_9_1/
    
Exactement

Cette commande installe une version svn de la branche 1.9 dans la répertoire var/www/html/crdp_1_9_1/ de mon serveur ?
Donc après un svn update fonctionnera.
encore une chose pour faire cela il faut avoir un accès en ligne de commande sur le serveur ? Comment fait-on si on a uniquement un accès ftp ?
Merci de me dire si j'ai compris.
    
Pour le checkout initial, tu peux faire un script php à déposer à la racine
du serveur du genre :

<?php
        $a = exec('svn co svn://trac.rezo.net/trac/spip/branches/spip-1.9/ ./');
        print_r($a);
?>

S'il fonctionne, ton install est sous SVN (et tu dois alors supprimer ce
script d'install pour évitrer toute blague...)

Evidememnt aucun plugin ne va fonctionner tant que SPIP n'est pas installé :
il manque une brique ici, un "spip-loader svn"...

-- Fil

_______________________________________________
spip-zone@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone

OK , il faut exec & svn + un shell ?

Oui il faut tout ça, y compris les droits pour httpd d'écrire les fichiers
php (ce qui n'est pas top sécure).

Une autre méthode serait de faire un "touch" sur un fichier nommé (par
exemple) update_svn.txt, et d'avoir un démon qui toutes les 5 minutes
recherche ces fichiers sur le disque et fait les mises à jour
correspondantes. Mais on entre alors dans la conception complète d'un
serveur (ce qui est de plus en plus courant dans la réalité de toutes
façons, cf. dedibox).

-- Fil

Fil a écrit :

Je pense commencer à comprendre, il faut que je fasse un svn checkout en ligne de commande sur mon serveur de svn://trac.rezo.net/spip/ dans le répertoire où est installé mon spip (/var/www/html/crdp_1_9_1/) et ensuite le plugin devrait fonctionner ? C'est ça ?

Oui

Si je souhaite garder à jour uniquement la branche stable de la 1_9_1 je fait svn checkout svn://trac.rezo.net/trac/spip/branches/spip-1.9 /var/www/html/crdp_1_9_1/

Exactement

Merci beaucoup pour ces confirmation.
Encore une petite question, est-ce que je peut faire un chechout initial dans le répertoire ou existe un spip 1.9.1 installé en ftp ? ou vaut-il mieux utiliser un autre répertoire tout neuf ?

--
__________________________
   Laurent Casagrande

CRDP de Bourgogne - Dijon
__________________________

Encore une petite question, est-ce que je peut faire un chechout initial
dans le répertoire ou existe un spip 1.9.1 installé en ftp ? ou vaut-il
mieux utiliser un autre répertoire tout neuf ?

Je crois qu'il faut démarrer par un répertoire vierge, sinon tu auras des
erreurs sur chaque fichier. Ensuite tu peux copier le contenu dans l'autre
répertoire, à condition de ne pas oublier les répertoires cachés .svn/ qui
sont dans toute l'arborescence.

Autre truc avec SVN : l'espace disque utilisé double, puisque SVN conserve
(dans ces répertoires .svn) une copie "propre" de chaque fichier pour
pouvoir faire des diff très vite.

-- Fil