compare tool web application
becke.ch compare tool web application (for older browsers respective browsers having issues)
becke.ch compare tool library
|becke.ch compare tool: A Java
application (Web & Standalone) to diff respective compare entire file hierarchies (zip-files or directories), input streams and documents in different formats.
The underlying algorithm is based on a variation of Eugene W. Myers diff algorithm (O(ND) Difference Algorithm), can process any kind of input streams (preferably character input streams), supports filtering based on regular expressions and provides different tuning options.
This underlying library is more accurate than Meld, Eclipse and sometimes even Beyond Compare. More powerful than Meld and Eclipse supporting filtering based on regular expressions. And last but not least has comparable performance to the afore mentioned diff / comparison tools.
NEW (08.2015): Microsoft Word (.doc & .docx) & Excel (.xls & .xslx) support: Supports now as well the comparison of Microsoft Word (.doc & .docx) & Excel (.xls & .xslx) files (file load based on Apache POI)!
NEW (09.2015): OpenOffice & LibreOffice Writer (.odt) support: Supports now as well the comparison of OpenOffice- and LibreOffice-Writer (.odt) files!
NEW (10.2015): PDF (.pdf) support: Supports now as well the comparison of PDF-files (file load based on Apache PDFBox)!
NEW (11.2015): Linear Space Refinement: Improved quality & performance: Implemented a variation of Eugene W. Myers linear space refinement algorithm and further improved the diff quality and performance!
NEW (12.2015): AngularJS: Improved GUI: Implemented the GUI in AngularJS for a better look & feel and user experience.
NEW (01.2016): File hierarchy: Directory & Zip-File Support: Supports the comparison of entire file hierarchies: directories (only stand-alone client) and zip-files and outputs the differences in a tree-view.
NEW (02.2016): Unified Diff Support: Supports unified diff. The unified diff output is often used as input to patch programs. Many projects specifically request that "diffs" be submitted in the unified format, making unified diff format the most common format for exchange between software developers. (See as well: diff utility).
NEW (05.2016): Max-Time Support (Option: max time: Default 1000 milliseconds): The user can now set a max-time how long the comparison may take. After this time limit is exceeded the algorithm shows in percentage how much characters could be compared and returns the remaining characters as non-matching.
NEW (06.2016): Performance Improvement: The reconciliation algorithm has further been improved and based on that the performance and diff results became even better.
NEW (07.2016): Lazy Load & Scrollbar Support: Only the nodes/files that are different are loaded, shown and expanded in the explorer. Further nodes are loaded on demand when clicking the corresponding folder icon in the explorer. When navigating from the diff-explorer- to the diff-file-view and back again the scrollbar-position in the explorer is maintained (making sure the user does not loose the orientation).
NEW (08.2016): Filter support on hierarchies: (Option: "file hierarchy": filtering: Default: "yes"): When comparing entire file hierarchies (directories, zip-files, ...) the line- and overall-filters can now be applied on every single file, which makes the file hierarchy diff result much more accurate i.e. no false positives because the same filtering is now applied on each file as when comparing just single files.
NEW (08.2016): Character-Set/Encoding support: (Option: "file: character set": Default: "UTF-8"): We can now explicitly set the character set/encoding of the left- and right-file before comparing them. This helps to avoid differences caused by files that have been persisted in different encodings.
NEW (09.2016): Font Size: Diff In-/Output: The user can now set the font size for the diff in- and output sections.
NEW (09.2016): On-the-fly Edit & Save support: The user can edit the diff-content and while typing the diff result gets updated on-the-fly. And last but not least the user can then save the modified files and diff results.
NEW (11.2016): WYSIWIG Edit support: The user can WYSIWIG (What You See Is What You Get) directly edit the diff-content in the HTML table itself (no need anymore for separate text-area) and while typing the diff result gets updated on-the-fly. (This feature is based on the "contenteditable" support in HTML5.)
NEW (01.2018): Copy & same-size/same-time support on hierarchies: NEW Copy functionality to copy single files or entire sub-directories from left to right and vice versa!
(Option: "file: same size & same time: compare: Default: "no"): When comparing entire file hierarchies (directories, zip-files, ...) the same-time & same size comparison can now be applied so that every single file will be compared, which makes the file hierarchy diff result more accurate but potentially at a high performance impact depending on the directory size and therefore set to false by default.
Use Cases, Samples & Screenshots: Some use cases, samples and screen-shots comparing the accuracy of: becke-ch--diff--s0-v1 to Eclipse, Meld and Beyond Compare:
Use Case 1: Short text with the words concatenated together:
Use Case 1: Sample:
Use Case 1: Comparison:
Use Case 2: Long text sections that are sparsely matching and not aligned on new-line boundaries e.g. comparing long and complex html markup text with its clear text version copied from the browser.:
Use Case 2: Sample:
Use Case 2: Comparison:
Use Case 3: More powerful than Meld and Eclipse supporting filtering based on regular expressions: Filtering gives the user the ability to filter out text passages he is not interested in so he can better focus on relevant differences e.g. in java a user could filter out leading and trailing spaces, comments, etc.
Use Case 3: Sample: Comparing html markup text with its clear-text (copied from the browser): The same sample was already shown (without filtering) in use case 2 (see above). As already mentioned the filter gives the user the ability to focus on the relevant differences - in this use case we basically filtered out the markup tags to be able to better focus on the changes in the text passages:
Use Case 3: Sample: Shows the difference / benefit of a filtered diff (lower image) versus a non-filtered diff (upper image) applied on java code: Again the user can better focus on the relevant changes because leading-, trailing-spaces, line comments and javadoc were filtered out: