threads / discuss / 25633

can subversion 1.6 be made "just as distributed as git"?

Subject: can subversion 1.6 be made "just as distributed as git"?

## tl;dr

7 messages between Nov 4, 2010 and Nov 4, 2010.

replies: 6people: 5as markdown or json

MDellerus· Nov 4, 2010, 00:45 UTC · lore
I have a co-worker who has suggested that, using "svnadmin hotcopy", subversion 
can be
    just as "distributed" a system as Git

While I see how this can be done, it hardly seems to me to qualify as "just as", making this "plausible" at best.

Can anyone give me a quick confirmation of this?  Confirmed? Plausible? Busted?
If this is confirmed or plausible, could someone give me a quick run-down?

(I would appreciate a response, no matter how long it takes, but I do have a meeting with this co-worker in another 16 hours... (10am Pacific).)

Thanks in advance!

(FYI - I have cross-posted this, just once, to an SVN forum, in the event they might have a different opinion.)

Kevin Ballard· Nov 4, 2010, 00:58 UTC · re: MDellerus · lore

Re: can subversion 1.6 be made "just as distributed as git"?

Using "svnadmin hotcopy" you could certainly get your own local repo, but I fail to see how you could easily join your history up with someone else's history using this mechanism. If you really want to use SVN in a distributed manner, I would recommend you simply use SVK.

-Kevin Ballard
On Nov 3, 2010, at 5:45 PM, MDellerus wrote:
Show 23 quoted lines
> I have a co-worker who has suggested that, using "svnadmin hotcopy", subversion 
> can be
>    just as "distributed" a system as Git
> 
> While I see how this can be done, it hardly seems to me to qualify as "just as", 
> making this "plausible" at best.
> 
> Can anyone give me a quick confirmation of this?  Confirmed? Plausible? Busted?
> 
> If this is confirmed or plausible, could someone give me a quick run-down?
> 
> (I would appreciate a response, no matter how long it takes, but I do have a 
> meeting with this co-worker in another 16 hours... (10am Pacific).)
> 
> Thanks in advance!
> 
> (FYI - I have cross-posted this, just once, to an SVN forum, in the event they 
> might have a different opinion.)
> 
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Matthieu Moy· Nov 4, 2010, 08:44 UTC · re: Kevin Ballard · lore

Re: can subversion 1.6 be made "just as distributed as git"?

Kevin Ballard <kevin@sb.org> writes:
> Using "svnadmin hotcopy" you could certainly get your own local repo, but I fail to
> see how you could easily join your history up with someone else's history using this
> mechanism. If you really want to use SVN in a distributed manner, I would recommend
> you simply use SVK.

Right. Branching is the easy part. Merging is the hard and important one.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Ævar Arnfjörð Bjarmason· Nov 4, 2010, 09:26 UTC · re: Kevin Ballard · lore

Re: can subversion 1.6 be made "just as distributed as git"?

On Thu, Nov 4, 2010 at 01:58, Kevin Ballard <kevin@sb.org> wrote:
> Using "svnadmin hotcopy" you could certainly get your own local repo, but I fail to
> see how you could easily join your history up with someone else's history using this
> mechanism. If you really want to use SVN in a distributed manner, I would recommend
> you simply use SVK.

SVK gives you *disconnected* SVN, not distributed. You still can't (easily) share your uncommited revisions with others. It just solves the problem of you being on a plane for a few hours. It doesn't turn SVN into Git.

Kevin Ballard· Nov 4, 2010, 09:27 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: can subversion 1.6 be made "just as distributed as git"?

On Nov 4, 2010, at 2:26 AM, Ævar Arnfjörð Bjarmason wrote:
Show 11 quoted lines
> On Thu, Nov 4, 2010 at 01:58, Kevin Ballard <kevin@sb.org> wrote:
>> Using "svnadmin hotcopy" you could certainly get your own local repo, but I fail to
>> see how you could easily join your history up with someone else's history using this
>> mechanism. If you really want to use SVN in a distributed manner, I would recommend
>> you simply use SVK.
> 
> SVK gives you *disconnected* SVN, not distributed. You still can't
> (easily) share your
> uncommited revisions with others. It just solves the problem of you
> being on a plane
> for a few hours. It doesn't turn SVN into Git.

