Search Unity

Version Control Server Requirements

Discussion in 'Unity Build Automation' started by S-0-L-0, Sep 12, 2014.

  1. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    I am in the process of setting up a version control server, what are the recommended requirements for the server? CPU, Memory, Storage, etc?

    So far digitalocean seems like a legit hosting solution, though I am not convinced any of their server builds are going to hold up for a colloborative project with Unity:
    https://www.digitalocean.com/pricing/

    Any suggestions for hosting a perforce server in the cloud?
     
  2. pahe

    pahe

    Joined:
    May 10, 2011
    Posts:
    543
    I hosted a SVN server on my old computer (a crappy machine) for a small team (6 ppl) and it worked fine.

    I think it depends a bit on which data traffic you expect. If you expect some large binary files (grafics) the HDD (better SSD) should be fast. Memory was not that problem for me, neither the CPU.

    But why not go with something like Bitbucket or Github nowadays? I mean, they are doing the work for you. Don't know if there is something for perforce though.
     
  3. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    Storage required depends on your projects, but 30GB should last a while. If you're running something like GitLab 1GB RAM should be enough for a small team. Speed of the CPU is largely irrelevant for small teams too, as long as it's not an ancient Celeron.
     
  4. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    So far I've being using Github but their 1GB disk quota isn't going be enough to support the project as it grows:
    https://help.github.com/articles/what-is-my-disk-quota

    Also, Perforce apparently has better binary support.
     
  5. pahe

    pahe

    Joined:
    May 10, 2011
    Posts:
    543
    Ok, so you have very large binary files in your repository then? Though I would suggest to find an other solution for grafics, 3d models,... for backups, I understand that projects may exceed at some point the 1GB anyway.
    That way you won't get the benefits of SSDs, but you should have a look at the memory and the bandwidth of your server then. You won't want to wait several hours just to get your repository loaded from the server :)
     
  6. orb

    orb

    Joined:
    Nov 24, 2010
    Posts:
    3,037
    Yeah, it's recommended to split scripts and assets (using ignore files) between different version control solutions when it's massive. I have some dinky 2D projects where everything can live in Git, because the assets won't pass 500MB, ever. Individual assets are often in the single-digit kilobyte range :)

    Scripts, Unity-specific data from the Assets folder (scenes, materials and so on) are fine for Git. The evolution of graphics may just need a different solution where textures are labelled with any changes anyway, so a central fileshare could be better. Especially if the artist(s) have very distinct areas to work on. It's also a good idea to not make PSDs part of the Unity project (they contain many layers, each at least the size of the final PNG), only final(-ish) data.
     
  7. BigToe

    BigToe

    Joined:
    Nov 1, 2010
    Posts:
    208
    I set up a Perforce server using a Digital Ocean droplet and it seems to be working fine with Unity Cloud Build. Let me know if you have any specific question regarding the setup.

     
  8. S-0-L-0

    S-0-L-0

    Joined:
    Nov 9, 2012
    Posts:
    163
    I just setup an account with digital ocean, are you using Ubuntu for your perforce repo? How exactly did you go about setting it up?
     
  9. BigToe

    BigToe

    Joined:
    Nov 1, 2010
    Posts:
    208
    I always black out most of my experiences setting up anything server related as I find it to be miserable work that I try to forget. But I will do my best to patch together what I can remember.

    My droplet is Ubuntu 12.04 x32.
    You will need to do the basic user account which you have probably done, but if not there are instructions here.

    The main process you need to do via your digital ocean droplet is get the P4D Server up and running, then you can administer it from your desktop client. You can download the server from here: http://www.perforce.com/downloads/Perforce/20-User. I ended up with Linux 2.6 for 32-bit Intel because I thought that would work on the droplet.

    I think I ended up using FTP to copy that file to my droplet to install it. But you should be able to use the APT-Get command which allows you to download and install.

    I referenced this blog (Although now some images are missing)
    http://affy.blogspot.com/2007/09/setting-up-ubuntu-perforce-server.html

    As well as this video:

    He is setting up his server on Amazon, but there are a lot of steps that apply towards Digital Ocean.

    And a little bit of this from Perforce.
    http://www.perforce.com/perforce/doc.current/manuals/p4guide/chapter.install.html

    It is a little bit daunting but once it finally gets set up it works pretty well. The Perforce Version Control in Unity makes it difficult to use as you need to check everything out to make any changes and as a solo developer I didn't really need this.

    I did really like using P4Connect which I think is really well done as it checks out all the files as you open them, but it slowed down Unity just enough I stopped using it. http://u3d.as/content/artificial-heart/p4connect-perforce-integration-for-unity/4KB

    I ended up working offline and reconciling local changes using the P4 client. To do this you need to set up your workspace to keep all the files writeable and then it should work. I think there can be a problem with this method, regarding shaders or prefabs (I feel like I read that) but I haven't ran into the issue yet.

    Hope any of this helps.

     
  10. BigToe

    BigToe

    Joined:
    Nov 1, 2010
    Posts:
    208
    Also, if you want to avoid the setup I know that https://www.assembla.com hosts Perforce servers but it is about $24/month. I have not tried this, but they claim you can have one running in a few minutes.
     
  11. skalev

    skalev

    Joined:
    Feb 16, 2012
    Posts:
    264
    Been using assembla for our project for over 2 years now, a little bit of a setup process (i think it got simplified now) but it works well.

    Again, the storage cap is what will usually cost you money.