[SPIP Zone] Script pour transférer son svn local vers son site distant

Bonjour,

J’utilise la version svn en local, en fait simplement la commande
svn checkout svn://trac.rezo.net/spip/spip .
Par contre je n’avais pas de moyen pratique pour mettre à jour spip chez mon hébergeur. En effet je ne peux pas utiliser svn.
Donc je faisait un svn export de spip dans un répertoire temporaire chez moi puis je transférais le tout par ftp chez mon hébergeur.
Seul souci ca faisait beaucoup de transfert (tous les fichiers) alors que ceux la n’était pas tous modifiés, ca laissait chez mon hébergeur tous les fichiers qui ont été supprimés de la version spip svn.

C’est pourquoi j’ai développé un script en perl pour simuler le svn checkout chez mon hébergeur.
Il s’appelle checkoutsvn et est joint à ce mail.

Comment l’utiliser :
Téléchargez le fichier joint à ce mail, placez le dans le répertoire où se trouve votre site sous spip svn en local.
Il y a 5 paramètres à personnaliser au début du script
Puis vous rendez le fichier exécutable
Vous lancez la commande :
./checkoutsvn aaaa bbbb
(où aaaa représente le numéro svn de votre version sur votre site distant et bbbb représente le numéro svn de votre version sur votre site local)
Et voila votre site distant et remis à jour chez votre hébergeur.

Que fait le script?
Il recherche grace à la commande svn log tous les fichiers modifiés, ajoutés ou supprimés entre la version aaaa et bbbb
Puis il copie tous les fichiers modifiés ou ajoutés dans un répertoire sur votre machine local (répertoire que vous devez définir)
Enfin il transfère tous les fichiers modifiés ou ajoutés par ftp chez votre hébergeur puis supprime les fichiers qu’il faut.

Donc si ça intéresse quelqu’un je joins le script à ce mail.
A+
Job

checkoutsvn (5.64 KB)

job job wrote:

Bonjour,

J'utilise la version svn en local, en fait simplement la commande
svn checkout svn://trac.rezo.net/spip/spip .
Par contre je n'avais pas de moyen pratique pour mettre à jour spip chez mon
hébergeur. En effet je ne peux pas utiliser svn.
Donc je faisait un svn export de spip dans un répertoire temporaire chez moi
puis je transférais le tout par ftp chez mon hébergeur.
Seul souci ca faisait beaucoup de transfert (tous les fichiers) alors que
ceux la n'était pas tous modifiés, ca laissait chez mon hébergeur tous les
fichiers qui ont été supprimés de la version spip svn.

C'est pourquoi j'ai développé un script en perl pour simuler le svn checkout
chez mon hébergeur.
Il s'appelle checkoutsvn et est joint à ce mail.

Comment l'utiliser :
Téléchargez le fichier joint à ce mail, placez le dans le répertoire où se
trouve votre site sous spip svn en local.
Il y a 5 paramètres à personnaliser au début du script
Puis vous rendez le fichier exécutable
Vous lancez la commande :
./checkoutsvn aaaa bbbb
(où aaaa représente le numéro svn de votre version sur votre site distant et
bbbb représente le numéro svn de votre version sur votre site local)
Et voila votre site distant et remis à jour chez votre hébergeur.

Que fait le script?
Il recherche grace à la commande svn log tous les fichiers modifiés, ajoutés
ou supprimés entre la version aaaa et bbbb
Puis il copie tous les fichiers modifiés ou ajoutés dans un répertoire sur
votre machine local (répertoire que vous devez définir)
Enfin il transfère tous les fichiers modifiés ou ajoutés par ftp chez votre
hébergeur puis supprime les fichiers qu'il faut.

Donc si ça intéresse quelqu'un je joins le script à ce mail.

