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

Re: reposurgeon now writes Subversion repositories

From: Eric S. Raymond <esr_at_thyrsus.com>
Date: Fri, 30 Nov 2012 16:53:45 -0500

Ben Reser <ben_at_reser.org>:
> This is really a philosophical difference between a centralized
> version control system and DVCS.

No, no, no. If you think that's true, I have failed to communicate.

I'm not handwaving about philosophy. I'm pointing at a specific
problem that comes up when you start thinking of an entire software
project's state as a data object that you should be able to move
around and re-instantiate on a different forge server. By "entire
state" I mean repositories, bugtracker contents, mailing list and
forum messages, and member capabilities (who is an admin, who is a
committer, etc.)

Motivation: we *want* project state to be mobile because relying on
any given forger server to be stable forever is too risky. On decadal
timescales this is a real, serious problem. Berlios's near-collapse
sensitized me about this.

The problem is that in order for that state to be mobile, none of it
can have pointers to data that can't move off the host server. In
particular, *all user identities have to be Internet-scoped* rather
than local Unix IDs. Otherwise, when I try to move project foo to
server bar, there will be friction in the form of potential name
collisions that are messy to resolve.

It turns out when you dive onto this problem (and I have) that Unix
user IDs are *the* blocker. There's almost nothing else in a forge's
ontology that can't be resolved in a fairly trivial way. The only
exception is that project names themselves may collide.

The next generation of forges is going to have to fix this problem.
And it actually isn't terribly difficult to fix - it's creative
engineering, but not blue-sky R&D. I could certainly implement it,
and I will if I can budget the time. I've done a lot of the design
work already.

When it happens, Subversion as it is now isn't going to be able to
play. You guys have a three-way design adhesion between authentication
identity, attribution identity, and local identity on the host server.
For Subversion histories to be mobile, *that adhesion must be broken*.

If Subversion wants to continue to have a presence on next-generation
forges, it's going to have to fix this. DVCSes show us how to solve
the problem, but it isn't actually about centralized
vs. decentralized. It's about being welded to a specific host by its
/etc/passwd vs. being able to migrate.

		Eric S. Raymond
Received on 2012-11-30 22:54:21 CET

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