[Israel.pm] Reflections on Version Control Systems (VCSes) vs. Databases

Shlomi Fish shlomif at shlomifish.org
Wed Sep 7 23:46:16 PDT 2011

Hi David,

On Wed, 7 Sep 2011 15:22:55 -0700
David Baird <davidlbaird at gmail.com> wrote:

> Hi Shlomi,
> First, don't confuse data structure with database.

I did not. I just said that the standard dictionary (key => value) can
be thought of as a database, and that there are databases doing exactly that
with some non-volatility and other goodies (e.g: BDB or Tokyo Cabinet).

> Git utilizes an append-only object database. reference:
> https://git.wiki.kernel.org/index.php/Git


> Perforce uses a database, reference:
> http://kb.perforce.com/article/720/database-internals
> Sawyer may find he has to use one of those systems in the future. 

He uses git a lot. :-)

> It
> would be a good idea to be familiar with how databases help keep track
> of version control metadata, and especially how to backup a database,
> if one wants to administrate such a system.

Well, in the case of git (and Mercurial) all you need to do is backup the clone
of the repository along with its .git or .hg directory. No need to worry about
the internals. Subversion gives you a specialised dump format (svnadmin dump /
svnadmin load).
> It seems that Mercurial does not utilize a database, keeping metadata
> in text files, but that's a moot point in a Perl forum.

I see many binary files in the perl-XML-LibXML Mercurial
repository's .hg/store/data directory. And furthermore, it probably implements
some kind of internal database store, either using its own logic, or using the
UNIX filesystem as a backend (which also can be thought of as a database.). 


	Shlomi Fish

> Long long long ago I administrated PVCS, with no database required.
> Although it was easy to recover lost data through the file system and
> file backup, it was not as reliable as every VCS I administrated
> afterwards which did utilize a database.
> Just a quick answer,
> David
> _______________________________________________
> Perl mailing list
> Perl at perl.org.il
> http://mail.perl.org.il/mailman/listinfo/perl

Shlomi Fish       http://www.shlomifish.org/
Chuck Norris/etc. Facts - http://www.shlomifish.org/humour/bits/facts/

C++ is complex, complexifying and complexified.
(With apologies to the Oxford English Dictionary).

Please reply to list if it's a mailing list post - http://shlom.in/reply .

More information about the Perl mailing list