I'm trying to set up a linux server for a small team of programmers / artists to use as a svn repository. This repository will be restricted to lan usage but will be backed up online using dropbox. Basically, my idea is to have a backup on the dropbox in case of hard-drive failures or in cases where we need to quickly replace the hardware (simply download the dropbox, initialize the new server.) I'm new to this whole thing, but I feel like this is necessary for me to set up now before making any more progress on our project.

I think I get what needs to be done for the most part but an issue has come up with regards to where in the file system I should store the repository.

I'm pretty new to linux stilll which makes this a hard decision for me to make. Where in the linux directory structure I should store a svn repository? Ideally, this repository should be inside a dropbox synced directory in order to keep a backup of the entire project online.

P.S. Before people suggest alternatives, I'm pretty set on using SVN. At least, for the time being. Windows support is a must for us and things like Git Annex are still a bit shaky on that platform.

  • 1
    I have used /srv/svn/username/repos when I used svn, which has been a long time now. Mercurial works fine on Windows. Use that instead. To be quite frank, Subversion is a piece of crap and best buried in the dustbin of history. Unless you are a large corporation and want to do the corporate control freak thing. Feb 27 '15 at 6:49
  • The problem I have with mercurial is that it's distributed which will be a pain when the repository reaches a large size. We were/are using git for code right now which works amazingly, but we're putting a lot of art assets in (game project) and would like to have some basic means of art version control on a centralized server. Why is subversion bad exactly? It seems like git sucks for binary files, and git-annex doesn't fully support windows as well as svn. Ideally, I'd like to use one VCS but it's becoming less likely possible with the demands of the project.
    – TheYokai
    Feb 27 '15 at 7:05
  • 1
    Well, Linus Torvalds did a video on git vs svn/cvs, so check that out. I think it is youtube.com/watch?v=idLyobOhtO4. At one point he calls Subversion stupid and ugly. I'm not generally a big fan of LT's offensive style, but in this case I agree with him. Also see hginit.com, which has some discussion of svn vs hg if I remember rightly. What kind of repos sizes were you talking about? It's true that mercurial does not support partial or shallow clones, whereas with svn you can at least do a partial checkout. Feb 27 '15 at 8:11
  • 1
    Granted, there are cases where svn may be a better choice than distributed VCS, and I've never had to work with large binary files in a version control context, so I'm not familar with that use case. On the other hand, I don't see why svn would be better for large binary files than hg/git. I don't think hg support for large files is stellar (the extension is called largefiles I think), but I would check it out in any case. You can also talk to people on #mercurial on Freenode. Feb 27 '15 at 8:13
  • 2
    The relevant hginit.com page is hginit.com/00.html, where Joel Spolsky does a good job explaining the deficiencies of the centralized model. Feb 27 '15 at 8:30

There are typically two sensible locations to put the "data" for services.

The distribution default location:

Usually, the distribution chose a default location for a service data (redhat/centos use /var/svn, debian tend to use /var/lib/svn). It is much easier and faster to use that location : configuration is already or almost ready, integration with various components is easier (like SELinux file contexts). It does have some limitation. The distribution location is often limited to "single instance" ; your data are stored in various locations, etc.

The /srv hierarchy:

The Linux Filesystem Hierarchy Standard (FHS) states that /srv contains a site-specific data which is served by this system (link). Some administrators like to gather data here, and structure that hierarchy in a way that sensible for them (by environments, by customer...)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.