C'est rigolo , je travaillais dans la même zone :slight_smile:
j'ai eu le même besoin ,
regardes http://trac.rezo.net/trac/spip-zone/browser/_outils_/svnup2tgz
(en fait j'étais dans http://trac.rezo.net/trac/spip-zone/browser/_dev_/bin_svn tout de suite , mais il y a des objectifs communs)

enfin moi c'est du bash pur et dur , je regardes ton perl

à+
--
toggg

Bonjour ,
Fais gaffe à répondre sur la liste , no bétises peuvent en intéresser d'autres.
(en fait , j'aurais dû moi-même répondre à la liste et te Cc: , d'abord :slight_smile: )
job job wrote:

Salut,

Effectivement on avait le meme besoin
Si seulement j'avais ton script avant

Oui , c'est un problème de la zone , c'est encore assez fouillis , faut dire , c'est d'abord une zone de dev ...
donc éventuellement faut se ballader un peu dans l'explorateur de trac , mais il est cool.

(En meme temps ca a été formateur pour ma part en perl)
Ton script est plus concis et mieux écrit que le mien en plus il prend en
compte les possibles conflits

T'es bien gentil.

Ce que ne fait pas le mien (je suis parti du principe que je ne touche pas
au noyau de spip)

Moi non plus , enfin ... pas dans mes repos que je garde toujours propres et où je ne copie qu'apeès tests et diffs ...
mais si je propose le script en contribution , je sais pas où il va , hein !

Sinon nous avons 2 approches différentes
Ton script poduit 2 nouveaux scripts qui sont à utiliser chez son hébergeur.
Malheureusement je ne peux pas employer cette technique car j'ai un
hébergement mutualisé qui ne permet pas le lancement de script.

tu peux toujours utiliser le .delete comme une liste de ce qu'il faut sabrer (à la main , donc)
le tgz contient les nouveaux fichiers (créés ou modifiés) , pareil , tu peux te le mettre dans un temp/ à copier par ftp.

Le script que je propose fait le tout directement, mais il faudrait peut
etre comme toi découpler en plusieurs étapes, pour vérifier si on est pas en
train de faire une connerie

Désolé , encore pas eu le temps de regarder dedans...

J'ai une question
Quelle commande de svn utilises-tu pour découvrir les fichiers modifié
ajoutés ou supprimés?
Elle a l'air lus efficace que la mienne
J'utilise svn log mais ce n'est peut-etre pas la meilleure solution.

En fait , si tu regardes , c'est fait "on the fly" ,
le script fait svn update en récupérant le log puis l'analyse pour trouver les suppressions , changements ... ou conflits.

Je suis bien content que tu te manifestes , tu as des besoins similaires mais un contexte différent , j'espère que cela permettra de faire un outil qui colle au core et embrasse le maximum de cas. :slight_smile:

As-tu vu qu'un des objectifs communs dans http://trac.rezo.net/trac/spip-zone/browser/_outils_/svnup2tgz et http://trac.rezo.net/trac/spip-zone/browser/_dev_/bin_svn est d'incorporer dans les paquets la version svn et la date ?
".svn/entries" pour svnup2tgz (comme utilisé par le core pour indiquer la version) et "svn.version" pour paquets-alternatif (qui n'est qu'en évaluation mais qui inclut aussi la date et peut-être bientôt d'autres choses comme la version de la bd)
Le but est de pouvoir savoir rapidement à quelle version on a à faire , et accessoirement d'avoir une indication correcte dans l'espace privé.

Bonne coïncidence !
--
toggg

Le 29/07/06, bertrand Gugger <bertrand@toggg.com> a écrit :

As-tu vu qu’un des objectifs communs dans
http://trac.rezo.net/trac/spip-zone/browser/outils/svnup2tgz et
http://trac.rezo.net/trac/spip-zone/browser/dev/bin_svn est
d’incorporer dans les paquets la version svn et la date ?
« .svn/entries » pour svnup2tgz (comme utilisé par le core pour indiquer
la version) et " svn.version" pour paquets-alternatif (qui n’est qu’en
évaluation mais qui inclut aussi la date et peut-être bientôt d’autres
choses comme la version de la bd)
Le but est de pouvoir savoir rapidement à quelle version on a à faire ,
et accessoirement d’avoir une indication correcte dans l’espace privé.

Effectivement la problématique n’est pas évidente?

Pour les contributeurs du noyau de spip.
Il pourrait utiliser un script afin de commiter
Celui-ci récupérant le numéro svn de la version rajouterait 1
Il écrirait ce numéro de la version dans un fichier numéro_version_svn
Puis le script lance svn commit -m etc
Comme ca le numéro de version serait sauvegardé dans spip meme

Seul probleme je ne connais absolument pas les habitudes pour commiter des différents contributeurs

A+
Job