Unreal Engine 4 provides direct integrations with source control tools like Subversion in the Unreal Editor to make it easy for you to save the history of your project and collaborate with others. This article will describe how to connect your UE4 project with Assembla Subversion (SVN).
Add a SVN repo in Assembla
(If you already have an SVN repo in your Assembla space, you can skip this step.)
To add a SVN repo to your Assembla space, click Admin from your space menu dropdown, then Tools, and scroll down to the Repositories section. Click the "Add" button next to the SVN section, and a SVN repository will automatically be set up in your Assembla space with "trunk", "branches", and "tags" directories.
Install SVN on your local machine
(If you already have installed SVN on your machine, you can skip this step.)
To integrate Assembla SVN with your UE4 editor, you will first need to Checkout your SVN repo to your local machine with a SVN client. You can do this with SVN command line tools, although for sake of ease, we recommend using a client like TortoiseSVN for Windows.
Navigate to the SVN repo you just added to your Assembla space, and locate your repo's URL by clicking the green button "Checkout". Copy/paste this address somewhere you can easily retrieve it, because you will need this checkout URL later.
Check Out to a Local Working Copy
After you have installed TortoiseSVN, select the parent directory in Windows Explorer where you would like to check out your Assembla SVN repo to your local machine.
Right-click within Windows Explorer and select SVN Checkout:
In the Checkout dialog box, copy/paste the URL of your Assembla SVN repository from the previous step, and select the directory on your local machine you would like to check out your Assembla SVN repo to:
Select OK, and navigate to the "trunk" folder in the directory you just created.
Adding UE4 files to SVN
If you don't have a UE4 project already, create a new UE4 project in the directory you just created. Otherwise, move your UE4 project files into the "trunk" directory that just synced from your Assembla repo.
1. To add the UE4 project files to your repository, select the items in Windows Explorer and then Right-click to add and select the TortoiseSVN->Add option.
You will add the following directories and files from your UE4 project folder to your SVN depot:
*The Binaries folder is optional, depending on how your team wants to work together. It is not required if every team member is going to compile their editor/game themselves, but should be included in the initial add if any team members will just be grabbing a version from the depot to create content.
2. When you do this, SVN will mark the files you selected for addition to the repository. Next, Right-click in the directory containing your project and select TortoiseSVN->SVN Commit.
3. This will scan the directory for any changes/adds that you have made and display them in the Commit dialog. Make sure only the directories from step 1 are checked and added to your commit.
4. Now enter a commit message and click OK to upload your additions to the server.
If you want to start work on a project that someone else has already started, you will need to get the latest revision from SVN using TortoiseSVN. To do this, you should perform the SVN Checkout stage above and make sure you have Fully Recursive set for your checkout depth. This should download the all the existing files to your local machine.
Connecting SVN to UE4
You can connect to your SVN server from the Unreal Editor by clicking on the Source Control icon in the Toolbar.
Once open, choose Subversion as the provider from the Source Control Login dialog and enter your Assembla login credentials. If they are entered correctly once, SVN will remember them.
Accept settings and Voila! You can now use most of the source control commands you will need to check out, lock, add and commit your UE4 project files to your Assembla SVN repository right from the Unreal Editor, so that you have full version history of your project and can easily collaborate with teammates around the globe!