stroy is a smart diff tool. It specializes on directories of files. Its differentiating feature is the ability to match files with different name, location and content.

  • license: MPL1.1
  • platforms: OSX Windows Linux
  • programming language: java 5
  • current version:


stroy is licensed MPL1.1. All used libraries have their own licence see References


All the great tools and libraries stroy uses References


  • Smart matching

stroy compares directories and matches files and subdirectories using several strategies e.g. name, parent, content checksum and finally content fuzzy hash comparisons.

  • Filtering

stroy has an extensible pattern matching logic to filter out irrelevant files.
It can also remove files from an already performed diff.

  • Preferences

stroy allows to configure viewing programs, file diffing programs and diff strategies per file type.

  • synchronized scrolling

Sounds obvious but with matches of files with different parents this was not trivial (shoulder padding).

  • OSX look and feel

stroy is a Java program but it goes to some pains to look like a native OSX program.

  • Windows look and feel

Well there is an exe with the right icon of a windows programs.

  • Cross platform support

The cross platform package works on linux, osx and windows.

Why the name stroy?

The name is a play on a common typo 'stroy' for 'story'. The idea is that a reader with enough context
has no problem reading this as 'story'. Jsut ty to waht undertnd thsi stroy sys. Humans are fairly good at this.
Stroy imitates it.

Where does the logo come from?

It is supposed to be a stylish picture of a caterpillar and a butterfly. The idea being that stroy tracks changes.

How good are the matches?

stroy has several strategies to match files. Some are very simple and declare a match only if it
is very clear that the match is correct. Other strategies use complex heuristics and can not
answer with absolute certainty. Eventually its algorithm is described in more detail. There I show that there are cases when there is no single correct match but rather several possible ones. The stroy algorithm does not ask back but makes a decision.

Can I participate?

Oh yes! Anything helps. Bug Reports, Feature Request are great. The project is open source, i.e.
code changes are welcome. You can find your suggestions and their state on Change Tracking.

Build Requirements

stroy is a java program. You need java SDK 1.5 or newer. All used libraries are in the source package. There are module files for IntelliJ Idea 6.0 and an ant script. The libraries necessary to develop are in external/build external/production and external/test directories. Working with eclipse, netbeans or emacs should be no problem.

Bug and Feature Requests

Change requests and their state are on google-code-issues New request send to moc.liamg|egaCnepo#moc.liamg|egaCnepo or the Forum or google-code-issues.
State stroy version and os.

State and ChangeLog

For a summery of the changes checkchange-tracking. Details are on google-code-issues.


See download page: download
Source is at google-code

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License