[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [TSVN] Re: Revision graph missed merge

From: Daniel Patterson <danpat_at_danpat.net>
Date: 2005-05-24 01:00:55 CEST

Steve King wrote:
> I'm sorry, but it doesn't. Subversion doesn't store 'forward copies'
> (copied to) in the repository. And these are needed to have a reliable
> graph. Subversion only stores 'backward copies' (copied from).
> Sure, you can search the whole log from the repository root (that's what
> TSVN does), but when you find a 'copied from' entry, you have to
> reconstruct the 'from' part which (especially with renames, not simple
> copies) can point to non-existing entries.

  Yes, that's exactly what I meant when I said "but you need to
  traverse every revision". All the information you need is there,
  it's just expensive to get at right now.

  You can avoid the the "non-existing entries" problem by constructing
  a complete revision tree in memory as you traverse history
  (which is what my script does). So when someone does a copy
  from an old point in the repository that has since been deleted,
  it'll be there in your tree.

> I've tried your script when you first released it. It worked ok for the
> Subversion trunk, but fails in many other places. Also, the GraphViz
> engine doesn't draw the graph really nice, so it's hard to see a
> straight line of development.

  Have you tried it again recently? I did a complete revamp, and
  although it's still slow (and will remain that way until we
  get indexed svn_ra_get_children() or something), I'm pretty
  confident that it'll follow all the copies properly.

  If it doesn't, can you produce a recipe where it doesn't work?
  I'd like to fix it.

> Actually, it takes a lot more time. The 'svn log -v REPOSROOT' is just
> the part where you fetch the information. But the GraphViz tool also
> needs a *lot* of time to generate the graph.

  Yes, I guess that's true, call me an optimist :-) I kind of consider
  the problem solved once the graph has been calculated. The fact
  that GraphViz takes ages to lay it out is a mere implementation detail :)

  Given that GraphViz is a generic layout tool, I'm sure that an app
  written specifically to layout these version tree graphs could be
  pretty quick.

daniel

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Tue May 24 08:59:51 2005

This is an archived mail posted to the TortoiseSVN Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.