☕️ An algorithm to compare any number of trees, provided with an implementation for directory comparison.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Tree comparer

Build status Test coverage Technical debt Issues License: Apache 2.0

What's this?

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.