Git on Windows: How do you set up a mergetool?
Git on Windows: How do you set up a mergetool?
Git on Windows: How do you set up a mergetool?
Re: Git on Windows: How do you set up a mergetool?
To follow-up on Charles Bailey's answer, here's my git setup that's using [p4merge](http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools) (free cross-platform 3way merge tool); tested on msys Git (Windows) install:
```
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
```
or, from a windows cmd.exe shell, the second line becomes :
```
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
```
The changes (relative to Charles Bailey):
- added to global git config, i.e. valid for all git projects not just the current one
- the custom tool config value resides in "mergetool.[tool].cmd", not "merge.[tool].cmd" (silly me, spent an hour troubleshooting why git kept complaining about non-existing tool)
- added double quotes for all file names so that files with spaces can still be found by the merge tool (I tested this in msys Git from Powershell)
- note that by default Perforce will add its installation dir to PATH, thus no need to specify full path to p4merge in the command
Download: [http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools](http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools)
**EDIT** (Feb 2014)
As pointed out by [@Gregory Pakosz](https://stackoverflow.com/users/216063/gregory-pakosz), latest [msys git](http://msysgit.github.io/) now "natively" supports **p4merge** (tested on *1.8.5.2.msysgit.0*).
You can display list of supported tools by running:
```
git mergetool --tool-help
```
You should see *p4merge* in either *available* or *valid* list. If not, please update your git.
If *p4merge* was listed as *available*, it is in your *PATH* and you only have to set *merge.tool*:
```
git config --global merge.tool p4merge
```
If it was listed as *valid*, you have to define *mergetool.p4merge.path* in addition to *merge.tool*:
`
*(Réponse tronquée)*
```
git config --global merge.tool p4merge
git config --global mergetool.p4merge.cmd 'p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'
```
or, from a windows cmd.exe shell, the second line becomes :
```
git config --global mergetool.p4merge.cmd "p4merge.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\""
```
The changes (relative to Charles Bailey):
- added to global git config, i.e. valid for all git projects not just the current one
- the custom tool config value resides in "mergetool.[tool].cmd", not "merge.[tool].cmd" (silly me, spent an hour troubleshooting why git kept complaining about non-existing tool)
- added double quotes for all file names so that files with spaces can still be found by the merge tool (I tested this in msys Git from Powershell)
- note that by default Perforce will add its installation dir to PATH, thus no need to specify full path to p4merge in the command
Download: [http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools](http://www.perforce.com/product/components/perforce-visual-merge-and-diff-tools)
**EDIT** (Feb 2014)
As pointed out by [@Gregory Pakosz](https://stackoverflow.com/users/216063/gregory-pakosz), latest [msys git](http://msysgit.github.io/) now "natively" supports **p4merge** (tested on *1.8.5.2.msysgit.0*).
You can display list of supported tools by running:
```
git mergetool --tool-help
```
You should see *p4merge* in either *available* or *valid* list. If not, please update your git.
If *p4merge* was listed as *available*, it is in your *PATH* and you only have to set *merge.tool*:
```
git config --global merge.tool p4merge
```
If it was listed as *valid*, you have to define *mergetool.p4merge.path* in addition to *merge.tool*:
`
*(Réponse tronquée)*