HOME

EXAMDIFF PRO

FTPVC

BLOG

FORUMS

NEWS

SUPPORT

ABOUT US

PrestoSoft Blog

• ExamDiff Pro

• FtpVC

• Blog

• Forums

• News

• Press Resources

• Support

• About Us

Saturday, September 13, 2008

Moved Blocks

One more ExamDiff Pro feature that we are working on is moved block recognition. A moved block is any diff block that appears in both files but in different locations in the files.

Moved blocks are clearly visible due to the pink (as opposed to gray) coloring of their diff bars. If a moved block is selected, its diff bar is striped yellow and pink, as shown below:



Note that the diff combo bar description is slightly different for moved blocks and includes both a description of the diff itself and a description of the move (the latter part is only shown if the moved block is on the left side of the diff, because all descriptions are relative to the first file).

The first screenshot below shows the context menu for the diff bar of a moved block. From this context menu you can enable and disable the display of moved blocks, and can also locate the matching block. If you click on Select Matching Moved Block, ExamDiff Pro aligns the files (if possible) so that the two matching moved blocks are aligned, as shown in the second screenshot below. Note that it is possible for two matching moved blocks to have an unequal number of lines, if some of those lines are ignored.




Finally, view filters can now also filter moved blocks, as shown below.


Labels: ,

Monday, August 25, 2008

Diff Bar Improvements in ExamDiff Pro

Another major feature that the next version of ExamDiff Pro will include is an improved Diff bar (formerly known as the Current Diff bar).

All differences are now displayed on the Diff bar (as opposed to only the current difference being displayed before). The current difference is still clearly visible due to its yellow shading in the Diff bar, while other differences are shaded gray:



Each Diff bar now contains a green arrow at the top. Clicking the arrow copies the entire diff block to the other file, for easy merging of differences. In these screenshots, I clicked on the arrow in the second diff block of the first file:





Clicking on the Diff bar of the current diff block selects the text in the difference, while clicking on the Diff bar of any other diff block makes that diff block current. These features all combine to make it easier to view, select, and merge differences in files.

Labels: ,

Thursday, July 24, 2008

Fuzzy Matching

We've spent the past few months working diligently on the next version of ExamDiff Pro, and one of the biggest features that we're adding is fuzzy matching. In essence, fuzzy matching enables ExamDiff Pro to intelligently align lines that are similar but not identical.

Let's see it in action. Take a look at this pair of files with fuzzy matching disabled: the changed block shown looks rather ugly, and the similarities between the two files are difficult to see.



Previously, the only way to align similar lines was to use manual synchronization, as shown below. However, manual synchronization can be time consuming. Fuzzy matching can now do the same thing, automatically.



We can enable fuzzy matching from the new Options | Compare | Advanced panel. Settings on this panel allow you to automatically enable fuzzy matching for files below a certain size (because fuzzy matching can slightly slow down comparison for large files) and to set the fuzzy similarity threshold (lines with a lower % of similarity will not be matched).



After enabling fuzzy matching and hitting Re-compare, you would get something like this:



As you can see, similar lines are now automatically matched, and the comparison view is much cleaner.

Labels: ,

Saturday, December 01, 2007

Document Types and Syntax Highlighting

The latest beta release of ExamDiff Pro 4.0 features document types and syntax highlighting. The old Ignore Comments Options dialog is replaced with the Document Types dialog:



Document types are defined for file extensions, and three options are specific to each document type: tab size, comment definition, and syntax highlighting. (Note that, while new document types can be added, syntax highlighting can only be enabled for preinstalled document types.) Comments are now ignored in the Options | Compare dialog:



This brings us to our other new feature: syntax highlighting. Syntax highlighting is in effect when Document Type Settings are enabled, either in the Options | Display dialog, or with the Use document type settings toolbar button.



When Document Type Settings are enabled, documents that belong to preinstalled document types have certain syntax elements highlighted in Identical blocks. Every document type has five or six different syntax types, which can include numbers, operators, comments, strings, commands, tags, and more.

Labels: ,

Saturday, October 27, 2007

ExamDiff Pro 4.0 Beta!

At last, we have released a beta of ExamDiff Pro 4.0!

We were originally going to title this release ExamDiff Pro 3.6, but due to the numerous features that we added and the overhaul of the default toolbars, we decided to release it as ExamDiff Pro 4.0.

The key features in this release involve filters, which now have an Options panel of their own. In addition to the addition of size and date filters, which I explained in a previous post, the capability of name filters has been greatly increased. Name filters can now be organized into filter sets and edited in a graphical dialog. ExamDiff Pro 4.0 also comes with 10 preinstalled include filters and 4 preinstalled exclude filters, for everything from C++ to Delphi to XML development.