SVK bills itself as providing distributed patches, and calls itself "A Distributed Version Control System". I do agree that it's mainly useful for using SVN in a disconnected mode, but I trust that there's at least some facility for sharing local branches with other SVK users, though I've certainly never done that myself.

-Kevin Ballard
Jakub Narebski· Nov 4, 2010, 10:00 UTC · re: Kevin Ballard · lore

Re: can subversion 1.6 be made "just as distributed as git"?

Kevin Ballard <kevin@sb.org> writes:
Show 24 quoted lines
> On Nov 3, 2010, at 5:45 PM, MDellerus wrote:
> 
> > I have a co-worker who has suggested that, using "svnadmin hotcopy", subversion 
> > can be
> >    just as "distributed" a system as Git
> > 
> > While I see how this can be done, it hardly seems to me to qualify as "just as", 
> > making this "plausible" at best.
> > 
> > Can anyone give me a quick confirmation of this?  Confirmed? Plausible? Busted?
> > 
> > If this is confirmed or plausible, could someone give me a quick run-down?
> > 
> > (I would appreciate a response, no matter how long it takes, but I do have a 
> > meeting with this co-worker in another 16 hours... (10am Pacific).)
> > 
> > Thanks in advance!
> > 
> > (FYI - I have cross-posted this, just once, to an SVN forum, in the event they 
> > might have a different opinion.)
>
> Using "svnadmin hotcopy" you could certainly get your own local repo, but I fail to
> see how you could easily join your history up with someone else's history using this
> mechanism.
This is only replication, not distribution.

This is the same mistake that makes people say that branching in Subversion is easy... while what is important is not how easy and fast is to _create_ branch, but how easy is to merge it. The same applies with distributed version control: it is not about how easy is to replicate repository, but how easy is to merge in (pull) changes from replica.

By the way, how "svndamin hotcopy" / svnsync works with the fact that svn:log property is unversioned but might be changed, also for revisions in the past?

> If you really want to use SVN in a distributed manner, I would recommend
> you simply use SVK.

Wikipedia says that "On May 28, 2009, Chia-liang Kao announced that Best Practical will no longer be actively developing SVK" and marks SVK as no-longer maintained, but latest release of SVK on CPAN is from 23 Mar 2010.

Note that http://ldn.linuxfoundation.org/article/dvcs-round-one-system-rule-them-all-part-3 synthetic benchmark from Jan _2009_ finds that SVK has very bad scaling behavior, and would have bad performance for larger projects.

-- 
Jakub Narebski
Poland
ShadeHawk on #git
Ævar Arnfjörð Bjarmason· Nov 4, 2010, 09:35 UTC · re: MDellerus · lore

Re: can subversion 1.6 be made "just as distributed as git"?

On Thu, Nov 4, 2010 at 01:45, MDellerus <mdellerus@yahoo.com> wrote:
Show 9 quoted lines
> I have a co-worker who has suggested that, using "svnadmin hotcopy",
> subversion can be just as "distributed" a system as Git
>
> While I see how this can be done, it hardly seems to me to qualify as "just as",
> making this "plausible" at best.
>
> Can anyone give me a quick confirmation of this?  Confirmed? Plausible? Busted?
>
> If this is confirmed or plausible, could someone give me a quick run-down?

The problem here seems to be that your coworker took "distributed" literally.

When we talk about "distributed version control systems" we don't just mean that the raw copy of the complete revision history is distributed (although that's also included).

If that was the case packing up the ,v files on a CVS server or distributing a "svnadmin dump" would give you that FTP-archive-like distribution.

"Distributed" means that you can easily share the complete revision history with yourself/others and *put it back together again*. E.g. a workflow I had yesterday was:

 1. Clone a "master" repo
 2. Hack it on my laptop, thinking it worked
 3. Push my revisions to deployment server #1, made & commited some hotfixes
 4. Synced those to deployment server #2, made & commited some more fixes
 5. Synced those back to my laptop
 6. Synced them back upstream

If a workflow like that isn't any harder than commiting to one "master" repository you have a distributed system. You *could* do that with SVK using some massive hacks, but it would quickly fall down when you have multiple parties with diverging histories that you need to join.

← back to recent threads