Configurer l'outil SourceGear DiffMerge pour Git
Cet article traitera de la configuration de Git pour utiliser DiffMerge
de SourceGear comme difftool
par défaut. Cet outil nous permet de comprendre facilement les conflits de fusion avec des visuels améliorés par rapport au difftool
par défaut de Git.
C’est l’outil idéal pour une fusion à 3 voies car il prend en charge la comparaison de fichiers à 3 voies.
Nous pouvons voir l’état précédent d’un fichier, l’état actuel et le résultat après une fusion. Vous devez télécharger et installer DiffMerge
à partir du site Web officiel de SourceGear.
Configurer DiffMerge
sous Windows
Pour configurer Git pour utiliser l’outil DiffMerge
par défaut, ajoutez-le à votre fichier .gitconfig
.
[diff]
tool = DiffMerge
[difftool "DiffMerge"]
cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' "$LOCAL" "$REMOTE"
[merge]
tool = DiffMerge
[mergetool "DiffMerge"]
cmd = 'C:/Program Files/SourceGear/Common/DiffMerge/sgdm.exe' -merge -result="$PWD/$MERGED" "$PWD/$LOCAL" "$PWD/$BASE" "$PWD/$REMOTE"
trustExitCode = true
[mergetool]
keepBackup = false
Pour les paramètres d’argument de comparaison, nous avons :
$LOCAL
, qui est le fichier d’origine.$REMOTE
, qui est le fichier modifié.
Vous pouvez exécuter les commandes git difftool
et git mergetool
sur Git Bash pour ouvrir le DiffMerge
.
Alternativement, vous pouvez exécuter les commandes ci-dessous sur votre invite de commande pour mettre à jour le fichier .gitconfig
.
C:\> git config --global diff.tool diffmerge
C:\> git config --global difftool.diffmerge.cmd
"C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe
\"$LOCAL\" \"$REMOTE\""
C:\> git config --global merge.tool diffmerge
C:\> git config --global mergetool.diffmerge.trustExitCode true
C:\> git config --global mergetool.diffmerge.cmd
"C:/Program\ Files/SourceGear/Common/DiffMerge/sgdm.exe
-merge -result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\""
Configurer DiffMerge
sur Mac OS
Le processus de configuration de Git pour utiliser DiffMerge
sur Mac OS est peut-être le plus simple. Assurez-vous d’avoir le répertoire ci-dessous.
/usr/local/bin/diffmerge
Exécutez les commandes ci-dessous pour mettre à jour votre fichier .gitconfig
et testez-le.
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/usr/local/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/local/bin/diffmerge --nosplash \"\$LOCAL\" \"\$REMOTE\""
Nous pouvons exécuter la commande git config --global -e
pour inspecter notre fichier .gitconfig
. Ça devrait ressembler a quelque chose comme ca:
[diff]
tool = diffmerge
[merge]
tool = diffmerge
...
[mergetool "diffmerge"]
cmd = /usr/local/bin/diffmerge --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
trustExitCode = true
[mergetool]
keepBackup = false
[difftool "diffmerge"]
cmd = /usr/local/bin/diffmerge --nosplash \"$LOCAL\" \"$REMOTE\"
Configurer DiffMerge
sur Ubuntu
La configuration sur Ubuntu est très similaire à Mac OS. Nous utiliserons les mêmes commandes mais changerons l’emplacement d’installation.
Voici les commandes.
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd "/usr/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.keepBackup false
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/bin/diffmerge --nosplash \"\$LOCAL\" \"\$REMOTE\""
C’est à peu près tout. Nous pouvons maintenant exécuter les commandes ci-dessous pour le tester.
$ git mergetool
$ git difftool
En résumé, si vous souhaitez configurer Git pour utiliser l’outil DiffMerge
de SourceGear, vous devrez mettre à jour votre fichier .gitconfig
avec les commandes répertoriées en fonction de votre système d’exploitation.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn