David Wright
David Wright

Reputation: 494

Git merge using Beyond Compare when resolving merge conflicts caused by stash pop: files not found

I am trying to unstash some files, one of the files causes merge conflicts, which I am trying to resolve using Beyond Compare. I am working on Windows 7.

Here's what I did:

Can someone point me to what's going wrong here?

My .gitconfig:

[core]
    autocrlf = true
fileeditor
    eol = native
[user]
    name = David Wright
    email = 
[diff]
    tool = bc
    guitool = meld
[difftool "meld"]
    cmd = "C:/Program Files (x86)/Meld/Meld.exe /\"$LOCAL/\" /\"$REMOTE/\" "
    prompt = false
    path = C:/Program Files (x86)/Meld/Meld.exe
[merge]
    tool = bc
[mergetool "meld"]
    cmd = C:/Program Files (x86)/Meld/Meld.exe /\"$LOCAL/\" /\"$BASE/\" /\"$REMOTE/\" --output=/\"$MERGED/\" --auto-merge
    path = C:/Program Files (x86)/Meld/Meld.exe
[difftool "sourcetree"]
    cmd = 'C:/Program Files (x86)/Beyond Compare 4/BComp.exe' \"$LOCAL\" \"$REMOTE\"
[mergetool "sourcetree"]
    cmd = 'C:/Program Files (x86)/Beyond Compare 4/BComp.exe' \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
    trustExitCode = true
[filter "lfs"]
    clean = git-lfs clean -- %f
    smudge = git-lfs smudge -- %f
    required = true
[difftool "kdiff3"]
    path = C:/Program Files (x86)/KDiff3/kdiff3.exe
[http]
    sslVerify = false
[difftool "bc"]
    path = C:\\Program Files\\BeyondCompare\\BCompare.exe
[mergetool "bc"]
    path = C:\\Program Files\\BeyondCompare\\BCompare.exe

Upvotes: 1

Views: 2783

Answers (1)

Chris Kennedy
Chris Kennedy

Reputation: 2909

Replace bcompare.exe with bcomp.exe.

The executable bcomp.exe opens every diff and merge in a separate helper process, allowing version control to detect when the comparison is complete.

If you use bcompare.exe, all comparisons are opened in a single process. If bcompare.exe is already running when you launch a new comparison, the comparison is passed to the existing process and the new process exits. This causes version control to think the diff/merge is complete prematurely.

To configure Beyond Compare as the diff and merge tool for Git on Windows:

git config --global diff.tool bc
git config --global difftool.bc.path "c:/Program Files/Beyond Compare 4/bcomp.exe"
git config --global merge.tool bc
git config --global mergetool.bc.path "c:/Program Files/Beyond Compare 4/bcomp.exe"

The contents of .gitconfig after using the above commands:

[diff]
    tool = bc
[difftool "bc"]
    path = c:/Program Files/Beyond Compare 4/bcomp.exe
[merge]
    tool = bc
[mergetool "bc"]
    path = c:/Program Files/Beyond Compare 4/bcomp.exe

Upvotes: 2

Related Questions