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

distributed repositories

From: Tom Lord <lord_at_regexps.com>
Date: 2002-05-24 08:34:26 CEST

About distributed repositories, global version numbers, etc....

I like the idea of building a layer of scripts over subversion that
cause subversion to emulate `arch', mapping an arch repository to some
subset of the namespace in a subversion repository. It wouldn't be
all that difficult to make the two implementations interoperable, at
least for a subset of subversion revisions that used certain naming
conventions.

That cilent-side layer would provide subversion users with something
complementary to the very general design of subversion: very (somewhat
arbitrarilly) structured namespaces of revisions and branches with
revision control operations based on the regularity of that namespace
of whole-tree revisions.

Compared to arch itself, a subversion-based implementation of the arch
command set would be based on a completely different storage model
than the original arch, with a very different set of performance
capacities and characteristics, different admin costs, different
non-standard features, etc.

The nice thing about the namespace you gain by emulating arch is that
it is "host independent" -- the namespace spans repository boundaries
and there's a natural and reasonably efficient way for clients to
implement all the standard revision control operations based on that
(server independependent) namespace. In other words, you get
distributed repositories and branches across repository boundaries
"for free" (well, for the cost of implementing the arch emulator
client).

Another way to say it is that arch isn't just a bunch of shell
scripts: it's a global namespace for revisions and a set of
primarilly-client-side revision control operations defined in terms of
that namespace. That namespace and command set makes sense as a layer
on top of subversion; and as a layer over subvrsion, it's a subversion
client that provides distributed repositories.

I think a good plan would be to debate the design of an arch-like
global namespace, write a standard, implement it in both subversion
and arch, and deomonstrate SCM-independent distributed revision
control. (That quickly gets back to the question raised a while back
on this list about a standardized diff format that could handle file
renamnes -- I've got most of a pretty fast implementation of the
shell-script format Zack suggested.)

-t

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri May 24 08:29:19 2002

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