Firstly I hope this is the right place to post this, I looked in the source and GitHub forum section but it looked more aligned to the source code of the engine whereas I’m interested in a more personal project basis.
Recently at the office I’ve had a few colleagues increasing their interest in Unreal and wanting to help collaborate on our R+D projects. For this we need some kind of version control to allow a maximum of 3 people to work on the same project.
I need some advice on what would suit our needs.
We do have a local network server, which I imagine would make sense to use, but one of my main priorities is not putting too much stress on the network as we have many other people using the network for their still imagery.
Yesterday I managed to get Github working - however I attempted to create a repository of one of my existing projects (30gb) and hit the memory cap pretty quickly! Even using Git lfs track on .umap, .uasset and .fbx. Whilst the paid option is possible for us, I imagine we’d hit the initial 50gb cap pretty fast.
Hopefully someone seeing this will have a good suggestion - this is pretty new to me!
- additional question - If a local network SVN is the best option for us is it better to have the project stored on the server rather than locally?
Deploy Gitlab locally and use git + lfs.
Or rent a dedicated server and deploy it there (costs ~ $20/month).
Git is very easy to install and provision. And, once you’ve learned its general revision control model and commands, it works pretty well, as long as you don’t try to revision control large binary files.
The secret with git is that it will work just fine over a regular ssh connection. Thus, even if you’re on Windows, you can install a repo on any remote machine that you have ssh access to. On windows, you will typically use Putty, and export GIT_SSH=plink.exe
Install windows git and putty and make sure you have keys loaded in pageant and so on.
In your project, add a .gitignore file:
C:\UE4\Projects\MyProject> copy con .gitignore
- initialize a git repo:
C:\UE4\Projects\MyProject> git init .
C:\UE4\Projects\MyProject> git add .
C:\UE4\Projects\MyProject> git commit -m "first"
- set up a remote repo on any machine you have SSH access to:
C:\UE4\Projects\MyProject> plink me@machine git init --bare my-project-name.git
(if you’re on Mac, or Linux, or WSL, use “ssh” instead of “plink”)
- add this remote repo to your local project:
C:\UE4\Projects\MyProject> git remote add origin [EMAIL="me@machine:my-project-name.git"]me@machine:my-project-name.git
C:\UE4\Projects\MyProject> git push -u origin master
That’s it! You have a copy of your project on the remote side, and you can now “git pull -r” and “git push” to/from it.
Other people that also have access to that remote machine/shell/repository can similarly push and pull.
No additional magic needed!
Hey guys, many thanks for the responses. Didn’t expect so much depth but very glad you have been thorough! I’ll do my best to implement the local solution tommorow!
Regarding the Git + Putty method would you commit the entire project if one item changed in the content folder or would you just commit the individual folder within the engine that has changed?
Many thanks again!
I used SVN with a centralized repository for a while. Horrible. The local repository got huge, even with the SmartSVN user interface it was confusing and every other day there were some conflicts that would prevent me from checking in and out and I had to going through confusing options to get it all going.
I am now using Perforce and it is a blessing! It’s free for up to 5 users and there are absolutely NO problems. I love it and if I worked in a larger company I would lobby hard for a purchase. Forget all this open source stuff. Perforce is superbly integrated with UE, there’s a plugin for the Visual Studio IDE and a free stand alone graphical interface. I believe Epic are also using Perforce.
I am using Git with Gitea hosted on an extra machine, Gitea also has Unreal preset for your .gitignore file, so that you don’t try storing enormous generated files needlessly.
For the moment I have not had any issues with Gitea. I have been told that Gitlab is more feature complete, but Gitea uses far less resources, performs better, and so far it does everything that I need it to.
Perforce is the standard source control for most game development studios ( Epic licensees use Perforce )
(Better for binary files - uses locking for binary files but not for source code)
we use vultr and perforce, costs are REALLY reasonable, for $7.99AUD ~ $5.50USD per month, we have a 128GB HDD / 1Vcore / 512MB ram VPS on a 1Gbit up 500Mbit down conection with 1TB bandwith. with perforce free, our 5 users can comfortably use the VPS without any slowdowns, either from cpu usage or bandwith.
while I could have this all running on my local server and connection, its real nice to a: have it ofloaded to a second connection and b: have a offsite backup in case of catastrophic failure at our location (having your only backups in the same building is a REALLY BAD IDEA) we had a power surge 2 years ago that took out all our backups on the local pc’s. recovering HDD’s and rebuilding the entire project from different HDDs was a royal pain in the butt.