Differences
Dernière modification : 2007/08/04 01:30
Accueil
/
Changements récents
Éditer (
Aide
) /
Historique
/
Upload
Cette fonction permet d'afficher les modifications entre deux révisions d'une page. On peut ainsi voir rapidement ce qui a changé. L'idée est d'avoir un fonctionnement acceptable en gardant la légèreté de TigerWiki '''Une beta est disponible la [2.19+4b|sources/?file=2.19_4b/index.php]''' Cette fonction va sans doute être intégrée à une prochaine version de TigerWiki (voir le [thread|http://chabel.org/forum/comments.php?DiscussionID=28&page=1] sur le forum officiel) !Accessible depuis : * la page d'historique pour voir les modifs entre deux révisions arbitraires * la page des [Changements récents|?action=recent] pour voir le diff entre les deux dernières versions !Affichage : * en rouge les lignes effacées entre la plus ancienne et la plus récente * en vert les lignes ajoutées entre la plus ancienne et la plus récente * en noir les lignes non modifiées * les lignes modifiées apparaissent en rouge et en vert !Démo / test : Voir la page [TestDiff] pour une démo de la fonction : * Le [jeu de test|?action=diff&page=TestDiff&f1=20070729-1757.bak&f2=20070729-1754.bak] qui va bien * [Historique|?page=TestDiff&action=history] * [Changements récents|?action=recent] et les nouveaux liens diff * Ce wiki fonctionne avec la version concernée donc toutes les pages bénéficient du diff !Algo L'algo est simple et se base sur la fonction standard [array_diff|http://www.php.net/manual/fr/function.array-diff.php] de PHP * Cela permet d'avoir un code compact et sans dépendance * la gestion du diff est faite au niveau ligne * Il peut relativement facilement être pris en défaut ''Note:'' Tant qu'a y être j'ai changé l'ordre d'affichage de l'historique : plus récent en 1er !Problèmes : * une ligne peut être vue supprimée/ajoutée à cause des ajouts/suppressions des lignes autour * les modifs concaténées dans un seul fichier (même minute) posent un peu problème voir [par exemple|?page=UploadFichiers&action=diff&f1=20070729-1725.bak&f2=20070729-1703.bak] * si on supprime plusieurs lignes identiques en en laissant une elles ne sont pas vues ! voir [diff|?action=diff&page=TestDiff&f1=20070729-2209.bak&f2=20070729-2208.bak] entre [2208|?page=TestDiff&action=history&time=20070729-2208.bak] et [2209|?page=TestDiff&action=history&time=20070729-2209.bak] !Liste des changements : * #ligne : explication du code * 192 : on empêche le remplacement de ''HISTORY'' * 204 : tri inverse de l'historique et ajout des radio buttons * 312 : action diff entre deux fichiers puis entre les deux plus récents * 351 : ajout du lien diff dans l'action ''recent'' !Plus loin : Des méthodes plus robustes existent mais au prix d'un plus gros code : * [PHPDiff|http://www.holomind.de/phpnet/diff2.src.php] 79 lignes pour le diff sous forme GNU * [PHP inline diff|http://software.zuavra.net/inline-diff/] basé sur PEAR Text_Diff TOC
Mot de passe :
Éditer (
Aide
) /
Historique
/
Upload
Wiki utilisant
TigerWiki 2.19+4b4
2024/04/20 06:07 -- 18.218.184.214