Integrating with Configuration Management(CM), Source Control Management(SCM) and Other Applications

In general, integrating DeltaWalker with CM, SC and other apps is done via a command line interface.

DeltaWalker is the only comparison tool to offer a one-click integration with some of the most popular SCMs: Bazaar, Git, Mercurial and Subversion. If one or more of these SCMs is installed on your system and you want to use DeltaWalker as their external diff and merge tool all you need to do is go to Command Link SCM Integration preference page, select the SCM(s) of interest and DeltaWalker will do all the tedious work behind the scene for you. One click. That's all.

Not all SCMs or apps can be one-click-integrated though. For those, we offer the specific instructions below. For the curious, and for completeness, we also offer the details on the behind-the-scene work performed by DeltaWalker in the case of one-click-integration is supported.

It's worth noting that DeltaWalker automatically detects the type of resources that are passed to it for comparison. That is, when given one or more file or folder URIs as command line parameters DeltaWalker detects their type and count and compares them accordingly.

Delta Walker provides easy way to Automatic integration of some Source control systems. Please refer to Automatic integration section for the particular SCMs to use this feature.

Below are the integration instructions with SCMs and apps DeltaWalker has been tested with:

Bazaar

Automatic integration

Go to the Command Link SCM Integration preference page. If Bazaar is installed on your system it will be listed - select/check its checkbox, then click OK. If it's not listed, please download Bazaar and install it first.

Usage

You should now be able to run bzr dwdiff in your local Bazaar branch just like you'd run bzr diff.

If you want to use DeltaWalker as Bazaar's external merge tool for resolving conflicts, Bazaar's extmerge plug-in needs to be installed. If necessary you can install it using the following steps:

On Mac OS X and Linux, execute the following commands in a Terminal/Shell window:

    mkdir -p ~/.bazaar/plugins
    cd ~/.bazaar/plugins
    bzr branch lp:bzr-extmerge extmerge

