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

Re: dump format refinement

From: Branko Čibej <brane_at_xbc.nu>
Date: 2002-04-30 13:29:39 CEST

This proposal looks fine, except for one detail: there's no way to
represent revision history as a DAG. Sure, we can't actually create
forks and joins in the FS now, but our format should support them.

I suggest adding another header, Prev-node-path, that tells us what the
path to this node was in the previous revision. If the path didn't
change, it can be omitted. If the node forked, you get several new nodes
with the same Prev-node-path. If it joined, the new node gets more than
one Prev-node-path header (so it's not unique).

Note that Prev-node-path is separate from copy history.

Hope this was clear enough ...

Ben Collins-Sussman wrote:

>A lot of private discussion seems to indicate that everyone really
>prefers the second dump format much more than the first. Here's a
>refinement of that format, done by example.
>
>
>Refinement of proposal #2: (after discussion with gstein)
>=========================
>
>Start with all RFC822-style headers at the top. The final header will
>be a 'Content-length:', followed by the content. Thus our record
>boundaries can be inferred.
>
>The content section will have two implicit parts: a property hash, and
>the fulltext. The division between these two sections will be implied
>by the "END" tag at the end of the prophash. In the case of a
>directory node or a revision, only the prophash will be present in the
>content.
>
>Here's an example of revision 1422, whereby I added a new directory
>"baz", added a new file "bop" inside it, and modified the file "foo.c":
>
>---------------------------
>
>Revision-number: 1422
>Content-length: 74
>
>K 6
>author
>V 7
>sussman
>K 3
>log
>V 17
>Added two files, changed a third.
>END
>
>Node-path: /bar/baz
>Node-revision: 1422
>Node-kind: dir
>Node-action: added
>Content-checksum: oj3eu729
>Content-length: 29
>
>K 10
>svn:ignore
>V 4
>TAGS
>END
>
>Node-path: /bar/baz/bop
>Node-revision: 1422
>Node-kind: file
>Node-action: added
>Content-checksum: bzz35te7
>Content-length: 124
>
>K 12
>svn:keywords
>V 15
>LastChangedDate
>K 14
>svn:executable
>V 2
>on
>END
>Here is the text of the newly added 'bop' file.
>Whee.
>
>Node-path: /bar/foo.c
>Node-revision: 1422
>Node-kind: file
>Node-action: added
>Content-checksum: Ae73te7et
>Content-length: 105
>
>END
>Here is the fulltext of my change to an existing /bar/foo.c.
>Notice that this file has no properties.
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
>For additional commands, e-mail: dev-help@subversion.tigris.org
>

-- 
Brane Čibej   <brane_at_xbc.nu>   http://www.xbc.nu/brane/
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Apr 30 13:30:55 2002

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