svn2cvsgraph


Quick favorite links: Documentation FAQ Download Contact

About

This is a small utility which makes the excellent tool CvsGraph useful also for subversion users.

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.

License

Both CvsGraph and svn2cvsgraph are published under GNU General Public License v.2. For more information on GPL visit the GNU web-site.

Documentation

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.
	    

Examples

SoftwareCommands 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;'
The above examples were created 2010-03-28 using svn2cvsgraph 0.9beta and cvsgraph 1.7.0. The commands were run from a directory containing the default cvsgraph.conf delivered with cvsgraph 1.7.0. The contents of the graphs can be adjusted using different switches for svn2cvsgraph. The layout of the graphs can be adjusted by using different switches for cvsgraph and/or modifying cvsgraph.conf.

FAQ

In lack of questions the FAQ doesn't exist yet. Questions will be answered at SourceForge svn2cvsgraph support page.

Screen-shot

svn2cvsgraph 1.2 Copyright (C) 2010-2012 Henrik Carlqvist

Usage: svn2cvsgraph [OPTION]...
Options:
  -h         Shows this help
  -r  Set svn repository          (default '')
  -m  Set main trunk directory    (default '/trunk')
  -b  Set branch directory        (default '/branches')
  -t  Set tag directory           (default '/tags')
  -s  Set merge tag prefix        (default 'B__merged_')
  -n  Number of svn revs to show as tags    (-1=all) (default '30')
  -O  Tag svn rev where branching out (1=true, 0=false) (default '1')
  -M  Tag svn rev where at merge to   (1=true, 0=false) (default '1')
  -B  Tag svn rev on top of branch    (1=true, 0=false) (default '1')
  -T  Tag svn rev on tag              (1=true, 0=false) (default '1')
  -H  Hide removed tags               (1=true, 0=false) (default '1')
  -D  Duplicate names  (0=don't care, 1=hide, 2=rename) (default '0')

This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
	    

Change-log

From the CHANGELOG:

Date       Version  Comment
----------------------------------------------------------------------------
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
	    

Download

Current version

Current stable version is 2.0, it is available from SourceForge download. The md5sum of svn2cvsgraph-2.0.tar.gz is fabb869017a16a17bc3439262746ed85

Older versions

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

Other software

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

Links

Programs
CvsGraph An excellent tool for creating revision graphs.
Subversion A powerful version control system

Contact

Bug reports

Bugs should be reported to the SourceForge Bug Tracking System.

Feature requests

With my limited time to spend I make no promises, but requests for new features can be posted at SourceForge svn2cvsgraph feature request page. Feature requests are welcome, but even more welcome are new implemented features contributed as patches at SourceForge svn2cvsgraph patches page.

Support

Questions will be answered at SourceForge svn2cvsgraph support page.

Email

It was once possible contact me, Henrik Carlqvist, by my sourceforge email. Unfortunately that email address is no longer usable because large amounts of spam.
Hosted by:
SourceForge Logo