SVN on WHM/cPanel VPS

Hi there,

I’ve been searching the 'net (and this forum) but I can’t come up with the required answers… Please bear with me a while and point me in the right direction of this is not the most appropriate place for this query. Thanks in advance.

I would like to install Subversion on a VPS with WHM/cPanel, so that both I and a couple of other people can access/update/maintain a number of files. Until a while back, I was not familiar with Subversion, so I’ve been doing a bit of reading. I’ve read multiple posts/blogs/comments scattered around the 'net (I’ve even started reading the svn book, but it doesn’t really address the WHM/cPanel scenario) and the thing seems to be a piece of cake – with a few caveats! As usual… :wink: The main issue seems to be related to the automatic updates by WHM/cPanel that, apparently, can break svn after it has been installed; at the same time, I want to make sure that anything I do during installation is not going to break our webserver – several people would be upset and we don’t want that, do we?.. :slight_smile: Since some of the information that I’ve bee reading is already a bit old, and since some of “tips” are somewhat contradictory, here I am. So… Does anyone here have experience in setting up a subversion repository on a WHM/cPanel VPS? I’m mainly interested in advice from anyone who has actually done it successfully, rather than having read that it can be done. If a comprehensive set of instructions is not available, I’m willing to write something up (based on all the instructions/advice received), and make it publicly available for anyone who wishes to do the same thing in the future.

I look forward to your feedback and I thank you in anticipation for your help.

Best,

Paulo

Hi Paulo,

I’m interested why you are focusing only on SVN, while SVN is still be used by a large percentage of existing people, companies, and organizations, the new distributed versioning systems such as GIT are really picking up steam. Essentially GIT comes packed withing most modern Linux Distributions and if not it is easy to install. It is managed via the command line and is extremely easy to set up a repository on a machine where you have rights to create folders and apply read/write access.

Might you be interested in GIT or does your team need SVN as that is what they are familiar or want to work with?

Regards,
Steve

Hi Steve,

Many thanks for the reply. I’m not particularly focused on SVN. The machine that I was thinking of using is a WHM/cPanel VPS (running CentOS, as you probably know; it’s a fully managed VPS, by the way, and I have full access to it); we don’t have another kind of machine with the same connectivity. After doing a bit of reading, I was under the impression that SVN would be my best solution, but I’m open to alternatives. I know that I want to use our own server (not a “public service”). In addition to serving as a standard repository with version tracking, further down the line we need to be able to import some of the files into php scripts on other machines – but here I’m deviating from the issue…

This said, I’d be happy to read more of your comments suggestions.

Again, many thanks for the feedback.

Paulo

Hi Paulo,

IMHO this is not deviating, this is an important aspect of versioning and redundancy to better protect your data. GIT allows you to publish repositories, it also allows you to Push and Pull repositories to/from different computers on your LAN or your secured WAN. You may also want to check out [noparse]github.com[/noparse] as it will give you a good idea how they use GIT to offer an entire service to other developers.

Good luck and feel free to ask more questions :slight_smile:

Steve

Subversion is relatively easy to install on a cPanel server, it just requires building the modules needed from source due to the way cpanel is created (it doesn’t use the centos pre-built packages). This is assuming you want to run subversion via mod_dav_svn through Apache. If you want to run svnserve directly I believe you should be able to install the subvesion package and go :slight_smile:

I’ve got the guide bookmarked at work rather than here to installing the apache modules, but I can get it if you need it.

I’d generally avoid having the source code live on the same server as the app. Lots of bad mojo there.

DCVS definitely has some nice recovery options. But don’t forget that SVN has svn mirror, so you can pretty effectively make a hotsite for your repo without too much trouble.

Yep, not recommended but you can’t set up a cpanel clone on a private server to build packages - cpanel won’t let you install on a non public server (and they require a licence for it) so its not always possible :frowning:

Ok… :slight_smile: First of all, thanks for the feedback. I’ve continued my “education”, I’ve been reading a bit more, and I am indeed back with more questions. Let me start from a different point of view this time.

  1. I need to set up some form of repository with version tracking, easily accessible to a very small team (geographically dispersed).
    [The idea to set it up in one of our VPS is simply due to connectivity, but I’m open to suggestions, especially since it looks as if it is not really advisable to have the repository in the same machine that hosts real, live sites.]

  2. Further down the line, we would like to pull some of the data in this repository into php scripts, located in different servers (hosting real, live sites). Quite honestly, I hadn’t given this part a lot of thought, but I think I should before committing to any solution. Your comments and thoughts on the feasibility of this second aspect is also most welcome.

Many thanks in anticipation for sharing your experience.

Best regards,

Paulo

Hi Paulo,

From wherever you decide to host this repository I would still use GIT.

  1. Create GIT repository on your geographic accessible host
  2. Team members can PUSH or PULL updates to/from the central host; if for any reason access to the host is lost then they still work with a local GIT repository and can synchronize when access becomes available.

The other option is to not invest in a Global host and instead use [noparse]github.com[/noparse]:

  1. register an account and choose the appropriate cost/level of service that fits your team/project
  2. don’t allow public access to your GIT repository and grant access to users that you authorize
  3. you push your local GIT repository to github and then all team members synchronize by pulling a copy of it, and on regular spans of development, team members would PUSH or MERGE their work with the central repository. You would have to read more about GIT to determine how you would want the synchronization to work.

Regards,
Steve