Revision/History Graph - DAG (Directed Acyclic Graph)

17 views
Skip to first unread message

Stanimir Stamenkov

unread,
Apr 30, 2012, 7:14:16 PM4/30/12
to us...@subversion.apache.org
Is anyone aware of tools which (re)construct a DAG from Subversion
repository history and display it pretty much like today's DVCSes?
For example:

http://code.google.com/a/eclipselabs.org/p/mercurialeclipse/source/list?r=ee7ed7ec51606117613924d0662fc03086787450

https://bitbucket.org/tortoisehg/thg/changesets/9fbf6b7fe9d5

I realize this could be tricky because of the implicit branching SVN
employs, but may be it's not impossible. I imagine much of it could
be done using the copy source and merge-info data, though multiple
copy and merge sources for certain revision/changeset seem non-trivial.

--
Stanimir

Andreas Krey

unread,
May 1, 2012, 3:19:21 AM5/1/12
to Stanimir Stamenkov, us...@subversion.apache.org
On Tue, 01 May 2012 02:14:16 +0000, Stanimir Stamenkov wrote:
> Is anyone aware of tools which (re)construct a DAG from Subversion
> repository history and display it pretty much like today's DVCSes?

'git svn' works for me.

Although you can easily create svn repos that have no good git
representation (single-revision merges, partial tree merges).

> I realize this could be tricky because of the implicit branching SVN
> employs, but may be it's not impossible. I imagine much of it could
> be done using the copy source and merge-info data, though multiple
> copy and merge sources for certain revision/changeset seem non-trivial.

Indeed. Straightforward cases go easier.

Andreas

--
"Totally trivial. Famous last words."
From: Linus Torvalds <torvalds@*.org>
Date: Fri, 22 Jan 2010 07:29:21 -0800

Thorsten Schöning

unread,
May 1, 2012, 3:20:22 AM5/1/12
to us...@subversion.apache.org
Guten Tag Stanimir Stamenkov,
am Dienstag, 1. Mai 2012 um 01:14 schrieben Sie:

> Is anyone aware of tools which (re)construct a DAG from Subversion
> repository history and display it pretty much like today's DVCSes?

Did you already look at the revision graph e.g. TortoiseSVN is able to
produce? From my point of view there's no pr

http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-revgraph.html

Mit freundlichen Grüßen,

Thorsten Schöning

--
Thorsten Schöning E-Mail:Thorsten....@AM-SoFT.de
AM-SoFT IT-Systeme http://www.AM-SoFT.de/

Telefon.............030-2 1001-310
Fax...............05151- 9468- 88
Mobil..............0178-8 9468- 04

AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
AG Hanover HRB 207 694 - Geschäftsführer: Andreas Muchow

Thorsten Schöning

unread,
May 1, 2012, 3:21:39 AM5/1/12
to us...@subversion.apache.org
Guten Tag Stanimir Stamenkov,
am Dienstag, 1. Mai 2012 um 01:14 schrieben Sie:

> Is anyone aware of tools which (re)construct a DAG from Subversion
> repository history and display it pretty much like today's DVCSes?

Did you already look at the revision graph e.g. TortoiseSVN is able to
produce? From my point of view there's no real difference or are you
missing any information? I don't knwo how merge tracking info is
included because my Subversion serve ris still at 1.4.x.

Stanimir Stamenkov

unread,
May 1, 2012, 5:31:58 AM5/1/12
to us...@subversion.apache.org
Tue, 1 May 2012 09:21:39 +0200, /Thorsten Sch�ning/:
> Guten Tag Stanimir Stamenkov,
> am Dienstag, 1. Mai 2012 um 01:14 schrieben Sie:
>
>> Is anyone aware of tools which (re)construct a DAG from Subversion
>> repository history and display it pretty much like today's DVCSes?
>
> Did you already look at the revision graph e.g. TortoiseSVN is able to
> produce? From my point of view there's no real difference or are you
> missing any information? I don't knwo how merge tracking info is
> included because my Subversion serve ris still at 1.4.x.
>
> http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-revgraph.html

