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

Re: cvs2svn: raw or cooked?

From: Ben Collins-Sussman <sussman_at_newton.collab.net>
Date: 2000-09-27 06:42:07 CEST

Bob Miller <kbob@jogger-egg.com> writes:

> How close is it to the DTD that Branko posted the other day? His
> looked like this. (I think you missed it; it was in an attachment.)
>

The DTD posted is exactly what we're already using to communicate
tree-deltas between client and server. It seems obvious to me that
this *should* be the interchange format... or rather, the interchange
format should be a superset of this DTD.

A single commit or update ("merge", really) looks like

<delta-pkg>
   <tree-delta>
      ... as specified in the subversion spec ...
   </tree-delta>

   ...(a series of optional postfix <text-delta> tags here)
</delta-pkg>

To represent a series of commits (a.k.a. "a repository"), we simply
need a series of these <delta-pkg>'s. As far as I'm concerned, it
seems simplest just to shove them all inside a new top-level tag:

<svn-repository>
   <delta-pkg>.... </delta-pkg>
   <delta-pkg>.... </delta-pkg>
   <delta-pkg>.... </delta-pkg>
   ...
</svn-repository>

End of story.

And of course, part of the motiviation for this is that we already
*have* a working xml parser that reads a <delta-pkg> and executes it
by calling into a svn_delta_edit_fns_t... which is exactly what you
want. Our xml2svn "import" program can just grab an editor vtable
right out of libsvn_fs and then invoke this parser on the
<delta-pkg>'s. That's half your problem solved; the real work will
be finishing a cvs2xml perl script.
Received on Sat Oct 21 14:36:09 2006

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