Integrating with Git

Integration with Git requires the Professional Edition of Merge to enable the comparison of two modified versions of a file with their common ancestor.

Git for Windows (msysGit)

Merge integrates tightly with Git for Windows . Araxis provides a Git File-System Plugin to enable Merge to access files in Git repositories directly. For file comparisons (but not folder comparisons), Merge is also able to populate the Versions button drop-down versions menu with other revisions of each file being compared. For more information, see Comparing Text Files (or Typed/Pasted Text).

Git for Windows can also be configured to use Merge for file comparison and merge operations.

The following configuration instructions have been tested using Git for Windows v2.24.0.

To use Araxis Merge for file comparison and file merging:
  1. Update the appropriate Git configuration file by adding the following diff and merge tool configurations:

    [diff]
    tool = araxis
    [difftool "araxis"]
    path = C:\\Program Files\\Araxis\\Araxis Merge\\compare.exe
    
    [merge]
    tool = araxis
    [mergetool "araxis"]
    path = C:\\Program Files\\Araxis\\Araxis Merge\\compare.exe
    
    [alias]
    ad = difftool --tool=araxis --dir-diff
    ads = difftool --tool=araxis --dir-diff --staged
    

    In the above paths, replace C:\\Program Files\\Araxis\\Araxis Merge\\compare.exe with the full path to the Merge compare.exe command-line utility that you have installed on your machine. Note the use of double-backslashes to separate path elements.

  2. To compare files, use the git difftool command. The --dir-diff option can be provided, in which case a folder comparison will be opened showing all the changed files.

    The git ad (short for Araxis diff) and ads (Araxis diff stage) aliases defined above provide convenient shortcuts to invoke Merge via the git difftool command. See Examples of using the git ad and ads aliases for usage.

  3. To resolve conflicting changes after merging files from a branch or remote repository, use the git mergetool command.

    When Merge is opened via git mergetool, the files being compared are automatically merged as described in the Automatic File Merging topic. Changes that overlap or touch at their start or end are marked as conflicts. A red conflict icon is shown at the beginning of each line within a change that could not be automatically merged.

    If you wish to see the files as they were prior to the automatic merge, simply click Undo or press CtrlZ.

Examples of using the git ad and ads aliases:

The git difftool command is a frontend to git diff and thus accepts git diff options and arguments. As the Git ad and ads aliases defined in the above configuration are simply shortcuts for invoking git difftool, this means that you can in general pass git diff arguments to git ad and git ads. The examples below show some possibilities, but are by no means exhaustive.

The documentation on specifying Git revisions and ranges may also be helpful when considering how best to invoke git ad.

The split-view folder-comparison-with-file-comparison (Two-way with file comparison ) can be especially useful when viewing folder comparisons launched by Git.

Git WSL (Windows Subsystem for Linux)

Araxis Merge 2020 and later integrate with Git running under the Windows Subsystem for Linux (WSL). WSL 1 and WSL 2 are both supported on Windows 10 May 2019 Update (1903) and later.

The Merge-WSL integration uses \\wsl$-style paths. This enables Merge to access WSL files, facilitating a much more straightforward integration than is possible with earlier versions of Merge or Windows.

To use Araxis Merge for file comparison and file merging:
  1. Ensure that you are using the native Git package for your Linux distribution. Containerized or sandboxed versions of Git (e.g. those packaged with Snap or Flatpak) are not compatible with Araxis Merge.

  2. Update the appropriate Git configuration file by adding the following diff and merge tool configurations:

    [diff]
    tool = araxis
    [difftool "araxis"]
    cmd = '/mnt/c/Program Files/Araxis/Araxis Merge/arx_wsl_git_compare' $BASE $LOCAL $REMOTE
    
    [merge]
    tool = araxis
    [mergetool "araxis"]
    cmd = '/mnt/c/Program Files/Araxis/Araxis Merge/arx_wsl_git_merge' $BASE $LOCAL $REMOTE $MERGED
    
    [alias]
    ad = difftool --tool=araxis --dir-diff --no-symlinks
    ads = difftool --tool=araxis --dir-diff --no-symlinks --staged
    

    In the above paths, replace /mnt/c/Program Files/Araxis/Araxis Merge with the full path to the Merge installation folder on your machine.

  3. To compare files, use the git difftool command. The --dir-diff option can be provided, in which case a folder comparison will be opened showing all the changed files.

    The git ad (short for Araxis diff) and ads (Araxis diff stage) aliases defined above provide convenient shortcuts to invoke Merge via the git difftool command. See Examples of using the git ad and ads aliases for usage.

  4. To resolve conflicting changes after merging files from a branch or remote repository, use the git mergetool command.

    When Merge is opened via git mergetool, the files being compared are automatically merged as described in the Automatic File Merging topic. Changes that overlap or touch at their start or end are marked as conflicts. A red conflict icon is shown at the beginning of each line within a change that could not be automatically merged.

    If you wish to see the files as they were prior to the automatic merge, simply click Undo or press CtrlZ.

Git (Cygwin)

Git on Cygwin can be configured to use Merge for file comparison and merge operations.

The following configuration step has been tested using the Cygwin distribution of Git v2.21.0.

To use Araxis Merge for file comparison and file merging:
  1. Update the appropriate Git configuration file by adding the following diff and merge tool configurations:

    [diff]
    tool = araxis
    [difftool "araxis"]
    cmd = '/cygdrive/c/Program Files/Araxis/Araxis Merge/ConsoleCompare.exe' /2 `cygpath -w $LOCAL` `cygpath -w $REMOTE`
    
    [merge]
    tool = araxis
    [mergetool "araxis"]
    cmd = '/cygdrive/c/Program Files/Araxis/Araxis Merge/ConsoleCompare.exe' /3 /a2 `cygpath -w $REMOTE` `cygpath -w $BASE` `cygpath -w $LOCAL` `cygpath -w $MERGED`
    
    [alias]
    ad = difftool --tool=araxis --dir-diff --no-symlinks
    ads = difftool --tool=araxis --dir-diff --no-symlinks --staged
    

    In the above paths, replace /cygdrive/c/Program Files/Araxis/Araxis Merge/Compare.exe with the full path to the Merge compare.exe command-line utility that you have installed on your machine.

  2. To compare files, use the git difftool command. The --dir-diff option can be provided, in which case a folder comparison will be opened showing all the changed files.

    The git ad (short for Araxis diff) and ads (Araxis diff stage) aliases defined above provide convenient shortcuts to invoke Merge via the git difftool command. See Examples of using the git ad and ads aliases for usage.

  3. To resolve conflicting changes after merging files from a branch or remote repository, use the git mergetool command.

    When Merge is opened via git mergetool, the files being compared are automatically merged as described in the Automatic File Merging topic. Changes that overlap or touch at their start or end are marked as conflicts. A red conflict icon is shown at the beginning of each line within a change that could not be automatically merged.

    If you wish to see the files as they were prior to the automatic merge, simply click Undo or press CtrlZ.