svn2log - automatically generate changelogs from SVN


Do you want to publish a list of changes of your software project? SVN2Log automatically generates changelogs from Subversion repository. You do not need to waste your time and write special changelog document with a subset of features already described in your SVN commits’ desriptions – you decide which parts will be displayed to your users.


  • automatically generates text ChangeLog file from Subversion repository in standard GNU-style format;
  • use /* … */ comments in your SVN commits to mark parts of the descriptions which you don’t want to be visible for users;
  • limit information presented using commandline switches;
  • UTF-8 support;
  • written in Python, easily scriptable so you can add it to your cron jobs;
  • open sourced, free to use;


  • you don’t need to write the same information twice – once during SVN commit and once in a file describing a list of changes;
  • forces good practice of well-describing SVN commits among developers;
  • every developer decides which information will be presented to end users;
  • provide always the latest information about changes in software used by your clients;
  • no reason to email ChangeLogs – users can have newest ChangeLogs always published on the webpage, automatically;


Latest release: 2010-12-01   Download


2010-12-01 grant.croker at

send output to stdout when the file is „-„, i.e. –output –

2009-08-18 Chris.Clark at

made dependency on PyXML optional.

2009-08-17 Chris.Clark at

Removed dependency on PyXML (aka python-xml), which is no longer supported. See NOTE this program expects the output from:
svn -v --xml
I.e. expects the verbose mode (of the xml output). Without the versbose mode will see error:
<logentry> doesnt have <paths> child.

2009-08-17 Chris.Clark at

Added first-line-only. Only show first line of commit message/log.

2006-08-03 Przedsiebiorstwo Informatyczne CORE <svn2log at>:

-H, –no-host generate author name without hostname


How to use the script?

First unpack the archive anywhere on your disk. Then issue the command:

svn log -v --xml svn:// | python /path/to/svn2log/ -s -O -L -H -p '/(branches/[^/]+|trunk)/' -o changelog.txt

to generate changelog.txt file without too detailed information from repository located at svn:// url.

python --help

gives you detailed description of all available switches.

Which operating systems are supported by svn2log?

Every one supported by Python. For example Linux and Windows are supported.

Contact / Questions

All questions and feature requests should be emailed to: