Subversion

apps

#1

Are we permitted to install subversion (svn), and if so, has anyone done successfully on a shared server? DH allows cvs, but I’m not sure about svn.

I’m switching from cvs to svn, and it would be great to keep an svn repository here.


#2

You can install the subversion client. As far as the server… probably not, and we’re unlikely to provide “official” support for this on shared hosting for a while.

My understanding also is that at least some parts of it require Apache 2.


#3

Ok, thanks.

I don’t need the server anyway (should’ve been more clear about that in my original post).


#4

We likely won’t install the client on the hosting machines until we upgrade to Sarge, but installing from source should be pretty simple.


#5

I haven’t used subversion yet, but I was hoping to use it for a new project and to host it on my DH server. According to the FAQ, SVN doesn’t need Apache:

http://subversion.tigris.org/faq.html#apache-extension

[i]I heard that Subversion is an Apache extension? What does it use for servers?

No. Subversion is a set of libraries. It comes with a command-line client that uses them. There are two different Subversion server processes: either svnserve, which is small standalone program similar to cvs pserver, or Apache httpd-2.0 using a special mod_dav_svn module. svnserve speaks a custom protocol, while mod_dav_svn uses WebDAV as its network protocol. See chapter 6 http://svnbook.red-bean.com/html-chunk/ch06.html in the Subversion book to learn more.[/i]

Reading more about the stand-alone svnserve program, it looks like it would be pretty easy to set up. Here’s a bit from that link to chapter 6 of the svn book:

[i]…On the other hand, some administrators already have well-established SSH authentication frameworks in place. In these situations, all of the project’s users already have system accounts and the ability to “SSH into” the server machine.

It’s easy to use SSH in conjunction with svnserve. The client simply uses the svn+ssh:// URL schema to connect:

$ whoami
harry

$ svn list svn+ssh://host.example.com/repos/project
harry@host.example.com’s password: *****

foo
bar
baz

What’s happening here is that the Subversion client is invoking a local ssh process, connecting to host.example.com, authenticating as the user harry, then spawning a private svnserve process on the remote machine, running as the user harry. The svnserve command is being invoked in tunnel mode (-t) and all network protocol is being “tunneled” over the encrypted connection by ssh, the tunnel-agent. svnserve is aware that it’s running as the user harry, and if the client performs a commit, the authenticated username will be attributed as the author of the new revision.

When running over a tunnel, authorization is primarily controlled by operating system permissions to the repository’s database files; it’s very much the same as if Harry were accessing the repository directly via a file:/// URL.[/i]

In fact, maybe DH doesn’t need to do anything. Maybe I can just install svnserve in this run-only-when-needed-mode on my own account. (Or maybe I’m not allowed to install such software since it’s a shared machine?)


#6

Did you manage to get subversion working on DH? I haven’t found a static binary that will work here. I haven’t tried to compile it, since we don’t have all of the prerequisites. I only need the svn client. I have a server running on a dedicated server elsewhere.


#7

You could probably extract the files from the backports.org .deb… Otherwise you’d have to compile from source.

We’ll eventually install the svn client stuff - likely not until Sarge, though.


#8

I started down that path, but it was ugly. The executables are not statically linked, so I kept downloading more and more and setting LD_RUN_LIB in my bash profile. Not pretty.


#9

I too was just looking at running a subversion server at dreamhost.

http://svnbook.red-bean.com/en/1.0/ch06s03.html takes a little decyphering.

Two alternatives for the cases where you want to connect with an subversion client running on another machine.

  1. running a daemon process as a single dreamhost user that has exclusive access to the files.

Port 3690 appears to be the default - but how are these assigned on dreamhost? Surely we’d all need a private port number using this method?

  1. Using the tunnel method uses the remote shell to authenticate the user, and then gives them filespace access a la file: mode.

On re-reading, it appears this holds everything I’d need. Did it work for you?


MBA, MSc Comp Sci


#10

This is how I installed subversion.

./configure --with-swig=/home/dir/packages/SWIG-1.3.21/swig --with-perl=/home/dir/packages/perl5.8.4/bin/perl5.8.4 --prefix=/home/dir/packages/subversion

Regards, M.


MBA, MSc Comp Sci


#11

[/quote]

Any idea when this will be?

I want to use just the subversion client and if the upgrade will be soon I can wait for a short time.

Regards

Mark


#12

I’ve managed to compile Subversion (client + svnserve) at DH by skipping the Apache dependencies:

configure --prefix=~/subversion --without-apache
make
make install