Bleeding Edge

If you want a stable version of Xapian, we recommend using a released version. But if you're happy to cope with potential breakage and want to try the latest development code, or do development yourself, you can access our git repository.

The repository includes a complete history of the code, including that from the original Open Muscat project's CVS repository, and from the subsequent SVN repository. It should be complete, except that we dropped CVS tags for the old nightly snapshots (and a few others which it seems highly unlikely anyone would find useful) - if you really need these for some reason, contact us for a copy of the archived CVS tree.


You can check out code from the master git repo at like so:

  1. git clone
  2. Read the "Building from git" section in xapian-core/HACKING - in particular make sure you have the required tools installed.
  3. In the newly created xapian directory, run the command ./bootstrap - this will run various developer tools to produce a source tree like you'd get from unpacking release source tarballs.
  4. bootstrap will create a top level configure script, which you can use to configure the whole source tree together.
  5. If you're looking to do development work on Xapian, then the rest of xapian-core/HACKING is recommended reading.

Note: Prior to late September 2016, supported the git protocol instead of https - when we added https support, we decided to remove git as it seems to have no advantages and some disadvantages compared to https. If you have an existing clone of the repo, you can update the remote URL like so (assuming your remote uses the default name "origin" - if not, specify the appropriate remote name instead):

git remote set-url origin

All branches should be available via git (you can list them with git branch -r). Note that SVN tags appears as branches in git.

There are also mirrors on (which polls for updates) and github (updated by a hook). You may find these more convenient to clone from if you use those sites.

Browsable git repos

If you just want to look at the history of a few files, you may find it easier and quicker to browse the repository online:


The subversion repository is no longer available online, but if you have a revision id you can easily locate it in git - say you want to find SVN revision 12345, then in your local clone of the git repo you can run:

git log --grep '^git-svn-id: .*@12345 ' `git branch --list -r 'origin/svn/*'`

This searches the log messages of the history of all git branches which were imported from SVN for a commit with the requested SVN revision id in the mapping line added by git-svn.


You can download automated snapshots, which are generated from git once a day, provided make distcheck passes on Linux. This means that some breakages are avoided, but they may still fail to build for you if you're using a different platform, or even a different version of Linux.

If you want to get a better idea of how healthy the tree is on various platforms, see the automated builds page on the wiki.