Pour faire suite à la réponse de Charles Bailey, voici ma configuration git qui utilise les éléments suivants p4merge (outil de fusion à trois gratuit et multiplateforme) ; 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 pour le projet en cours
- la valeur de la configuration de l'outil personnalisé se trouve dans "mergetool.[tool].cmd", et non dans "merge.[tool].cmd" (je suis bête, j'ai passé une heure à chercher pourquoi git se plaignait d'un outil inexistant).
- ajout de guillemets 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 à partir de Powershell)
- Notez que par défaut Perforce ajoutera son répertoire d'installation à PATH, il n'est donc pas nécessaire de spécifier le chemin complet de p4merge dans la commande.
Télécharger : http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
EDIT (février 2014)
Comme l'a souligné @Gregory Pakosz , le dernier msys git supporte désormais "nativement" les 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 soit dans disponible sur o valide la liste. Si ce n'est pas le cas, veuillez mettre à jour votre git.
Si p4merge a été répertorié comme disponible sur c'est dans votre PATH et vous n'avez qu'à définir outil.de.fusion :
git config --global merge.tool p4merge
Si elle a été répertoriée comme valide vous devez définir mergetool.p4merge.path en plus de outil.de.fusion :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- Le chemin ci-dessus est un exemple de chemin d'accès lorsque p4merge a été installé pour l'utilisateur actuel, et non pour l'ensemble du système (ne nécessite pas de droits d'administrateur ou d'élévation de l'UAC).
- Bien que
~
devrait s'étendre jusqu'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
- Il aurait été encore mieux de tirer parti d'une variable d'environnement (par ex.
$LOCALAPPDATA/Perforce/p4merge.exe
), git ne semble pas développer les variables d'environnement pour les chemins (si vous savez comment faire pour que cela fonctionne, merci de me le faire savoir ou de mettre à jour cette réponse).
0 votes
Voir aussi stackoverflow.com/questions/866262/p4merge-error/867165#867165
4 votes
Git Extensions a une interface utilisateur git qui possède un outil de fusion assez bon et convivial pour les utilisateurs de Windows.
0 votes
On dirait que vous avez besoin de TortoiseGit ?