Other features in this this release include an option to perform quick full comparison of selected files in directory comparison without performing a full recompare of all files, improved default toolbars, a "Compare To..." option in the Shell extension, and many more features. Expect more posts soon in which I describe the numerous improvements that the beta of ExamDiff Pro 4.0 offers over version 3.5.

You can find more details about the 4.0 beta, and a download link, here.

Labels: , ,

Wednesday, September 05, 2007

In Development for ExamDiff Pro 3.6: New Command Line Options for Improved Version Control Integration

We are working on three new command line options for ExamDiff Pro 3.6:

  • /sn1:file - use this name when you save the first file
  • /sn2:file - use this name when you save the second file
  • /nh - do not add files or directories to comparison history
When ExamDiff Pro saves files, it normally overwrites the existing files, but if /sn1 and/or /sn2 is used, they override this setting and save the files to the location specified. With this feature, the user can use ExamDiff Pro to merge changes from the first file into the second file and save the results as a third file.

The /nh option, on the other hand, does not add the files and directories compared to ExamDiff Pro's history.

These three options are useful for integrating ExamDiff Pro with version control systems and using it as a merge tool, because they enable merge output to be saved into a separate file and do not pollute the ExamDiff Pro history with many pairs of temporary files.

Here is an example of how these options could be used to integrate with StarTeam:

Labels: ,

Wednesday, August 01, 2007

Updated Toolbars in ExamDiff Pro 3.6

To introduce new users to some of ExamDiff Pro's lesser known features, we decided to expand the default toolbars in ExamDiff Pro 3.6. In this blog entry, I will compare the 3.5 and 3.6 toolbars for text file, binary file, and directory comparison.

Text File Comparison Default Toolbar - Before and After

The Up One Level button was added to both the text file toolbar for users to quickly switch between file and directory comparison. The Save HTML Diff Report was added next to the Save Diff File button, because HTML diff reports are by far more popular among our users. The Synchronizing Splitter button was added because many new users were unfamiliar with ExamDiff Pro's manual synchronization feature. The Replace button was logically added next to the Find buttons, and a whole group of buttons were added before Options: Detail Level, Word Wrap, Use Plug-ins, and Ignore Comments, to introduce new users to these advanced features.

Binary File Comparison Default Toolbar - Before and After

As in the text file toolbar, the Up One Level and Save HTML Diff Report buttons were added to the binary file toolbar.

Directory Comparison Default Toolbar - Before and After

Finally, four new buttons were added to the directory comparison toolbar: Save HTML Diff Report, Recursion, Use Plug-ins, and Full File Comparison. In particular, we felt it was important to add the Recursion and Full File Comparison buttons because many users have difficulty finding where to adjust the recursion level in Options, and aren't aware of the toolbar button. The Full File Comparison toolbar button is new in 3.6, and was added for a similar reason.

Labels: ,

Wednesday, July 25, 2007

Improved Directory Comparison Filters

The first new feature that we are adding in ExamDiff Pro 3.6 is an improved Directory Comparison Filters options dialog.



As you can see, in addition to the Name filters option, which already exists in the current version of ExamDiff Pro, there are two new filters: a Date filter and a Size filter.

The Date filter, if enabled, compares files only if their Last Modified date falls within the specified limits. The Date filter gives you three options: you can either disable the Date filter, only compare files whose date falls between two set dates, or only compare files that are not older than a certain age.

The Size filter, if enabled, compares files only if their size falls between the upper and lower limits. Both the upper and lower limits may be enabled or disabled by checking or unchecking the checkbox next to them, respectively.

Note that all of these filters apply only to files, not to directories, and if a file in one pane is compared, the matching file (if any) in the opposite pane will be compared as well.

The major benefit of the Date filter in particular is the ability to speed up comparison by comparing only relevant files. Often you don't need to look at all files when comparing two directories, but only those modified in the last week, the last day, or the last hour. Enabling the Date filter will cut comparison speed significantly by comparing only the files that need to be compared.

Labels: ,

Friday, March 02, 2007

HTML Diff Report Navigation

The final new feature to make it to the ExamDiff Pro 3.5 beta (we plan to have the full 3.5 release ready within a month) is difference navigation in HTML diff reports. In this blog entry I will describe how this feature works. (You can view a sample diff report here.)

Difference navigation requires Javascript, so first make sure that you have the Use Javascript option checked in View | Options | HTML. Now, go to Files (or Directories) | Report | View HTML Diff Report. (If you wish to save the resulting diff report, use Files (or Directories) | Report | Save HTML Diff Report instead.) A browser window should open, and you should see something like this:



