There are also other tools to create subversion revision graphs, but at the time of this writing all other known tools are built in features in some graphical development environment. As stand-alone tools svn2cvsgraph and CvsGraph are usable from automatic scripts and cron jobs.
Svn2cvsgraph has been tested on Linux and probably also works fine in other POSIX compatible environments. It might even work on Windows if compiled with MinGW and/or Cygwin, but at the time of this writing svn2cvsgraph has not yet been tested in Windows.
From the README:
1. General ---------- This program makes cvsgraph useful also for subversion repositories, the latest version is available for download from http://svn2cvsgraph.sourceforge.net/ 2. Installation --------------- Step 1, unpack the archive: tar -xzvf svn2cvsgraph*.tar.gz Step 2, compile: cd svn2cvsgraph* make Step 3, become root and install su (and give password) make install 3. Usage ----------- As svn2cvsgraph calls svn the command svn must be installed in the PATH. Also cvsgraph should be installed as the purpose of this program is to generate an input file for cvsgraph. First svn2cvsgraph is used to create a file readable by cvsgraph, then cvsgraph is used to create the graph. There are some examples of usage in the man page for svn2cvsgraph. 4. Documentation ---------------- There is a man-page for svn2cvsgraph, and you will get some help by typing: svn2cvsgraph -h 5. Known problems ----------------- The created rcs file is not fully cvs compatible, it is only good enough to be read by cvsgraph. No log messages are saved so %L is not useful in cvsgraph. It might take many hours to complete the conversion of a subversion repository with hundreds of thousands of revisions, please have patience! With only a few thousand revisions svn2cvsgraph will be done in seconds, the time required grows exponentially with the number of revisions. This program was originally written to present a subversion repository with less than 10000 revisions, most likely the graph created by cvsgraph for a repository with more revisions is not very useful anyway. Care should be taken when commiting changes, tagging, branching, merging and deletion of tags and branches. Unless only one merge, one branch or one tag is done for each commit the presented result might not be exactly what you want. Each svn revision can only be represented in one box in the created graph. Also branches should contain the entire trunk, not only some subdirectory. The svn subversion client as well as the repository must be of at least version 1.5 for merges to be tracked. If the subversion repository is upgraded from a lower version than 1.5 only merges after the upgrade was done will be tracked. |
Software | Commands for svn2cvsgraph and cvsgraph | Time needed for svn2cvsgraph | Result (click for entire image) |
---|---|---|---|
MPlayer | svn2cvsgraph -r svn://svn.mplayerhq.hu/mplayer > /tmp/mplayer,v | 30 sec | 780x1655 pixels |
cvsgraph -r/tmp -m. mplayer,v -o /tmp/mplayer.png -O'strip_untagged=true;' -O'rev_hidenumber=true;' -O'merge_to="^B__merged_%1$";' -O'merge_from="^(.*)";' -O'tag_ignore="^B__merged_(.*)";' -O'tag_ignore_merge=true;' | |||
PuTTY | svn2cvsgraph -r svn://svn.tartarus.org/sgt -m /putty -b '' > /tmp/putty,v | 1 min 42 sec | 3349x1397 pixels |
cvsgraph -r/tmp -m. putty,v -o /tmp/putty.png -O'strip_untagged=true;' -O'rev_hidenumber=true;' | |||
PHP | svn2cvsgraph -r http://svn.php.net/repository/php/php-src -m /php/php-src/trunk -b /php/php-src/branches -t /php/php-src/tags > /tmp/php,v | 1 hour 21 min 40 sec | 2598x17931 pixels |
cvsgraph -r/tmp -m. php,v -o /tmp/php.png -O'strip_untagged=true;' -O'rev_hidenumber=true;' -O'merge_to="^B__merged_%1$";' -O'merge_from="^(.*)";' -O'tag_ignore="^B__merged_(.*)";' -O'tag_ignore_merge=true;' |
svn2cvsgraph 1.2 Copyright (C) 2010-2012 Henrik Carlqvist Usage: svn2cvsgraph [OPTION]... Options: -h Shows this help -r |
From the CHANGELOG:
Date Version Comment ---------------------------------------------------------------------------- 20/6 2017 2.4beta Updated version (minor bugfix as 2.3beta still presented itself as 2.2beta). Please do NOT use version 2.3beta of svn2cvsgraph to fetch information from subversion repositories that do not belong to you! 18/6 2017 2.3beta Fixed bug that might prevent cvs status to be "Active" if files where removed at last commit. Version 2.3beta of svn2cvsgraph still does make one svn call for every revision. As you can understand this is not a very nice thing to do. Please do NOT use version 2.3beta of svn2cvsgraph to fetch information from subversion repositories that do not belong to you! 8/8 2015 2.2beta Now making setting cvs status to "Active" instead of default "Exp" for revisions on top of unmerged branches Version 2.2beta of svn2cvsgraph still does make one svn call for every revision. As you can understand this is not a very nice thing to do. Please do NOT use version 2.2beta of svn2cvsgraph to fetch information from subversion repositories that do not belong to you! Using 2.2beta might upset the repository owner. 27/12 2014 2.1beta Now making one call to svn for each revision to extract merge info in a way compatible with svn version 1.6.17 and newer. Unfortunately even version 2.0 misses some merge info with svn version 1.6.17 and newer. The lost subversion merge info is reported as bug report 4477 in the subversin issue tracker. Until bug 4477 has been fixed there is no other way to be sure to get all merge information than to make one call to svn for each revision in the repository. Version 2.1beta of svn2cvsgraph does make one call for every revision. As you can understand this is not a very nice thing to do. Please do NOT use version 2.1beta of svn2cvsgraph to fetch information from subversion repositories that do not belong to you! Using 2.1beta might upset the repository owner. 28/12 2013 2.0 Now making one call to svn for each branch to extract merge info in a way compatible with svn version 1.6.17 and newer. 3/3 2012 1.2 No longer allowing CVS HEAD to be placed on a tag on main trunk, this is a bug-fix to avoid hidden versions above head on main trunk. 19/2 2012 1.1 Now also detecting branches created with "svn copy --parents" 11/12 2010 1.0 Modifying tags names containing only numbers as cvsgraph does not allow such tag names 28/3 2010 0.9 First public release |
Current development version is 2.4beta, it is available from
SourceForge download.
The md5sum of svn2cvsgraph-2.4beta.tar.gz is c750ee46c8674afd7d9adb6bcc995d6e
Please do NOT use 2.4beta on subversion repositories that do not belong to
you! (see CHANGELOG above for more information)
Current stable version is 2.0, it is available from SourceForge download. The md5sum of svn2cvsgraph-2.0.tar.gz is fabb869017a16a17bc3439262746ed85
Because of a known bug in subversion 1.6.17 and newer version 2.0 might not find all merges. (see CHANGELOG above for more information)
Version 2.3beta is available from
SourceForge download.
The md5sum of svn2cvsgraph-2.3beta.tar.gz is 6a144e306c3366b677861470aac25eed
Please do NOT use 2.3beta on subversion repositories that do not belong to
you! (see CHANGELOG above for more information)
Version 2.2beta is available from
SourceForge download.
The md5sum of svn2cvsgraph-2.2beta.tar.gz is 965dce9a0aad0aeb7d63d32748f68bbd
Please do NOT use 2.2beta on subversion repositories that do not belong to
you! (see CHANGELOG above for more information)
Version 2.1beta is available from
SourceForge download.
The md5sum of svn2cvsgraph-2.1beta.tar.gz is fdd50fabf918da3cf50f30977247b8e9
Please do NOT use 2.1beta on subversion repositories that do not belong to
you! (see CHANGELOG above for more information)
Version 1.2 is available from SourceForge download. The md5sum of svn2cvsgraph-1.2.tar.gz is 9b49ff42026e88656bf9c500b18f5704
Version 1.1 is available from SourceForge download. The md5sum of svn2cvsgraph-1.1.tar.gz is b0db93bc8808524bd0a2276af544cf4a
Version 1.0 is available from SourceForge download. The md5sum of svn2cvsgraph-1.0.tar.gz is c466c44848dedfb46db7a5054b521f1a
First public version was 0.9beta, it is available from SourceForge download. The md5sum of svn2cvsgraph-0.9.tar.gz is 33993d7f76640e3e5b1a771f3668b08e
To use svn2cvsgraph you will also need cvsgraph, version 1.7.0 is available from SourceForge download or get the latest version from CvsGraph official web-site
Programs | |
---|---|
CvsGraph | An excellent tool for creating revision graphs. |
Subversion | A powerful version control system |