About Me


Develop With Passion® - Developer Bootcamp


Configuring Beyond Compare On Windows With Cygwin

Written October 13, 2010 at 09:00 MDT Tagged tools

Having to spend the week back in windows, it has forced me to verify that all of my configuration is actually able to be shared between the different environments.

When working with source code on windows I much prefer to use beyond compare to work with diffs and merges.

Here is a look at my .gitconfig (after transformation to appropriate target environment[windows]; more on that later):

autocrlf = true

  email = jp@developwithpassion.com
  name = Jean-Paul S. Boodhoo

  st = status -s
  ci = commit
  co = checkout
  df = diff
  dft = difftool
  lg = log -p
  lol = log --graph --decorate --oneline
  lola = log --graph --decorate --oneline --all

  tool = bc3

  tool = bc3

    default = current

  ui = auto

[difftool "kaleidoscope"]
  cmd = ksdiff-wrapper git \"$LOCAL\" \"$REMOTE\"

[difftool "bc3"]
    cmd = beyondcompare-diff.sh \"$LOCAL\" \"$REMOTE\"

  prompt = false

[mergetool "bc3"]
  cmd = beyondcompare-merge.sh \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
  trustExitCode = true
  keepBackup = false

Notice the difftool section of "bc3". It is told to trigger an external script named beyondcompare-diff.sh. This is a much better version of a simpler script that I had to written accomplish the same thing (I can't even remember where I was pointed to these scripts, but I thank the author for sharing them):

Configuration Scripts

In my unix environments I have a folder called devtools that lives at the following location:


Automation is a folder where I keep all of my scripts and files that are shared between the different unix envionments that I run:

To ensure that all of my automation scripts are accessible I have the following line in my .bash_env file:

export PATH="/usr/local/sbin:/usr/local/mysql/bin:$(find ~/repositories/developwithpassion/devtools/automation/ -name '.*' -prune -o -type d | tr "\n" ":"):$PATH"

Notice the one section in path:

$(find ~/repositories/developwithpassion/devtools/automation/ -name '.*' -prune -o -type d | tr "\n" ":"):$PATH"

This ensures that any existing or new scripts that I drop under the automation folder, are picked up right away. Following this simple convention, I have a folder under the automation folder named git, that contains all of the scripts that are meant to be leveraged in the context of git.

Hopefully this will help you out if you need to configure bc3 on windows under cygwin!!

Develop With Passion®