[SPIP Zone] Calcul des archives de la zone

Bonjour,

j'ai songé à une alternative à la méthode actuelle en shell :
Actuellement toutes les demi-heures, un svn info est fait sur tous les
éléments à archiver (puis des accès disques, etc..). Est-ce qu'il ne
suffirait pas de simplement parser les diffs fournis par Trac, entre
la version de tête et la dernière version utilisée pour le calcul des
zip ?

Ca donne ça :
http://trac.rezo.net/trac/spip-zone/changeset?format=diff&old=8354&new=8377&new_path=%2F&old_path=%2F

Ca interroge uniquement la base sqlite, et retourne l'ensemble des
fichiers modifiés en un seul appel.

Ensuite, sur la base des lignes commençant par +++, en comparant avec
le fichier qui liste les répertoires à archiver, c'est simplicime de
trouver les archives à mettre à jour.

A mon avis, ce serait nettement moins gourmant en ressources et ça ne
monopoliserait pas svn (qui n'a pas l'air de gérer le multithread,
d'après un dernier post)

Qu'en pensez-vous ?

.Gilles
----

2007/1/4, bertrand@toggg.com <bertrand@toggg.com>:

Author: bertrand@toggg.com
Date: Thu Jan 4 08:22:21 2007
New Revision: 8477

Log:
Avec eval , ca marche , pas compris pourquoi y en a besoin la et pas dans paquet-unique ou paquet-version ... a suivre paquet-version en double a eliminer

Modified:
    _dev_/bin_svn/paquets-zone.sh

Modified: _dev_/bin_svn/paquets-zone.sh

--- _dev_/bin_svn/paquets-zone.sh (original)
+++ _dev_/bin_svn/paquets-zone.sh Thu Jan 4 08:22:21 2007
@@ -94,8 +94,9 @@
                arc=${arc:=${rep##*/}}
             nam=${nam:=$arc}
                        echo '<zone_elt>' >> $paqxml
- $paquetversionsh $rev "$oritruc/$rep" >> $paqxml
- echo "<archivelist>$rep;$arc;$nam</archivelist>" >> $paqxml
+ svnversion=$(eval "$paquetversionsh$rev $oritruc/$rep")"
+ <archivelist>$rep;$arc;$nam</archivelist>"
+ echo $svnversion >> $paqxml
                        echo '</zone_elt>' >> $paqxml
                        if [ -s "$destruc/$arc.zip" ] \
                           && [ "$destruc/$arc.zip" -nt "$oritruc/$rep/.svn/entries" ]
@@ -103,7 +104,8 @@
                                echo "$rep =="
                        else
                                export PQ_TRAC
- $paquetunique $rev "$oritruc/$rep" "$destruc/$arc" "$nam" "$temp" "$rul"
+ paquni=$(eval "$paquetunique$rev $oritruc/$rep $destruc/$arc $nam $temp $rul")
+ echo $paquni
             fi
         fi
     done

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

Gilles Vincent wrote:

Bonjour,

j'ai songé à une alternative à la méthode actuelle en shell :
Actuellement toutes les demi-heures, un svn info est fait sur tous les
éléments à archiver (puis des accès disques, etc..). Est-ce qu'il ne
suffirait pas de simplement parser les diffs fournis par Trac, entre
la version de tête et la dernière version utilisée pour le calcul des
zip ?

Ca donne ça :
http://trac.rezo.net/trac/spip-zone/changeset?format=diff&old=8354&new=8377&new_path=%2F&old_path=%2F

Ca interroge uniquement la base sqlite, et retourne l'ensemble des
fichiers modifiés en un seul appel.

Ensuite, sur la base des lignes commençant par +++, en comparant avec
le fichier qui liste les répertoires à archiver, c'est simplicime de
trouver les archives à mettre à jour.
  

vazy

A mon avis, ce serait nettement moins gourmant en ressources et ça ne
monopoliserait pas svn (qui n'a pas l'air de gérer le multithread,
d'après un dernier post)

Qu'en pensez-vous ?
  

J'en pense que tu ne lis pas la liste ou que tu fais semblant.
cf. mon dernier message et
http://trac.rezo.net/trac/spip-zone/browser/_dev_/bin_svn/zonedist.sh
http://trac.rezo.net/trac/spip-zone/browser/_dev_/bin_svn/zonedist.php

Là-dessus , j'ai repris ce truc qu'était pourri à donf , tournait une fois par 24H seulement et ne fournissait aucune information (svn.revision, ref.xml, paquets.xml), donc je pense qu'il y a déjà beaucoup de mieux.

Au passage (et c'est ce qui inpose le svn info) la possibilité d'indiquer une revision est maintenant en place.
cf. crayons-stable en première ligne de archivelist.txt que je dois encore commenter.

Par ailleurs, si il peut sembler que c'est plus lent, c'est aussi parce que je l'ai passé en nice -19 histoire d'embéter un minimum la machine hôte.

En tout cas, paquet-version n'est plus en double.

Note: le log a changé et reflete maintenant le nom de l'archive ce qui est plus logique.

Enfin le paquets.xml.gz est en place , un element <archivelist> lui a été adjoint au cas où ça en vient.

Mais bon, tu as mieux , vas-y :slight_smile:
--
toggg

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

> suffirait pas de simplement parser les diffs fournis par Trac, entre
> la version de tête et la dernière version utilisée pour le calcul des
> zip ?
vazy

oki

> A mon avis, ce serait nettement moins gourmant en ressources et ça ne
> monopoliserait pas svn (qui n'a pas l'air de gérer le multithread,
> d'après un dernier post)
>
> Qu'en pensez-vous ?
>
J'en pense que tu ne lis pas la liste ou que tu fais semblant.

Tu as raison, je lis très peu la liste (en tout cas j'ai eu un gros
blanc car je n'avais plus le temps libre pour tout suivre). Bon, gmail
me permet de suivre les fils de discussion, et m'épargne l'ouverture
de tous les commits. Donc faut être un peu pédagogique avec moi.

cf. mon dernier message et
http://trac.rezo.net/trac/spip-zone/browser/_dev_/bin_svn/zonedist.sh
http://trac.rezo.net/trac/spip-zone/browser/_dev_/bin_svn/zonedist.php

Je suis pas hyper doué en shell, donc j'avoue avoir du mal à m'y retrouver

Là-dessus , j'ai repris ce truc qu'était pourri à donf , tournait une
fois par 24H seulement et ne fournissait aucune information
(svn.revision, ref.xml, paquets.xml), donc je pense qu'il y a déjà
beaucoup de mieux.

Oui, je suis d'accord

Au passage (et c'est ce qui inpose le svn info) la possibilité
d'indiquer une revision est maintenant en place.
cf. crayons-stable en première ligne de archivelist.txt que je dois
encore commenter.

Hum! J'y suis pour quelquechose ? :wink:

Par ailleurs, si il peut sembler que c'est plus lent, c'est aussi parce
que je l'ai passé en nice -19 histoire d'embéter un minimum la machine hôte.

Ca n'empeche pas de verrouiller svnserve lorsque ça l'utilise, non ?

En tout cas, paquet-version n'est plus en double.

Je te fais confiance à 100% là dessus

Note: le log a changé et reflete maintenant le nom de l'archive ce qui
est plus logique.

Enfin le paquets.xml.gz est en place , un element <archivelist> lui a
été adjoint au cas où ça en vient.

C'est parfait. Je reconnais que ta méthode est très approfondie

Mais bon, tu as mieux , vas-y :slight_smile:

Maintenant y'a plus qu'à.

.Gilles
---

--
toggg