• =?UTF-8?Q?Re=3A_Outils_de_comparaison_de_fichier_=C3=A0_deux_pannea?= =

    From =?UTF-8?Q?Beno=C3=AEt_Barbier?=@21:1/5 to All on Sun Feb 23 14:50:01 2025
    Le 23/02/25 à 14:36, Benoît Barbier a écrit :

    https://meldmerge.org/
    Meld c'est pour du code ou du contenu texte, c'était juste un exemple de
    type d'ergonomie.

    --
    Benoît

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Beno=C3=AEt_Barbier?=@21:1/5 to All on Sun Feb 23 15:00:01 2025
    Bonjour,

    J'étais à deux doigts de poster un complément, car je me suis mal exprimé. Je ne cherche pas à comparer le contenu de fichiers (comme du texte ou
    du code) mais à comparer des arborescences(répertoires/fichiers), sans rentrer dans le contenu des fichiers.
    Meld le fait par comparaison binaire de fichiers, mais c'est lourd pour
    lui, il n'est pas fait pour ça.
    En plus si un fichier n'est pas présent dans une arborescence, il ne m'indiquera pas qu'il est autre part.




    Le 23/02/25 à 14:51, Bernard Schoenacker a écrit :
    Bonjour,

    Cher Barbier, voici un début de piste :

    https://github.com/sindrets/diffview.nvim

    Mais il faut installer neovim...

    Ensuite, pour du code et qui fait le café :

    Emacs

    https://github.com/mgalgs/diffview-mode


    Bonne chance pour la suite


    Merci

    @+

    Bernard

    ----- Mail original -----
    De: "Benoît Barbier" <benoitlst@ouvaton.org>
    À: "Liste Debian" <debian-user-french@lists.debian.org>
    Envoyé: Dimanche 23 Février 2025 14:36:19
    Objet: Outils de comparaison de fichier à deux panneaux

    Bonjour,

    Je recherche un outil de comparaison de répertoires à deux panneaux qui fonctionnerait comme un outil diff comme meld pour comparer deux
    répertoires ou deux arborescences.
    Avec la possibilité de pousser la différence à gauche ou à droite, qui montre le plus récent.
    Cf.
    https://meldmerge.org/

    Le problème qui se pose : dans le panneau de gauche j’ai un fichier sur un disque dur externe, il n’est pas dans le répertoire du même nom dans le panneau de droite, mais ne serait-il pas autre part dans
    l’arborescence du disque dur ?

    Il faudrait un outil qui travail avec la base de donnée updatedb/locate
    ou qui a une autre méthode pour me signaler que le fichier n’est pas
    dans le panneau opposé mais autre part sur le disque.


    Merci d’avance.

    Benoît


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Th.A.C@21:1/5 to All on Sun Feb 23 15:30:01 2025
    Le 23/02/2025 à 14:36, Benoît Barbier a écrit :
    Bonjour,

    Je recherche un outil de comparaison de répertoires à deux panneaux qui fonctionnerait comme un outil diff comme meld pour comparer deux
    répertoires ou deux arborescences.
    Avec la possibilité de pousser la différence à gauche ou à droite, qui montre le plus récent.
    Cf.
    https://meldmerge.org/

    Le problème qui se pose : dans le panneau de gauche j’ai un fichier sur un disque dur externe, il n’est pas dans le répertoire du même nom dans le panneau de droite, mais ne serait-il pas autre part dans
    l’arborescence du disque dur ?

    Il faudrait un outil qui travail avec la base de donnée updatedb/locate
    ou qui a une autre méthode pour me signaler que le fichier n’est pas
    dans le panneau opposé mais autre part sur le disque.


    Merci d’avance.

    Benoît


    Pour comparer des répertoires/fichiers (pas une arborescence ou j'ai mal
    vu): mc (Midnight Commander)

    Il y a peut-être d'autres options qui te seraient utiles ?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Beno=C3=AEt_Barbier?=@21:1/5 to All on Sun Feb 23 15:50:02 2025
    Le 23/02/25 à 15:22, Th.A.C a écrit :


    Pour comparer des répertoires/fichiers (pas une arborescence ou j'ai mal vu): mc (Midnight Commander)

    Il y a peut-être d'autres options qui te seraient utiles ?


    En effet, j'aurais mieux fait de citer unison comme exemple d'ergonomie ! J'induis tout le monde en erreur en citant meld.

    Cela dit ni mc ni unisson ne détecte si un fichier d'un panneau ne
    serait pas autre part sur le disque, bien que absent du panneau opposé.
    Si j'avais ça en plus ça serait top !

    Benoît

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Beno=C3=AEt_Barbier?=@21:1/5 to All on Sun Feb 23 15:30:01 2025
    Bonjour,


    C'est juste à un instant T (pas besoin de crontab) comparer les fichiers
    du disque d'un ordi à un disque externe. Et c'est bien sur le système de fichier local d'un pc (pas d'un serveur qui fait de nombreuse écritures
    en permanence).

    Il n'est même pas nécessaire de retrouver deux fichiers de nom distincts
    mais de contenus identiques.

    Je me suis demandé si je ne pourrais pas opter pour un outil
    rudimentaire DIY en bash avec zenity:

    Faire une mise à jour de la liste des fichiers du système avec updatedb (disque externe non branché)
    https://manpages.org/updatedb


    Boucler sur tous les fichiers du disque externe jusqu'au fond de chaque arborescence.
    Pour chaque fichier cliqué :
    locate nomFichier

    si trouvé comparer le plus récent
    Si pas trouvé proposer de le copier dans le panneau opposé.

    Un truc aussi rudimentaire me conviendrait pour mettre de l'ordre dans
    des fichiers à un instant T sur un PC, qui ne fait rien d'autre.
    Pas sur un serveur qui écrit en permanence sur le disque

    Mais si ça existe, je prends!

    Je ne vais pas réinventer la roue, même si ça peut être amusant à écrire ! ;-)

    Est-ce que je dis une grosse bêtise et sous-estime la difficulté de la
    tâche ?

    --

    Benoît

    Le 23/02/25 à 14:55, Basile Starynkevitch a écrit :
    On Sun, 2025-02-23 at 14:36 +0100, Benoît Barbier wrote:
    Bonjour,

    Je recherche un outil de comparaison de répertoires à deux panneaux qui
    fonctionnerait comme un outil diff comme meld pour comparer deux
    répertoires ou deux arborescences.
    Avec la possibilité de pousser la différence à gauche ou à droite, qui >> montre le plus récent.
    Cf.
    https://meldmerge.org/

    Le problème qui se pose : dans le panneau de gauche j’ai un fichier sur >> un disque dur externe, il n’est pas dans le répertoire du même nom dans >> le panneau de droite, mais ne serait-il pas autre part dans
    l’arborescence du disque dur ?

    Il faudrait un outil qui travail avec la base de donnée updatedb/locate
    ou qui a une autre méthode pour me signaler que le fichier n’est pas
    dans le panneau opposé mais autre part sur le disque.

    Il me semble que GNU emacs a un mode qui convient.

    s'il s'agit de retrouver deux fichiers de nom distincts mais de contenus identiques, on pourrait s'inspirer de ccache https://ccache.dev/ comme de https://www.softwareheritage.org/

    Ou envisager de construire une base de données (peut-être avec Redis ou sqlite)
    qui stocke des métadonnées dont une signature (md5sum ou sha512) du contenu de
    chaque fichier (préalablement balayé, par exemple toutes les heures, par un démon lancé par crontab).

    Le problème posé me parait toutefois insoluble en toute rigueur sur un Linux,
    car deux processus différents peuvent accéder à (voire modifier) un même fichier
    simultanément.

    Sans verrouillage explicite et volontaire par des appels systèmes tels que
     https://man7.org/linux/man-pages/man3/lockf.3.html ou https://man7.org/linux/man-pages/man2/flock.2.html ou https://man7.org/linux/man-pages/man3/flockfile.3.html ou https://man7.org/linux/man-pages/man2/mlock.2.html le comportement n'est pas prévisible ni même défini.

    C'est déjà compliqué sur un système de fichier local (voir https://man7.org/linux/man-pages/man7/inode.7.html comme ext4 ou xfs) et encore
    plus compliqué sur un système de fichier distant (NFS).

    D'ailleurs les SGBD comme les versionneurs existent aussi pour ça.

    Voyez aussi http://projects.camlcity.org/projects/omake.html qui pourrait avoir
    du code convenable (à compléter).

    En fait je crois que le problème est insoluble si on cherche une solution robuste et générale.

    Librement


    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From hamster@21:1/5 to All on Mon Feb 24 03:20:01 2025
    Le 23/02/2025 à 14:57, Benoît Barbier a écrit :
    Bonjour,

    J'étais à deux doigts de poster un complément, car je me suis mal exprimé.
    Je ne cherche pas à comparer le contenu de fichiers (comme du texte ou
    du code) mais à comparer des arborescences(répertoires/fichiers), sans rentrer dans le contenu des fichiers.
    Meld le fait par comparaison binaire de fichiers, mais c'est lourd pour
    lui, il n'est pas fait pour ça.
    En plus si un fichier n'est pas présent dans une arborescence, il ne m'indiquera pas qu'il est autre part.

    Je commence par faire la liste de ce qui est dans chaque arborescence
    avec la commande tree. Pour chaque arborescence je redirige la sortie de
    la commande dans un fichier texte.

    J'obtiens donc 2 fichiers texte que je compare avec meld.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)