[Xcb] SCMS for XCB?

Trevor Woerner xcb506 at vtnet.ca
Mon Aug 1 23:18:14 EST 2005


On Saturday 30 July 2005 14:46, Barton C Massey wrote:
> In message <200507301430.31666.xcb506 at vtnet.ca> you wrote:
> > On Saturday 30 July 2005 13:34, Barton C Massey wrote:
> > > Also, is a reasonable ASCII repository format a
> > > requirement?
> >
> > Subversion has had support for both ASCII (fsfs) and binary
> > (Berkley-db) repository formats for a while. Whoever sets up the
> > repository has always had a choice, although db has been the
> > default. With the latest release of subversion, 1.2.0, fsfs (i.e.
> > ASCII) is now the default.
>
> AFAIK, fsfs is still a binary format.  Am I confused?

fsfs stores each revision and each revision's properties as a separate 
file (0, 1, 2, ...). You can work with these separate files as you 
would any other file in the system. My understanding is that these 
files are stored in something called "delta-storage" which means you 
can open them with a text editor, basically get the gist of what's 
going on (you can [mostly] "read" them), but don't make any 
modifications because the meta-information will now be wrong. Btw, the 
meta information appears to be stored in ASCII.

The bdb (Berkley DB) backend stored the entire repository into one 
binary database file. Special tools were needed in order to examine any 
internals.

Is that considered ASCII format? I don't know if this would qualify for 
you. Just because you can read the file doesn't mean it should be 
modified (in fact it shouldn't be). There is a process for changing a 
log message after a commit (say, to fix spelling). But usually after a 
commit has occurred the database shouldn't be touched.

I guess we've ended up in this funny state: basic usage of CVS required 
us to be able to muck around in the repository internals because of all 
of CVS's shortcomings. Now we've come to expect to be able to muck 
around in the guts of a repository and made it a requirement. But 
hopefully if the SCM works well this won't be required. :-)

Here's a URL to a document from the creators of subversion plainly and 
honestly comparing the fsfs backend to the bdb backend:
http://svn.collab.net/repos/svn/trunk/notes/fsfs

Maybe browsing through subversion's FAQ might be of interest:
http://subversion.tigris.org/faq.html

As an example, here at home I have but one project under subversion 
revision control. So far I only have 5 commits. Running "file" on each 
of the database files gives:

["BHy1өDJًcE0ALiUSHQNO;&
M<؞%QjD`SAJ!}T
JʰДS**B!10#h24T4
q9hθ8w?_@$)!`G9{v'iEkҁ=NfXan4nj0C`hQ$K#ʃz}@~b3Z?MP|#|<h)B/4)٤N{L/293A1DnQ)y:8ߗi,J&o#M,hle!ajƱ
R8hg۩2zlp+"Lrwf		#|:18؝>8c+MB:W s	kXixBdIn"ApDy_#XfQE4Iv٣YG|>ufNe|}jF𸀄֒qҁA/mx+_8ml1<EY`X`#DT
<:6Hjq~~-@u
 s\M6[EbJ0([j
4"ΎP9l)?yeҭ4
 9"9P%I&b"'XAB'$&țD?/mn9:L0A(ӎ%=
A]
I>#*eՈ