1 votes

Comment configurer "flatpak run org.gnome.meld" comme git diff.tool et merge.tool ?

Je ne peux pas utiliser meld à cause d'une mauvaise installation locale de cairo ou bien. J'y ai déjà consacré un peu de temps, notamment en signalant l'échec comme un bogue, mais le mainteneur affirme que ce n'est pas un bogue, ce qui semble correct. C'est pourquoi j'aimerais essayer une approche différente, plus prometteuse, et utiliser une fonction flatpak installation. Je peux utiliser meld comme d'habitude avec flatpak run org.gnome.meld Le problème semble être le passage des arguments.

Un simple git config --global diff.tool "flatpak run org.gnome.meld" causes git difftool avec des changements non engagés d'échouer en raison de

git config option diff.tool set to unknown tool: flatpak run org.gnome.meld
Resetting to default...

This message is displayed because 'diff.tool' is not configured.
See 'git difftool --tool-help' or 'git help config' for more details.
'git difftool' will now attempt to use one of the following tools:
meld opendiff kdiff3 tkdiff xxdiff kompare gvimdiff diffuse diffmerge ecmerge p4merge araxis bc codecompare emerge vimdiff

Viewing (1/1): 'a'
Launch 'meld' [Y/n]?

Afin d'éviter les problèmes, j'ai créé un script

#!/bin/sh
flatpak run org.gnome.meld "$@"

sur ~/bin/ et l'a rendu exécutable avec chmod +x ~/bin/meld . ~/bin/ est le premier de ma PATH et ramassé selon which meld .

Après le scénario suivant

> cd $(mktemp -d)
> git init .
Leeres Git-Repository in /tmp/tmp.2RFxjgBbQ5/.git/ initialisiert
> echo 1 > a
> git add a
> git commit -m "Initial commit"
[master (Basis-Commit) 997fe0d] Initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 a
> echo 2 > a
> git difftool

Viewing (1/1): 'a'
Launch 'meld' [Y/n]? 

meld est lancé pour visualiser /tmp/cKSwbn_a et /home/[user]/a (obfusqué par l'utilisateur) qui n'existent pas.

J'ai d'autres solutions de contournement moins confortables à portée de main, impliquant Docker, donc je suis surtout intéressé à comprendre comment cette approche pourrait fonctionner.

1voto

David Ward Points 26

La variable de configuration de Git diff.tool ne spécifie que le nom de l'outil diff utilisé par défaut. Le site commande à invoquer est spécifié dans difftool.<tool>.cmd . (Voir le git-difftool(1) page de manuel).

Comme indiqué ici (avec des exemples de configuration), lors de l'invocation de flatpak run org.gnome.meld il existe plusieurs façons de donner à Meld l'accès aux chemins sous le nom de /tmp créé par git difftool :

  • Utilisez le --file-forwarding pour exporter les fichiers dans le magasin de documents. (Remarque : cette option n'exportera pas les répertoires, alors git tool --dir-diff ne fonctionnera pas avec cette approche).
  • Utilisez le --filesystem=FS pour permettre un accès direct à ces fichiers/répertoires.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X