Skip to main content
Version: Next

Developer Tools

Diff and Merge tools

Araxis has been kind enough to give us free licenses for Araxis Merge if you work on open source, just submit a request at http://www.araxis.com/buy/open-source

Download from http://www.araxis.com/url/merge/download.uri

You will be prompted for your serial number when you run the application for the first time. To enter a new serial number into an existing installation, click the Re-Register... button in the About window.

Integrating Araxis to Git as your Diff and Merge tool

After installing Araxis Merge,

On Mac OS X,

  • Drag Araxis across to your ~/Applications folder as normal
  • Copy the contents of the Utilities folder to (e.g.) /usr/local/araxis/bin
  • Add the path to your startup script: export PATH="$PATH:/usr/local/araxis/bin"

In your .gitconfig file (tested on Mac OS X),

[diff]
tool = araxis
[difftool]
prompt = false
[merge]
tool = araxis_merge
[mergetool "araxis_merge"]
cmd = araxisgitmerge "$PWD/$REMOTE" "$PWD/$BASE" "$PWD/$LOCAL" "$PWD/$MERGED"

Git Best Practices

This is just a personal preference, but it may be easier to create one Git branch per Jira/feature. E.g.,

git checkout trunk
git checkout -b AMBARI12345 # create the branch and switch to it
git branch --set-upstream-to=origin/trunk AMBARI12345 # set the upstream so that git pull --rebase will get the HEAD from trunk
# Do work,
git commit -m "AMBARI-12345. Foo (username)"
# Do more work
git commit --amend # edit the last commit
git pull --rebase

# If conflicts are detected, then run
git mergetool # should be easy if you have Araxis Merge setup to do a 3-way merge
git rebase --continue
git push origin HEAD:trunk

Useful Git Commands

In your .gitconfig file,

[alias]
st = status
ci = commit
br = branch
co = checkout
dc = diff --cached
dtc = difftool --cached
lg = log -p
lsd = log --graph --decorate --pretty=oneline --abbrev-commit --all
slast = show --stat --oneline HEAD
pshow = show --no-prefix --format=format:%H --full-index
pconfig = config --list

Also, in your ~/.bashrc or ~/.profile file,

alias branchshow='for k in `git branch|perl -pe s/^..//`;do echo -e `git show --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k|head -n 1`\\t$k;done|sort'

This command will show all of your branches sorted by the last commit times, which is useful if you develop one feature per branch.