Skip to main content.

About UPiDiff

UPiDiff is an universal difference tool for text files of all kind. It currently focuses on source code files and plain text files, but its not limited to.

UPiDiff can highlight the differences between two text files and lets the user jump between the differences found in the documents. It shows differences on three levels:

  • BlockChange - A difference covering one or more lines
  • LineChange - A difference covering exact one line in the documents, whereas this single line can also be a line that is only present in one of the files
  • CharChange - A difference covering one or more characters on a single line

Using the above techniques, UPiDiff enables the user to go into deeper detail, than with most other differencetools that limit the level to block or line changes.

This project is the second revision of the UPiDiff difference tool. The first version was developed by Dimitrij Drus as part of his study, but was never made public til now. This second version is a complete rewrite of the first version. If was newly developed as a hands-on training at the University Siegen by

under the supervision of

  • Dipl.-Ing. Michael Welle
  • Dipl.-Ing. Dirk Ohst
  • Prof. Udo Kelter

of the institute Praktische Informatik at the Universität Siegen.


In order to use UPiDiff, you need a decent Java runtime environment. Atleast JRE 1.4.0 is required, but we suggest using JRE 1.4.1 or better. You can always download the latest Java 2 Plattform from the Sun Microsystems Java Plattform Site.


Source code:


  • UPiDiff-1.0.jar (104KB) - Basic JAR file, just execute with java -jar UPiDiff-1.0.jar (or double-click on some plattforms)
  • UPiDiff-1.0.tar.bz2 (93KB) - Unix binary, just untar the archive and type cd UPiDiff-1.0 && make install (as superuser) to install UPiDiff, now you can start UPiDiff using the upidiff shell script installed in /usr/local/bin.


UPiDiff is work-in-progress, that says that this 1.0 release does not mark the end of UPiDiff development. Development will continue as part of the so called Programmierpraktikum. All computer science students of the University Siegen with a good knowledge of software development and Java programming are welcome to join the UPiDiff team. Contact Prof. Kelter if you're going to do the Programmierpraktikum during the next semester and are interested in working on UPiDiff.

Of course, we also welcome suggestions, bug reports and patches from other people. We are about to establish a mailing list and a bug tracking system for UPiDiff, so stay tuned. In the meantime, please report bugs or send patches directly to the current maintainers, that is Alexander Jung, Benedikt Meurer and Kasbar Sulieman.

Current development is done on NetBSD and SuSE Linux systems using JBuilder Personal and VI Improved for development. The builds are done using the Apache Ant Build Tool, see the build.xml file for details.

The javadoc generated documentation of UPiDiff is available online to provide a good starting point for new developers and contributors.

Thanks for your interest in UPiDiff's development.



UPiDiff is licensed under the terms of the GNU General Public License. It is distributed in the hope that it will be useful to others as well, but without any warranty. See the GNU General Public License for details.

Latest News

SiTreeDiff as Eclipse Plug-in

10 Feb 05

The SiDiff tool is now also available as plugin for the Eclipse IDE.

SiDiff 1.3

23 Nov 04

A new version of SiDiff - the new name for UPiDiff - is available for download.