On Windows, open a Command Propmt window and execute (if necessary, adjust the path to the Bazaar's installation folder):

    cd C:\Program Files\Bazaar\plugins
    bzr branch lp:bzr-extmerge extmerge

You should now be able to resolve conflicts using DeltaWalker by running:

bzr emerge filename
or
bzr emerge --all

When you are sure that the conflict has been resolved, run:

bzr resolve filename
or
bzr resolve --all

Manual Integration

Unless you want to know what automatic integration does for you behind the scene or something has gone wrong with it and you need to set it straight, you can ignore the manual integration steps that follow.

Mac OS and Linux

Instruct Bazaar to use DeltaWalker as its external diff and merge tool by adding the following to Bazaar's configuration file ~/.bazaar/bazaar.conf:

    [DEFAULT]
        external_merge = /Applications/DeltaWalker.app/Contents/MacOS/bzr-merge %t %o %b %r
    [ALIASES]
        dwdiff = diff --using "/Applications/DeltaWalker.app/Contents/MacOS/bzr-diff"

The above example uses the default DeltaWalker install location on Mac OS X. If DeltaWalker was installed in a different location, or if you are using Linux, please update the path to the DeltaWalker executable accordingly.

The two shell scripts referenced above should have the following content:

bzr-merge:

    #!/bin/sh
    DW_PATH=`dirname "$0"`
    java -Ddw.path="$DW_PATH" -jar "$DW_PATH/dw.jar" "$1" "$2" "$3" -merged="$4" -wait

bzr-diff:

    #!/bin/sh
    DW_PATH=`dirname "$0"`
    java -Ddw.path="$DW_PATH" -jar "$DW_PATH/dw.jar" "$1" "$2" -wait

Windows

Instruct Bazaar to use DeltaWalker as its external diff and merge tool by adding the following to Bazaar's configuration file %APPDATA%\bazaar\2.0\bazaar.conf:

    [DEFAULT]
        external_merge = "C:/Program Files/Deltopia/DeltaWalker 1.9/bzr-merge.bat %t %o %b %r"
    [ALIASES]
        dwdiff = 'diff --using "C:/Program Files/Deltopia/DeltaWalker 1.9/bzr-diff.bat"'

Note: if DeltaWalker is installed in a different location you need to reflect that in the bazaar.conf file.

The two batch files above have the following content:

bzr-merge.bat:

    @echo off
    set DW_PATH=C:\Program Files\Deltopia\DeltaWalker 1.9
    javaw -Ddw.path="%DW_PATH%" -jar "%DW_PATH%\dw.jar" %1 %2 %3 -merged=%4 -wait

bzr-diff.bat:

    @echo off
    set DW_PATH=C:\Program Files\Deltopia\DeltaWalker 1.9
    javaw -Ddw.path="%DW_PATH%" -jar "%DW_PATH%\dw.jar" %1 %2 -wait

Git

Automatic integration

Go to the Command Link SCM Integration preference page. If Git is installed on your system it will be listed - select/check its checkbox, then click OK. If it's not listed, please download Git and install it first.

Usage

You should now be able to use DeltaWalker as Git's external diff and merge tool by running:

git diff
or
git mergetool

Manual Integration

Mac OS and Linux

Instruct Git to use DeltaWalker as its external diff and merge tool by adding the following to Git's global configuration file ~/.gitconfig:

    [diff]
        external = "/Applications/DeltaWalker.app/Contents/MacOS/git-diff"
    [merge]
        tool = deltawalker
    [mergetool  "mydeltawalker"]
        cmd = '/Applications/DeltaWalker.app/Contents/MacOS/git-merge' "$LOCAL" "$REMOTE" "$BASE" "$MERGED"

The two shell scripts in the example above have the following content:

git-diff:

    #!/bin/sh
    DW_PATH=`dirname "$0"`
    java -Ddw.path="$DW_PATH" -jar "$DW_PATH/dw.jar" "$2" "$5"

The file git-merge should have the following content:

git-merge:

    #!/bin/sh
    DW_PATH=`dirname "$0"`
	java -Ddw.path="$DW_PATH" -jar "$DW_PATH/dw.jar" "$1" "$2" "$3" -merged="$PWD/$4" -wait

These files change the order of the parameters supplied by git to its diff and the merge commands to the order expected by DeltaWalker.

Windows

Instruct Git to use DeltaWalker as its external diff and merge tool by adding the following to Git's configuration file %USERPROFILE%\.gitconfig :

    [diff]
        external = 'C:/Program Files/Deltopia/DeltaWalker 1.9/git-diff'
    [merge]
        tool = deltawalker
    [mergetool  "deltawalker"]
        cmd = 'C:/Program Files/Deltopia/DeltaWalker 1.9/git-merge' "$LOCAL" "$REMOTE" "$BASE" "$MERGED"

In the example above, the two shell script files git-diff and git-merge are provided in the DeltaWalker default installation folder e.g. C:/Program Files/Deltopia/DeltaWalker 1.9/. If DeltaWalker is installed elsewhere you need to update its path in .gitconfig.

The shell script git-diff is the same as the one expected for Mac OS and Linux except DW_PATH variable, which needs to be set to DeltaWalker installation directory (i.e. C:/Program Files/Deltopia/DeltaWalker 1.9).

The file git-merge should have the following content:

    #!/bin/sh
    DW_PATH=C:/Program Files/Deltopia/DeltaWalker 1.9
    java -Ddw.path="$DW_PATH" -jar "$DW_PATH/dw.jar" "$1" "$2" "$3" -merged="$PWD/$4" -wait

Once done merging, you need to save the contents of the Ancestor window using the Save menu, button, or shortcut so that DeltaWalker can save it to the file specified by the merged parameter.

Mercurial

Automatic integration

Go to the Command Link SCM Integration preference page. If Mercurial is installed on your system it will be listed - select/check its checkbox, then click OK. If it's not listed, please download Mercurial and install it first.

Usage

You can now use Mercurial to invoke DeltaWalker when you need to perform diff or merge operation:

hg dw
hg merge

Manual Integration

Mac OS and Linux

Instruct Mercurial to use DeltaWalker as its external diff and merge tool by adding the following to Mercurial's configuration file ~/.hgrc:

    [ui]
        merge = dw
    [extensions]
        hgext.extdiff =
    [extdiff]
        cmd.dw = /Applications/DeltaWalker.app/Contents/MacOS/hg
    [merge-tools]
        dw.executable = /Applications/DeltaWalker.app/Contents/MacOS/hg
        dw.args = $local $other $base -merged=$output

The above example uses the default DeltaWalker installation folder on Mac OS X. If DeltaWalker was installed in a different location, or if you are using Linux, please update its path accordingly.

The above shell script hg should look like that:

hg:

    #!/bin/sh
    DW_PATH=`dirname "$0"`
    java -Ddw.path="$DW_PATH" -jar "$DW_PATH/dw.jar" "$1" "$2" "$3" "$4" "$5" "$6" -wait

Windows

Tell Mercurial to use DeltaWalker as its external diff and merge tool by adding the following to Mercurial's configuration file %USERPROFILE%\.hgrc :

    [ui]
        merge = dw
    [extensions]
        hgext.extdiff =
    [extdiff]
        cmd.dw = C:/Program Files/Deltopia/DeltaWalker 1.9/hg.bat
    [merge-tools]
        dw.executable = C:/Program Files/Deltopia/DeltaWalker 1.9/hg.bat
        dw.args = $local $other $base $output

The batch file hg.bat is located in the default DeltaWalker installation folder. If DeltaWalker has been installed elsewhere its location will needs to be updated in .hgrc. Its contents should look like that:

hg.bat:

    @echo off
    set DW_PATH=C:\Program Files\Deltopia\DeltaWalker 1.9
    javaw -Ddw.path="%DW_PATH%" -jar "%DW_PATH%\dw.jar" %1 %2 %3 -merged=%4 %5 %6 -wait

Subversion

Version Control with Subversion provides the definitive guide to Subversion and its Using External Differencing Tools section gives a detailed explanation on the topic of integration with external diff tools.

Automatic integration:

Go to the Command Link SCM Integration preference page. If Subversion is installed on your system it will be listed - select/check its checkbox, then click OK. If it's not listed, please download Subversion and install it first.

Usage

To launch DeltaWalker as 2-Way diff tool, type:

svn diff

To launch DeltaWalker as merge tool to resolve conflicts, run:

svn update

You will then be prompted to select an option:

Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options:

Use option 'l', which, due to config file changes, will launch DeltaWalker ('l' is not seen as an option. You can use 's' to see it listed). After resolving the conflict, save file in the center window. (The Original file from which both versions of the Left and the Right files were derived from). Close DeltaWalker and select 'r' for resolved.

Manual Integration:

Mac OS and Linux

Modify the Subversion configuration file: ~/.subversion/config. Uncomment out, or add if missing, the lines shown below and set their values as such:

    [helpers]
        diff-cmd = /Applications/DeltaWalker.app/Contents/MacOS/svn-diff
        merge-tool-cmd = /Applications/DeltaWalker.app/Contents/MacOS/svn-merge

The above example uses the default DeltaWalker installation folder on Mac OS X. If DeltaWalker was installed in a different location, or if you are using Linux, please update its path accordingly.

svn-diff:

    #!/bin/sh
    DW_PATH=`dirname "$0"`
    java -Ddw.path="$DW_PATH" -jar "$DW_PATH/dw.jar" "$6" "$7"

svn-merge:

    #!/bin/sh
    DW_PATH=`dirname "$0"`
    java -Ddw.path="$DW_PATH" -jar "$DW_PATH/dw.jar" "$3" "$2" "$1" -merged="$PWD/$4" -wait

Windows

Modify the Subversion configuration file: %APPDATA%\Subversion\config by adding the lines shown below:

    [helpers]
        diff-cmd = "C:\Program Files\Deltopia\DeltaWalker 1.9\svn-diff.bat"
        merge-tool-cmd = "C:\Program Files\Deltopia\DeltaWalker 1.9\svn-merge.bat"

These batch files should have the fallowing content:

svn-diff.bat:

    @echo off
    set DW_PATH=C:\Program Files\Deltopia\DeltaWalker 1.9
    javaw -Ddw.path="%DW_PATH%" -jar "%DW_PATH%\dw.jar" "%6" "%7"
    

svn-merge.bat:

    @echo off
    set DW_PATH=C:\Program Files\Deltopia\DeltaWalker 1.9
    javaw -Ddw.path="%DW_PATH%" -jar "%DW_PATH%\dw.jar" "%3" "%2" "%1" -merged="%4"
    

StarTeam

Go to Tools > Personal Options... In the Options dialog select the File tab then locate the Alternate Applications button near the bottom left corner. In the Alternate Applications dialog check the Comparison Utility checkbox, if not checked, then either type the path to the DeltaWalker executable or use the browse (...) button to bring up the Select File dialog select it. In the Options text field immediately below supply the following options:

        -nosplash $file1 $file2

Concurrent Versions System, Windows Client (WinCVS)

Open the WinCVS preferences—in ver. 2.0.2 go to Admin > Preferences... then select the WinCVS tab. In the Programs group box, check the External diff option, then either type the path to the DeltaWalker executable or use the browse button to bring up the Select File dialog and navigate to it. If you have installed DeltaWalker using the MSI installer accepting all defaults, the path to DeltaWalker.exe should be:

        C:\Program Files\Deltopia\DeltaWalker 1.9\DeltaWalker.exe

Macromedia Dreamweaver

Macromedia Dreamweaver supports external file comparison tools and documents the integration steps in its help—just type "diff tool" in the help search field and the associated topic should come up. In a nutshell, these are the steps:

Mac OS X

        Macintosh HD:Applications:DeltaWalker.app:Contents:MacOS:DeltaWalker

Windows

        C:\Program Files\Deltopia\DeltaWalker 1.9\DeltaWalker.exe

XCode: