How to use BeyondCompare from git mergetool in cygwin?

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

  • Configure git mergetool with Sublimerge
  • Problems using diffmerge mergetool with git
  • version control for binary files
  • Git Mergtool: No files need merging + git status all conflicts fixed
  • How to make git work with vimdiff and trustExitCode
  • How to change merge mode for eclipse egit merge tool?
  • How could I force mergetool GUI (kdiff3) to be always shown?
  • Is there a way to make Git mark a file as conflicted?
  • 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.