The scrolling can be either synchronized or independent. In the synchronized mode, when one file is scrolled up or down, the other file scrolls to ensure that changes are displayed side by side in the two text windows. On the other hand, in the non-synchronized mode, only the file in the text window under the mouse is scrolled while the other file remains unmoved.
Diff is valuable for merging versions of a program produced by two programmers into a single, reconciled version. It can also quickly identify differences between a new and an old version of a document.
Invoke Diff by:
prompt:> xdiff main_err.c main.cFigure 16-1 shows the resulting display. If no file names are specified after the Diff command, the text windows will be empty. There are two other ways to specify which two files to compare. One way is to enter the first file name in the rectangle next to ``File name 1'' and the second file name in the rectangle next to ``File name 2''. The other way is to click on the ``File1'' or ``File2'' button to open a file dialog window, then select a file from the file list and click on the ``Load'' button with the left mouse button or hit the return key.
Clicking with any mouse button (left, middle or right) at any spot in the scroll bars brings the corresponding region of the file into the text window. You can use the arrows at the top or the bottom of the scroll bar to scroll up or down the source file a few lines at a time. You can also drag the mouse up or down the scroll bar with the left mouse button pressed to rapidly scroll up or down the file. In addition, Diff provides keyboard shortcuts. It may be necessary to click with the left mouse button to activate the desired text area. Once focused properly, the Up or Down arrow key will move the text up or down one line at a time. Any time the mouse is over the horizontal bar, you may scroll horizontally in that file, either with the Left and Right arrow keys or using the left mouse button. The PageUp and PageDown keys scroll up and down the source file one page at a time, respectively. The Home key scrolls to the beginning of the file, whereas the End key goes to the end of the file.
The ``Sync'' button in the top button bar works as a toggle. If it is on, clicking turns it off; if it is off, clicking turns it on. This button is used to determine whether file1 and file2 should be moved together in a synchronized way. By default, they are synchronized. As displayed in Figure 16-1, we see that a block of two lines in file1 is replaced by a block of six lines in file2. Both blocks are highlighted in green. Since the ratio of the number of lines changed in these two files is 1:3, Diff ensures that when every line in the block that is highlighted in green in file1 is scrolled up or down, three such lines in file2 are also scrolled up or down, or vice versa. We also see that a block of new code has been added to file2. This block is highlighted in blue. Diff ensures that file1 stays unmoved, that is, not scrolled up or down, while the blue highlighted block in file2 is scanned to examine the new code. The same technique also applies to the deletion code in file1 which is highlighted in red.
If you want to view these two files independently, i.e., without moving them together, you can click on the ``Sync'' button to turn it off. Once it is clicked, the button is dimmed to indicate Diff is in the non-synchronized mode. In this mode, the text window under the mouse has the focus. You can move the file in that window up or down by clicking a mouse button on the corresponding scroll bar or pressing shortcut keys: UpArrow, DownArrow, LeftArrow, RightArrow, PageUp, PageDown, Home or End.
You can switch back to the synchronized mode by clicking on the ``Sync'' button again. Depending on which text window has the last focus, the file in the other text window will be automatically scrolled to resume the synchronization. For example, if the left text window has the last focus, when the Sync mode is turned on, file2 in the right text window will then be automatically scrolled up or down to make itself in synchronization with file1. In the same way, if the right text window has the last focus, the left window will be adjusted.
The number of changes, additions, and deletions that have to be made to bring the two files into agreement appears in the middle bar in the rectangles next to the ``# of changes'', ``# of additions'', and ``# of deletions'' labels. In our case as displayed in Figure 16-1, there are 3 changes, 1 addition, and 1 deletion from main_err.c to main.c.
To see a description of the colors used in highlighting, select the ``changes'', ``additions'', or ``deletions'' button in the top button bar. A highlighted description window will pop up as in Figure 16-2.
|
|
To quit Diff, click on the ``Close'' button in the top button bar. This will close the Diff text window.