Yes, I've already had a look at TortoiseSVN, Subclipse, Subversive,
SvnMapper, svn-graph-branches and Syncro SVN Client:

http://tortoisesvn.tigris.org/bigpicture.html
http://subclipse.tigris.org/graph.html
http://www.eclipse.org/subversive/documentation/teamSupport/revision_graph.php
http://svnmapper.tigris.org/
http://code.google.com/p/svn-graph-branches/
http://www.syncrosvnclient.com/revision_graph.html

None of these resemble the DVCS examples I've given. All of these
require too much of visual space to describe just a little bit of
history with the valuable copy/branch and merge information. SVN
1.4.x is out of question as the merge-info is too important to omit.

If you're still wondering what I'm after, look at the Subversive
History view using merge-info (svn log --use-merge-history):

http://www.eclipse.org/subversive/documentation/teamSupport/history_view.php

Then map this to the examples I've already given:

http://code.google.com/a/eclipselabs.org/p/mercurialeclipse/source/list?r=ee7ed7ec51606117613924d0662fc03086787450

https://bitbucket.org/tortoisehg/thg/changesets/9fbf6b7fe9d5

Andreas Krey suggested nice approach in his reply - convert the SVN
repository to Git, then use that to display the history. I haven't
tried the SVN to Git conversion -- this is basically the only thing
I haven't tried yet, but I've tried SVN to Mercurial using various
tools available for the task, and in my experience this conversion
is far from perfect, especially with "weird" repositories. That's
why I'm searching for "native" SVN solution which takes as much of
the Subversion quirks as it could to reconstruct the history as nice
DAG which could be displayed pretty much like today's DVCSes can.

--
Stanimir

Thorsten Schöning

unread,
May 1, 2012, 7:50:34 AM5/1/12
to us...@subversion.apache.org
Guten Tag Stanimir Stamenkov,
am Dienstag, 1. Mai 2012 um 11:31 schrieben Sie:

> None of these resemble the DVCS examples I've given. All of these
> require too much of visual space to describe just a little bit of
> history with the valuable copy/branch and merge information.

So what you really want is a client which's revision graph exactly
looks like or can be configured to look like your example from git?
Because Subversive seems to produce the same quality of content, just
differently displayed.

> [...]but I've tried SVN to Mercurial using various
> tools available for the task, and in my experience this conversion
> is far from perfect, especially with "weird" repositories.

This won't change with svn to git, those tools are only valuable for
one time conversion, not long term usage. At least this is my
experience and what I've read from others, unless your usage is
extremely trivial. I wouldn't do it, but I wouldn't mind about column
order and size in revision graphs, too.

Andreas Krey

unread,
May 1, 2012, 8:07:07 AM5/1/12
to Stanimir Stamenkov, us...@subversion.apache.org
On Tue, 01 May 2012 12:31:58 +0000, Stanimir Stamenkov wrote:
...
> Andreas Krey suggested nice approach in his reply - convert the SVN
> repository to Git, then use that to display the history. I haven't
> tried the SVN to Git conversion -- this is basically the only thing
> I haven't tried yet, but I've tried SVN to Mercurial using various
> tools available for the task, and in my experience this conversion
> is far from perfect, especially with "weird" repositories.

It necessarily is. Tools that map an svn repo into a DVCS one have
to deal with the fact that the latter 'only' have one global branch/merge
history while in svn potentially every file can have a completely
different DAG (and even reversed vertices).

Andreas Krey

unread,
May 1, 2012, 8:10:50 AM5/1/12
to Thorsten Schöning, us...@subversion.apache.org
On Tue, 01 May 2012 13:50:34 +0000, Thorsten Sch�ning wrote:
...
> Because Subversive seems to produce the same quality of content, just
> differently displayed.

But this kind of 'differently displayed' is quite valuable. Putting
commits in a list and narrowing the tree provides a lot more overview
and visible nodes.
Reply all
Reply to author
Forward
0 new messages