Per dare seguito alla risposta di Charles Bailey, ecco la mia configurazione git che utilizza p4merge (strumento di unione a 3 vie multipiattaforma gratuito); testato sull'installazione di msys Git (Windows):
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
oppure, da una shell cmd.exe di Windows, la seconda riga diventa:
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
Le modifiche (relative a Charles Bailey):
- aggiunto alla configurazione globale di git, vale a dire valido per tutti i progetti git, non solo quello attuale
- il valore di configurazione dello strumento personalizzato risiede in "mergetool. [tool] .cmd", non in "unisci. [tool] .cmd" (sciocca, ho passato un'ora a risolvere i problemi perché Git continuava a lamentarsi di uno strumento inesistente)
- aggiunte doppie virgolette per tutti i nomi di file in modo che i file con spazi possano ancora essere trovati dallo strumento di unione (l'ho provato in msys Git da Powershell)
- si noti che per impostazione predefinita Perforce aggiungerà la sua directory di installazione a PATH, quindi non è necessario specificare il percorso completo di p4merge nel comando
Scarica: http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools
MODIFICARE (febbraio 2014)
Come sottolineato da @Gregory Pakosz , l'ultimo msys git ora "nativamente" supporta p4merge (testato su 1.8.5.2.msysgit.0 ).
È possibile visualizzare un elenco di strumenti supportati eseguendo:
git mergetool --tool-help
Dovresti vedere p4merge nell'elenco disponibile o valido . In caso contrario, aggiorna il tuo git.
Se p4merge è stato elencato come disponibile , è nel tuo PERCORSO e devi solo impostare merge.tool :
git config --global merge.tool p4merge
Se è stato elencato come valido , è necessario definire mergetool.p4merge.path oltre a merge.tool :
git config --global mergetool.p4merge.path c:/Users/my-login/AppData/Local/Perforce/p4merge.exe
- Quanto sopra è un percorso di esempio quando p4merge è stato installato per l'utente corrente, non a livello di sistema (non richiede diritti di amministratore o elevazione UAC)
- Anche se
~
dovrebbe espandersi nella home directory dell'utente corrente (quindi in teoria il percorso dovrebbe essere~/AppData/Local/Perforce/p4merge.exe
), questo non ha funzionato per me
- Ancora meglio sarebbe stato sfruttare una variabile d'ambiente (ad es.
$LOCALAPPDATA/Perforce/p4merge.exe
), Git non sembra espandere le variabili d'ambiente per i percorsi (se sai come farlo funzionare, fammi sapere o aggiorna questa risposta)