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. 