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

Re: Full log history or branch derivation tree?

From: Stefan Sperling <stsp_at_elego.de>
Date: 2007-11-28 21:06:06 CET

On Wed, Nov 28, 2007 at 11:34:49AM -0800, Dan Stromberg wrote:
> I could really use one of the following:
> 1) Is there a way of getting "svn log" (or similar) to output not just
> log history for the current branch/tag, but to also report history of
> the files comprising that branch/tag through their full history,
> including when they were part of other branches and/or tags?

We did that for a client once, by basically creating a reverse
mapping of the copied-from information stored in the subversion
repository and creating "copied-to" properties on files that
are copied. So you could ask "svn log" to give you the history
of a file and all its children by going _forward_ through history.

Then there was tons of output and we had to have a python filter
script that would only show log entries for files that match
a specified regex. :)

All this was O(1), provided that you let svnadmin crawl the
repository to add all those properties, or if you started out
with a fresh repo and used a patched svn setup from the start.
The client library was hacked to create those "copied-to"
properties whenever something was copied.

But even though I implemented it, I always found the feature
somewhat against the spirit and design of subversion.
Even talking about it here is a bit embarrassing.
I never wanted to submit it upstream.

A similar feature using the sqlite database in the repository
(better idea than using properties) is being worked on by cmpilato
if I recall correctly. It bears the nice name "location segments",
I think. But don't quote me on this :)

There is another alternative though (see below).

> 2) Is there a way of automatically generating a tree (digraph, really)
> of what branches/tags where cut from what other branches/tags?

No idea, I think I've seen some perl script that does something
like that once but I don't recall where, sorry.

> One or both of these would seem to make life considerably easier with
> a large tree with lots of branching. The gist is, I need to know
> somehow what bugs were fixed where - not just where they were
> originally committed, but also where those commits moved to via tree
> copies.

What about using an issue tracker to keep track of what fixes have
been applied where and to which branch? You need an issue tracker
for issue management anyway, so it might as well handle that
information for you. Subversion doesn't have to do everything.

Stefan Sperling <stsp@elego.de>                 Software Developer
elego Software Solutions GmbH                            HRB 77719
Gustav-Meyer-Allee 25, Gebaeude 12        Tel:  +49 30 23 45 86 96 
13355 Berlin                              Fax:  +49 30 23 45 86 95
http://www.elego.de                 Geschaeftsfuehrer: Olaf Wagner

  • application/pgp-signature attachment: stored
Received on Wed Nov 28 21:07:23 2007

This is an archived mail posted to the Subversion Users mailing list.

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