Note that at the bottom right corner, there are four buttons and a diff combobox, that you can use to navigate through the differences: The << button takes you to the first difference, < to the previous difference, > to the next difference, and >> to the last difference. Alternatively, you can jump to any difference by selecting its diff number in the combobox.

Early on in the development of this feature, we used images instead of buttons, images similar to toolbar buttons found in ExamDiff Pro - we felt this gave the diff report a more "authentic" feel. However, one of our guiding principles in making diff reports is that they should be accessible for anyone to use, whether or not they have a copy of ExamDiff Pro. We could find no good solution for where to keep the images: leaving them available as a free download on our website still made sharing diff reports a bit awkward, and using Javascript to embed images directly into the file proved incompatible with many browsers. Finally, we decided to simply use HTML buttons instead of images. We felt that this is the best solution, because this way, HTML diff reports are compatible with all major browsers, and can be shared with anyone, with no additional download required.

Labels: , ,

Sunday, February 11, 2007

Balloon Messages for Plug-ins in ExamDiff Pro 3.5 Beta

The latest addition to the ExamDIff Pro 3.5 beta is a feature that we've wanted to implement for a long time now: balloon messages that display whether or not plug-ins are successful.

If plug-ins execute successfully, you get a balloon message similar to the one below. If you click on the balloon, or double-click on the Plug-in status bar area, the Options | Plug-ins dialog will pop up, displaying all of the current plug-ins.



On the other hand, if plug-ins return errors or warnings, you get a slightly different balloon message, like the one below, and the Plug-in status bar area turns pink. If you click on the balloon, or double-click on the pink Plug-in status bar area, the errors or warnings, which ExamDiff Pro obtains through the standard error output of the plug-in (stderr), will be displayed in an external editor.

Labels: , , ,

Sunday, February 04, 2007

Session Files in ExamDiff Pro 3.5 Beta

The latest feature that we've added to the ExamDiff Pro 3.5 Beta is session files. You can now export ExamDiff Pro sessions - options and the last file/directory pair compared - into a standalone file. This offers many benefits:
  • You can share your sessions with your colleagues so that everyone working on the comparison project has the same options.
  • You can save comparisons for later viewing.
  • If you have many sessions but do not need to use all of them at the same time, you can save them to session files to organize them.




As you can see in the screenshot above, you can load and save session files from the Compare dialog, as explained here. In addition, you can load and save session files from the Files or Directories menu, as shown below. As you can see, ExamDiff Pro also stores recent session files and auto sessions (sessions within ExamDiff Pro) for quick re-use.



The screenshot below shows what ExamDiff Pro session files look like in Windows Explorer. When you open a session file by double-clicking on it, ExamDiff Pro automatically starts the comparison that was stored in the file, importing the session file's options into a new auto session.

Labels: , ,

Tuesday, December 26, 2006

New plug-in features in ExamDiff Pro 3.5 Beta

In our latest beta release of ExamDiff Pro 3.5, the biggest change is the addition of many new features concerning plug-ins. In this blog post, I will go over four new plug-in features.

The biggest, and most noticeable, of these is the option to install 10 plug-ins automatically. When you install ExamDiff Pro, at one point you will come to a message box asking your permission to install plug-ins, as shown below; if you say yes, ten of the most important plug-ins available (see our list of ExamDiff Pro plugins) will automatically be downloaded and installed. Neat!



Note: All of the plug-ins that are installed with ExamDiff Pro are free to use, and some are open-source; we provide the source code for those plug-ins whose license (most notably, GPL) requires it.

Two more improvements are the ability to compare archives (i.e. ZIP files) with directories, and the ability to specify default remote file and directory plug-ins (these are set by default if you choose to automatically install plug-ins). Now, whenever ExamDiff Pro sees that you are trying to compare a remote (i.e. HTTP or FTP) file or directory, it will automatically use the appropriate default remote plug-in. The Compare dialog screenshot below shows both of these features in action.



Last, but not least, you are now given the option to cancel a plug-in in operation: the following dialog is displayed whenever a plug-in takes longer than a second to complete its task. Clicking Cancel will stop the plug-in immediately and attempt to compare the files or directories without plug-ins. This comes in handy when a plug-in takes a long time, and you decide to stop comparison.

Labels: , ,

Wednesday, November 01, 2006

Manual Synchronization in ExamDiff Pro

Note: Manual synchronization will be included in the ExamDiff Pro 3.5 beta, which will probably be open to the public within a month.

Finally, after several weeks' worth of work, we have been able to implement manual synchronization into ExamDiff Pro. Unlike most of our competitors, who have text-based manual synchronization, we have developed a graphical system, that enables you to drag synchronization links around.

