Comparing Binary Files

Merge binary comparisons provide a way to compare binary (typically non-text and non-image) data files. If you wish to see the differences between files at a byte level, this is the best type of comparison to use. Merge can interpret and display the bytes that make up the files in various ways to give, for example, a hexadecimal, decimal or floating-point view of the file data.

Information If you haven’t already, spending a few moments browsing the Instant Overview of File Comparison and Merging will help you quickly become familiar with Merge file comparisons.

Performing a comparison

To open a new binary comparison:

  • click the New Binary Comparison toolbar button;
  • or, select the FileNewNew Binary Comparison menu item;
  • or, press Shift+Cmd+B.

A new binary comparison window

Two empty areas where the compared files will be displayed take up the majority of the window. Above each file pane is an entry field that you can use to enter the path to a file that you want to compare.

To compare two files, you can type the paths of two files into the entry fields or use the buttons on the right-hand end of the entry fields to choose files to compare.

The Browse button opens a file-browsing sheet and the Show history button displays a list of files that you have recently compared.

If there are other versions of the file named in the entry field available for comparison in an SCM system repository, the Versions button displays a list of these other versions. If this button is not enabled, check the settings on the Versions page.

When you have chosen two files to compare, to perform the comparison:

  • click the Start or Recompare toolbar button, alternatively press Enter;
  • or, select the FileStart or Recompare menu item, alternatively press Cmd+R;
  • or, drag and drop files from Finder on to the filename entry fields or on to the file panes.

The binary comparison display

Two sample files (test1.txt and test2.txt) are provided in the Merge installation directory. The following screenshot shows the results of a binary file comparison between these two files.

Results of comparing test1.txt and test2.txt

Changes between the two files are highlighted with colours and linking lines. Linking lines in the centre panel of the file comparison window connect related changes to show exactly how the files are related. You can modify the colours and fonts used in the comparison window by using the controls on the Fonts/Colours settings page.

A summary of the number of changes that were found between the compared files is shown in the status bar at the bottom of the main Merge application window. The caret’s byte offset is also displayed.

Three-way file comparisons

In addition to two-way file comparison, the Professional Edition of Merge enables you to compare (and, for text files, merge) three files. Please see the Three-Way File Comparisons topic for more information. The Professional Edition also supports the automatic merging of text files.

Switch between a two and three-way comparison using the Two-Way Vertical and Three-Way Vertical toolbar buttons or the corresponding items in Window menu.

Layout controls

There are many settings that you can set to customize how Merge compares and displays files. There are help topics that will enable you learn how to customize Merge so that it produces the best results for you.

Binary comparison controls

You can change how the binary comparison is performed and displayed using the controls in the strip along the bottom of the binary comparison window.

Columns

This control determines the number of columns of data elements shown in the file panels. A value of 0 or Auto will cause as many columns as will fit to be shown.

Show characters

When checked, another column is added to the binary comparison display showing the binary data interpreted as ASCII characters.

Format

Use this drop-down list to choose the size and type of data elements in the compared files. You can choose to format the data as 8, 16, 32 or 64-bit integers, or 32-bit or 64-bit floating point values. The default element size is 8 bits. Click the Recompare button to apply changes to this control.

Display as

Use the values in this drop-down list to choose a display style for the data shown in the comparison. You can view the data in hexadecimal or decimal (big or little endian) or as floating point values. Some display values are only appropriate for certain choices in the Format drop-down (for example, displaying as Floating Point doesn’t make sense for a 8-bit integer format). The comparison display will show NaN (not a number) if the comparison format isn’t suitable for the selected Display as choice.

Search size

This value determines the amount of work Merge will perform to find a minimal set of changes between the compared files. Its effect is greater on large files. Smaller values typically result in quicker comparisons at the expense of accuracy; larger values result in slower comparisons with greater accuracy.

Although smaller search sizes will never miss a change, they may not give you the optimal set of changes.

Click the Apply button to apply changes to this control.

As you scroll one file up and down using its scroll bar, the other file is scrolled so that the two files remain aligned in the centre of the display. The centre-point marker (a line of small indentations in the centre of the linking lines panel) indicates the point at which Merge tries to keep related parts of the files aligned. You can temporarily prevent Merge from keeping both files aligned by holding down the Ctrl+Cmd keys while scrolling. When you release Ctrl+Cmd, the files will snap back into alignment.

The small Previous change in pane and Next change in pane buttons below the scroll bars can be used to jump to the previous or next change.

Overview strip There are thin overview strips next to the vertical scroll bars at the left and right edges of the file comparison window. These contain markings to indicate the position of changes within the compared files. You can quickly navigate to a change by clicking on the marks in the strip.

You can use the cursor keys to navigate within a file after clicking within it to give it keyboard focus. The following navigation shortcut keys are also available:

  • Ctrl+Option+ moves the editing cursor to the previous change.
  • Ctrl+Option+ moves the editing cursor to the next change.
  • Option+ and Option+ move the editing cursor left and right in word steps.
  • Cmd+ and Cmd+ move the editing cursor to the beginning or end of the file.
  • Cmd+L displays a window that you can use to navigate to a specific line number.

For a full list of keyboard shortcuts, see Keyboard Shortcuts.

Mouse and touchpad navigation

You can use your mouse wheel or touchpad to scroll up, down, left and right within the active file.

Bookmarks and comments

As you are comparing or editing files, you may want to set bookmarks to enable you to return to locations of interest later on. Click the Bookmarks toolbar button and select Toggle Bookmark, to toggle a bookmark on or off on the current line. You can also select the EditBookmarksToggle Bookmark menu item, or press Cmd+F2.

To navigate between bookmarks, click the Bookmarks button and select Next Bookmark or Previous Bookmark. You can also select Next Bookmark or Previous Bookmark from the EditBookmarks menu, or press F2 or Shift+F2.

Comments can be added to bookmarks, making it easy to note important information or to record a question. To edit a bookmark’s comment, click the Bookmarks toolbar button and select Edit Comment…. You can also select the EditBookmarksEdit Comment… menu item, or right-click the bookmark and choose the Edit Comment… menu item. Bookmark comments are shown as tooltips when you hover the mouse pointer over a bookmark.

Information Bookmarks and comments are included when you save a comparison for archival or team collaboration. Bookmark comments are also shown in HTML comparison reports. They are therefore a useful tool for asking questions or making notes in a comparison that will later be emailed to other team members for review.