How to use BeyondCompare from git mergetool in cygwin?

How to use BeyondCompare from “git mergetool” in cygwin?

  • git show commit in beyond compare
  • git difftool to give directory compare?
  • Getting Beyond Compare to Diff 2 Branches Simultaneously
  • Sourcetree does not launch Beyond compare external merge tool
  • git difftool does not launch Beyond Compare
  • Use BeyondCompare to see difference between files in GIT
  • How to recover the index after a git stash / git stash pop?
  • How to Temporarily Remove the Last Commit with Git?
  • Should Eclipse-specific files in an VCS be ignored, if using Maven?
  • Do an automatic pull request after pushing to server
  • Why am I told that “'master' does not refer to a commit” when I use git-subtree?
  • Making git auto-commit
  • 2 Solutions collect form web for “How to use BeyondCompare from git mergetool in cygwin?”

    Here’s a simple answer.

    #! /bin/sh
    LOCAL=`cygpath -wa $1`
    REMOTE=`cygpath -wa $2`
    BASE=`cygpath -wa $3`
    MERGED=`cygpath -wa $4`
    /cygdrive/c/BeyondCompare3/BComp.exe $LOCAL $THEIRS $BASE $MERGED
    

    Or as in your git config.

    [mergetool "mergetool"]
        cmd = /cygdrive/c/BeyondCompare3/BComp.exe `cygpath -wa "$LOCAL"` `cygpath -wa "$REMOTE"` `cygpath -wa "$BASE"` `cygpath -wa "$MERGED"`
    

    I use cygpath (which comes with cygwin) to convert the paths. The -w flag converts from cygwin format (starting with /cygdrive/c) to windows format (starting with c:). The -a flag uses absolute filenames.

    Note: I don’t have a Pro BeyondCompare license, so I can’t test merge properly, but it is correctly opening the first two files.

    I’ve found some scripts to convert cygwin paths (robustly, it seems) and launch BC3:
    http://gist.github.com/564573

    Git Baby is a git and github fan, let's start git clone.