Let me give an example of a situation that can call for the use of manual synchronization. Take a look at the screenshot below.



As you can see, lines 6 and 5 (in the first and second files, respectively) are very similar, but have one changed word. Since ExamDiff Pro matches identical lines, rather that intuitively matching lines 6 and 5, the program matches lines 5 and 5, the first different lines that follow the identical blocks. What that does is that all lines that follow are shifted, which makes analysis of the comparison results difficult.

Similarly, while 10 and 10 are very similar, 9 is matched with 10 instead, so lines 10-12 in the first file and 10-12 in the second are out of sync.

In general, no matter how smart the comparison algorithm is, it sometimes has to be "helped out" by a human. And this is where manual synchronization is needed. Let me show how this new feature improves the results that we described earlier.



Note that the center splitter in the screenshot is much wider than usual. This is called a synchronizing splitter and can be used to form manual links. The wide splitter can be toggled on and off.

To create a manual link, you must click on the starting point (on the wide splitter) and drag to the ending point. If you need to independently scroll one file, you can now use Alt-Scroll (the mouse wheel or the scroll bar) to do so. The screenshot above shows what manual links look like.

After hitting Re-compare, you would get something like this:



As you can see, all similar lines are now properly matched and the whole comparison view is much cleaner.

Labels: ,

Sunday, September 24, 2006

Drag and Drop

Our newest addition to ExamDiff Pro is extensive drag and drop support. We have worked on greatly expanding what ExamDiff Pro offered previously, and have developed three categories of drag and drop:

1. Drag and drop into ExamDiff Pro from another application

 - You can drop one or two files or directories into the program's window from Windows Explorer:
    - If you select one file or directory, you can drop it into a comparison pane, and it will replace the file or directory in that comparison pane, and you will be prompted to recompare.
    - If you select two files or directories, you can drop them anywhere in the program, and they will replace the current files or directories being compared (they will be compared to each other). [see screenshot below]
 - When comparing files, you can drag text blocks from an external editor.
 - You can drop files or directories into certain dialog boxes that require a path to a file or directory, such as the Compare, Create Snapshot, and Copy to Third Directory dialogs.




2. Drag and drop from ExamDiff Pro into another application

 - When comparing directories, you can drag files or subdirectories into external editors. [see screenshot below]
 - When comparing directories, you can drag files or directories into Windows Explorer, which will result in them being copied to the currently selected directory in Windows Explorer.
 - You can drag a file or directory being compared by dragging its title box.
 - You can drag text from a text file comparison pane into an external editor.




3. Drag and drop within ExamDiff Pro

 - When comparing text files, you can drag text blocks within files, and between the files being compared.
 - When comparing directories, you can drag files between the two comparison panes, which results in them being copied from one pane to the other. [see screenshot below]


Labels: ,

Sunday, September 17, 2006

Touch command

After working out all the bugs in our new Compare dialog features, we set to work on finishing a feature that we started a few weeks ago: a UNIX-style Touch command.

For those of you unfamiliar with UNIX terminology, Touching a file or directory means timestamping it to the current time. The Touch feature that we're implementing can be accessed by right clicking a file or directory in directory comparison view, and selecting Touch.






As you can see, the first file automatically became marked "Newer" after it was Touched.

If you try to Touch a directory that isn't empty, the following dialog pops up, asking if you want to Touch all of its contents:


Labels: ,

Thursday, September 14, 2006

Compare Dialog Improvements: Icons and Autopick

Icons

We've been working on several features with the Compare dialog this week. The fist one is icons. Yes, the Compare dialog now shows icons for files and directories!



Autopick

Another feature we've implemented, one that I really like personally, is Autopick, a new ability to remember matching pairs. That is, whenever you choose a file (or directory) as the first option to compare, the second option automatically changes to the last file you compared the first file to. For example, if you compare "_test1" to "_test2", then the next time you choose "_test1" as the first file, ExamDiff Pro will remember and automatically switch the second file to "_test2". Neat!

A funny thing happened during development of this second feature. Our first idea was to change the other file whenever we change the first or the second file, not just the first. We thought we had it ready, so I was testing it out. First I compared "_test1" to "_test2", and then "1.1" to "2.1". I then selected "_test1" as the first file, and the second file changed to "_test2" as expected. I then selected "2.1" as the second file, and the first file changed to "1.1". So far so good, but then I wanted to try to compare "_test1" to "2.1" - no matter what I did, Autopick would not let me go out of order. It was then that we realized that we should change it so Autopick only works for the first file, not for the second. This shows that even PrestoSoft sometimes makes mistakes! :P

Labels: ,