XyDiff is a set of tools for creating and applying deltas from XML documents (similar to diff
/ patch
). It was originally developed by the GEMO team at INRIA-Rocquencourt, near Paris. It was forked by Frankie Dintino to add features and to support more recent versions of gcc, clang, and Xerces-C++.
The algorithm used in XyDiff is described in the following research papers:
- Change-Centric Management of Versions in an XML Warehouse. A Marian, S Abiteboul, G Cobéna, L Mignet. VLDB 2001.
- Detecting changes in XML documents. G Cobéna, S Abiteboul, A Marian. ICDE 2002 (San Jose).
XyDiff includes two command-line applications: xydiff
, a program which compares two XML files and creates a “delta” that describes the differences between the two documents, and xydelta
, which can apply that delta to the first document in order to reconstruct the second. It also includes a shared library, which is used by php_xydiff.
xydiff requires that Xerces-C++ 3.x be installed. Xerces-C++ can be built from source, or it can be installed with the binaries and headers for your platform:
- Ubuntu / Debian:
apt-get install libxerces-c-dev
- RedHat / CentOS / Fedora:
yum install xerces-c-devel
- Mac OS X (Homebrew)
brew install xerces-c
-
Download xydiff-3.0.0.tar.gz, extract it, and cd into the directory
xydiff-3.0.0
. -
Run a typical configure / make. If Xerces-C++ was installed into an unusual location, you may need to pass its prefix to
configure
using, for example,--with-xercesc=/opt/xerces
../configure make sudo make install
-
Clone the xydiff repository:
git clone https://github.com/fdintino/xydiff
-
Change directory to where you cloned the repository and generate the files from automake (≥ 1.10), autoconf (≥ 2.61) and m4 (≥ 1.4.6):
./autogen.sh
-
Follow step (2) above in "Building from source"
- Install Visual Studio (windows builds have only been tested on VC9).
- Install the Microsoft Windows SDK for your OS if it is not already installed. Restart after installing.
- Create a working directory for the code (denoted below by
%XYDIFF_DIR%
). - Download the Xerces-C++ binaries. For Visual Studio 2008 (VC9) and Visual
Studio 2010 (VC10), install the Xerces-C++ binaries:
(VC9,
VC10).
For Visual Studio 2012, you will need to download Xerces-C++
from source
and build the bundled VC11 solution file. Extract to
%XYDIFF_DIR%
. - Check out xydiff into
%XYDIFF_DIR%\xydiff
:git clone https://github.com/fdintino/xydiff
- Open
%XYDIFF_DIR%\xydiff\vc9.0\xydiff.sln
. Choose "Release" as the active configuration, and build the solution
This code is licensed under the Lesser GPL. See LICENSE.TXT for the full license.
- Grégory Cobena
- Serge Abiteboul
- Amélie Marian
- Frankie Dintino