Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
519 views
in Technique[技术] by (71.8m points)

settings - How to use Winmerge with Git Extensions?

I'm using Git Extensions and it pre-installs and sets up KDiff as the diff tool to solve merge conflicts. I'm very fond of Winmerge though and would like to replace KDiff with Winmerge.

In the Git Extensions settings, there are settings to change the Mergetool, but I can't seem to figure out what syntax I should use and why. There seem to be 4 variables: $BASE, $LOCAL, $REMOTE, $MERGED. It seems that I should pass these to WinMergeU.exe, but with which command line parameters?

I've tried to search for this a few times, but there is no answer that actually seems to work.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Overview
The following is instructions on how to setup GIT Version Control so that you can use a better set of tools than the default installation. The setup requires that GIT Extensions is already installed and involves configuring Winmerge in GIT extensions.

Installation
Walk through all the prompts and install in the default directory for Winmerge.

Configure Winmerge in GIT Version Control
Open a new doc in a text editor. Copy/paste the following and save the document as "wMerge.sh" to your "C:Program Files (x86)Gitin" directory.

echo Launching WinMerge: $1 $2 "C:/Program Files (x86)/WinMerge/WinMergeU.exe" -e -u -dl "Original" -dr "Modified" "$1" "$2"

Goto your "Users->username" directory and locate the .gitconfig file. Open it in your favorite editor copy/paste the following code and Save:

[user]
    name = enter your name
    email = [email protected]
[core]
    autocrlf = false
[merge]
    tool = winmerge
[mergetool "winmerge"]
    cmd = wMerge.sh "$MERGED" "$REMOTE"
    path = c:/Program Files (x86)/winmerge/winmergeu.exe
[mergetool]
    keepBackup = false
    trustExitCode = false
[diff]
    guitool = winmerge
[difftool "winmerge"]
    path = c:/Program Files (x86)/winmerge/winmergeu.exe
    cmd = "c:/Program Files (x86)/winmerge/winmergeu.exe" "$LOCAL" "$REMOTE"

Run "GitExtensions", goto "tools->Settings->Git Extensions->Git Config". If you've done your installation properly and referenced the tools to their directory, your global settings page should look like below (NOTE: Please fill in your name on name and email):

mergetool: winmerge
path to mergetool: c:/Program Files (x86)/winmerge/winmergeu.exe
mergetool command: wMerge.sh "$MERGED" "$REMOTE"
difftool: winmerge
path to difftool: c:/Program Files (x86)/winmerge/winmergeu.exe
difftool command: "c:/Program Files (x86)/winmerge/winmergeu.exe" "$LOCAL" "$REMOTE"

line endings: checkout as-is, commit as-is

Navigate to the checklist tab to verify that GIT is all "green" and satisfied with your setup.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...