Pour faire le suivi de la réponse de Charles Bailey, voici ma configuration git qui utilise p4merge (outil de fusion multiplateforme 3 voies gratuit); testé sur l'installation de msys Git (Windows):
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
ou, à partir d'un shell Windows cmd.exe, la deuxième ligne devient:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Les changements (par rapport à Charles Bailey):
- ajouté à la configuration globale de git, c'est-à-dire valable pour tous les projets git et pas seulement celui en cours
- la valeur de configuration de l'outil personnalisé réside dans "mergetool. [tool] .cmd", pas dans "merge. [tool] .cmd" (idiot, j'ai passé une heure à dépanner pourquoi git continuait de se plaindre d'un outil inexistant)
- ajout de guillemets doubles pour tous les noms de fichiers afin que les fichiers avec des espaces puissent toujours être trouvés par l'outil de fusion (j'ai testé cela dans msys Git de Powershell)
- notez que par défaut Perforce ajoutera son répertoire d'installation à PATH, donc pas besoin de spécifier le chemin complet vers p4merge dans la commande
Téléchargement: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (févr.2014)
Comme l'a souligné @Gregory Pakosz , le dernier msys git prend désormais "nativement" en charge p4merge (testé sur 1.8.5.2.msysgit.0 ).
Vous pouvez afficher la liste des outils pris en charge en exécutant:
git mergetool --tool-help
Vous devriez voir p4merge dans la liste disponible ou valide . Sinon, veuillez mettre à jour votre git.
Si p4merge était répertorié comme disponible , il se trouve dans votre PATH et vous n'avez qu'à définir merge.tool :
git config --global merge.tool p4merge
S'il était répertorié comme valide , vous devez définir mergetool.p4merge.path en plus de merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- Ce qui précède est un exemple de chemin lorsque p4merge a été installé pour l'utilisateur actuel, pas à l'échelle du système (n'a pas besoin de droits d'administrateur ou d'élévation UAC)
- Bien que cela
~
devrait s'étendre au répertoire personnel de l'utilisateur actuel (donc en théorie, le chemin devrait être ~/AppData/Local/Perforce/p4merge.exe
), cela n'a pas fonctionné pour moi
- Encore mieux aurait été de profiter d'une variable d'environnement (par exemple
$LOCALAPPDATA/Perforce/p4merge.exe
), git ne semble pas étendre les variables d'environnement pour les chemins (si vous savez comment faire fonctionner cela, veuillez me le faire savoir ou mettre à jour cette réponse)