This project is an algorithm I designed to compare two or more trees. The algorithm is designed so that it can be applied to any kind of tree (understand: a node with children nodes, with children nodes, ...).
The most immediate application is obviously the comparison of directories. This is why the project already contains an implementation for files. It was proofed by (accurately) comparing the configuration of several environments (local, development, quality & acceptance, production).
What's in this?
tree-comparer-model: the objects needed for the use of the algorithm.
tree-comparer-algorithm: the comparison algorithm properly.
tree-comparer-reporter: a tool to generate a report from a compared tree.
tree-comparer-file: the implementation of the models and utilities for directory comparison.
plaintext-diff: a plaintext comparison utility, extracted from the ASF 2.0 licensed Diff Match Patch project; used mainly for reporting.
== The concurrence
Some products already exist and are easier to use, with an interactive user interface.
- WinMerge can compare two directories and enables interactive browsing of the differences.
- KDiff3 can compare up to three directories.
This algorithm however can compare a virtually unlimited number of trees.