Re: mise à jour de 3.1 par spip_loader , pb en cas d'écrasement de fichiers
James <[email protected]>
| Newsgroups | gmane.comp.web.spip.devel |
|---|---|
| Message-ID | <CAE50Zk7=+bPta82n0_OHXxTniXKydjOv1E5rNijpHbe8pQhJ8A@mail.gmail.com> |
Le 17 janvier 2016 à 10:31, Phenix <[email protected]> a écrit : > Hello, > > Je ne comprend pas bien l'intérêt de faire des diff pour obtenir la liste > des fichiers, le spip_loader va de toutes façon télécharger et décompresser > un zip sur l'hébergement. Il ne cible pas les fichiers modifiés, il ne fait > pas de diff entre les versions. > J'ai lu la remarque de DenisB et sa proposition. C'est effectivement plus simple. Mais, comme il le souligne, ça double l'espace occupé. Que fait spip_loader lors d'une mise à jour ? Il télécharge effectivement un zip et le décompresse. Concrètement, il va ajouter des nouveaux fichiers et modifier, oui, il modifie aussi, des fichiers corrigés ou améliorés. Mais, comme tu le dis, il ne fait pas de diff, il ne supprime pas les fichiers rendus obsolètes par cette mise à jour. Or, ce sont certains de ces fichiers obsolètes mais pas effacés qui provoquent des erreurs (msie-compat, req/pg.php, ...). à ma connaissance, personne ne fait de tests assez poussés, pour anticiper ces anomalies. Ce n'est pas un reproche ;-) Je rappelle que spip_loader, c'est un outil fait pour ceux qui ne peuvent pas utiliser svn sur le serveur hébergeant leurs sites et aussi pour simplifier les installations et mises à jour sans passer par ftp. Les outils de synchronisation sont rares, peu connus, et finalement assez complexes à appréhender quand l'utilisation de ftp est déjà vécue comme difficile. > Alors certes, c'est très pratique pour savoir ce qu'il faut supprimer > précisément sur l'hébergement quand on fait une mise à jour. Mais le > problème ne ce pose pas si on déplace les fichiers du core. > L'objectif du script que je propose, et qui mérite certainement d'être validé pour nous assurer qu'il est fiable, au même titre que l'on considère spip_loader comme étant fiable, est surtout d'éviter un travail pénible, empirique et peu fiable malgré toute la bonne volonté des gens qui le font, à savoir, lister les fichiers supprimés entre 2 versions... Si jamais on constate que le script est fiable, reproductible, robuste en somme, peut-être que cela deviendra profitable de l'automatiser un peu... Mais nous n'en somme pas là. > > Charger le spip_loader > - Déplacer les dossiers du core dans un dossier backup > - Lancer la mise à jour de SPIP > -> ça fonctionne, proposer à l'utilisateur de supprimer le dossier backup > -> ça échoue, lancer une erreur et restaurer les fichiers du backup > > Cela me semble la manière la plus simple de faire non ? > En supposant que cela fonctionne de manière robuste, qu'advient-il des backups de fichiers obsolètes ? Que se passe-t-il à la mise à jour suivante ? Je ne défends pas une idée plus qu'une autre. J'assemble des éléments pour que nous puissions faire le meilleur choix. Désolé si je donne l'impression du contraire. ;-) > > Le 17/01/16 01:50, James a écrit : > > Petit complément: > > ce script permet de vérifier qu'il n'y a pas de suppression de fichiers > entre, par exemple, une 3.0.20 et une 3.0.21 > j'ai fait les tests suivants : > 2.0.26 vers 2.1.28 > 2.1.28 version 3.0.21 > > et j'ai poussé les résultats ici > http://zone.spip.org/trac/spip-zone/browser/_acotes_/fichiers_supprimes > > > Le 17 janvier 2016 à 01:22, James <[email protected]> a écrit : > >> Donc, comme il n'est pas possible d'explorer les svn:externals via la >> commande svn diff, j'ai fait un script que vous pourrez trouver à l'url >> suivante : >> >> >> http://zone.spip.org/trac/spip-zone/browser/_outils_/print_deleted_files.sh >> >> c'est du bash. Je ne l'ai pas documenté. >> >> en PJ, le résultat entre 3.0.21 et 3.1.0. Sur mon ordi, le script à mis >> 2m30 pour produire le résultat complet. >> >> Fonctionnement : >> >> OLD est l'ancienne version, NEW est la nouvelle. On traite ici les tags, >> donc, les versions stables de SPIP. Ne vous amusez pas à le tester avec des >> branches de maintenance ou le trunk (je veux dire, la version de DEV) >> >> On fait la liste des plugins gérés par svn:externals des deux versions >> On compare ces listes en faisant la correspondance par le répertoire de >> chaque external >> Pour chaque plugins listé dans OLD >> Si le répertoire n'est pas listé dans NEW, on affiche de répertoire voué >> à être supprimé >> Si le répertoire est aussi listé dans NEW, on compare les fichiers via >> svn diff et on affiche les fichiers existants dans OLD et supprimés dans NEW >> On compare enfin les fichiers des 2 versions via svn diff et on affiche >> les fichiers existants dans OLD et supprimés dans NEW >> >> Amicalement, >> >> PS: pour info, Toggg avait fait un script php (du joli nom de >> cancellatore >> http://zone.spip.org/trac/spip-zone/browser/_outils_/cancellatore/cancellatore.php) >> qui efface des fichiers depuis un serveur web... En matière de sécurité, on >> fait mieux, mais on en avait besoin parce que le spip_loader de l'époque >> faisait des misères aux serveurs qui activaient le safe_mode... On avait >> envie de le fusionner avec spip_loader et puis, bon, voilà, c'est jamais >> arrivé... >> >> >> Le 16 janvier 2016 à 18:51, Franck < <[email protected]> >> [email protected]> a écrit : >> >>> Hello J >>> >>> Normalement, si je n’avais pas fait d’erreur, tu trouveras la même chose >>> que moi. >>> >>> <http://www.spip.net/ecrire/?exec=article&id_article=5842> >>> http://www.spip.net/ecrire/?exec=article&id_article=5842 >>> >>> >>> >>> Par contre en passant, je suis pas sûr, mais il me semble qu’il n’y a >>> pas eu d’équivalent pour spip 2.0 vers 2.1 ; 2.1 vers 3.0 >>> >>> Je peux faire la même chose, mais s’il y a moyen de le faire >>> automatiquement, cela serait mieux J >>> >>> Franck >>> >>> >>> >>> >>> >>> *De :* James [mailto:[email protected]] >>> *Envoyé :* samedi 16 janvier 2016 12:24 >>> *À :* SPIP-dev SPIP >>> *Objet :* Re: [spip-dev]mise à jour de 3.1 par spip_loader, pb en cas >>> d'écrasement de fichiers >>> >>> >>> >>> Salut, >>> >>> la ligne de commande suivante donne la liste des fichiers supprimés >>> entre 2 versions stable (3.0.21 vs 3.1.0): >>> svn diff --summarize --old=svn://trac.rezo.net/spip/tags/spip-3.0.21 >>> --new=svn://trac.rezo.net/spip/tags/spip-3.1.0 | egrep "^D" | sed -e >>> "s/.*spip-3.0.21\/\(.*\)$/\1/" >>> >>> résultats : >>> >>> rien.gif >>> CHANGELOG.txt >>> prive/javascript/pause.js >>> prive/javascript/jquery.colors.js >>> prive/formulaires/selecteur/jquery-ui-1.8.custom.js >>> prive/formulaires/selecteur/inc-nav-rubriques_fonctions.php >>> prive/formulaires/selecteur/rubriques_fonctions.php >>> prive/formulaires/selecteur/ajax_fonctions.php >>> prive/formulaires/selecteur/selecteur_fonctions.php >>> prive/formulaires/selecteur/picker-ajax_fonctions.php >>> prive/formulaires/selecteur/navigateur_fonctions.php >>> prive/formulaires/selecteur/articles_fonctions.php >>> prive/squelettes/inclure/plan-articles.html >>> ecrire/req/pg.php >>> ecrire/action/reorganiser.php >>> ecrire/action/iconifier.php >>> >>> C'est reproductible d'une version à l'autre, il y a peut-être moyen de >>> fournir un référentiel en ligne puis, à terme, une méthode systématique, >>> non ? >>> >>> Amicalement, >>> >>> >>> >>> >>> >>> >>> >>> Le 16 janvier 2016 à 11:32, Gilles Vincent < <[email protected]> >>> [email protected]> a écrit : >>> >>> Hello >>> >>> >>> >>> 2016-01-15 16:37 GMT+01:00 denisb via spip-dev < <[email protected]> >>> [email protected]>: >>> >>> >>> le mieux, à mon avis, serait de déplacer en backup les >>> répertoires mis à jour ecrire/, plugins-dist/, etc par exemple >>> en les renommant back_ecrire/ back_plugins-dist/ back_etc >>> >>> mais ça veut dire doubler la taille physique de l'installation >>> (ajouter 70 à 80 Mo sur l'hébergement donc...) >>> >>> >>> >>> >>> >>> Il suffirait alors d'indiquer à l'utilisateur qu'il n'est pas possible >>> de faire la sauvegarde, faut d'espace disque. >>> >>> >>> >>> >>> >>> >>> >>> >>> _______________________________________________ >>> liste: <http://listes.rezo.net/mailman/listinfo/spip-dev> >>> http://listes.rezo.net/mailman/listinfo/spip-dev >>> doc: <http://www.spip.net/>http://www.spip.net/ >>> dev: <http://trac.rezo.net/trac/spip/>http://trac.rezo.net/trac/spip/ >>> irc://irc.freenode.net/spip >>> >>> >>> >>> >>> _______________________________________________ >>> liste: http://listes.rezo.net/mailman/listinfo/spip-dev >>> doc: http://www.spip.net/ >>> dev: http://trac.rezo.net/trac/spip/ >>> irc://irc.freenode.net/spip >>> >>> >>> >>> >>> -- >>> >>> James >>> >> >> >> >> -- >> James >> > > > > -- > James > > > > > _______________________________________________ > liste: http://listes.rezo.net/mailman/listinfo/spip-dev > doc: http://www.spip.net/ > dev: http://trac.rezo.net/trac/spip/ > irc://irc.freenode.net/spip > -- James