SVN source control error within UE4

Hello.

I have set up a local SVN repository at D:/SVNTestRepository. It works fine in the explorer, using Tortoise, but connecting to the repository within UE4 fails with the following errors. I have tried several versions of SVN and UE4. But nothing worked so far.

This are the errors i’am getting:

SourceControl: Error: svn: E170013:  Unable to connect to a repository at URL 'file:///D:/SVNTestRepository' 
SourceControl: Error: svn: E180001: Unable to open repository 'file:///D:/SVNTestRepository' 
Source Control: Error: svn: E160043: Expected FS format between '1' and  '7'; found format '8'  
SourceControl: Error: Failed to connect to source control. Check your settings and connection then try again.

Any help would be greatly appreciated!

The problem here is your SVN repo was made with an FS format too high a version for UE4. Different versions of SVN map to different versions of its internal file system (“FS format”).

These mappings are described here.

Unreal expects an FS Format between 1 and 7, but your version of SVN has version 8, which means you are using SVN version 1.10 or higher. You need 1.9 or lower to have an FS Format of 7 or lower.

So what you will have to do is make a new repo with a version of SVN no higher than 1.9. You can do this by either creating the repo with a version compatibility option or by uninstalling SVN and installing an older version (the former is much easier).
If you are using a GUI client like Tortoise you may not have any option to set the compatibility version when you create a repo, but doing it with the command line is pretty easy:

In Explorer navigate to the folder where you want to put your repo. You don’t need an empty folder to “turn into” the repo like you can do with Tortoise.

Shift + Right click in the folder and you can see an option like “Open command line here” or “Open Powershell here”, do that. Then type the following:

svnadmin create --compatible-version 1.9 --fs-type fsfs MyNewRepository

That will make your repo. Then you can remake your checkout as normal. In the UE4 Editor near the top left there’s options for connecting to version control, and in that dialogue you just put in your repo’s URL (you can see it in the repo browser at the top).

3 Likes

The reason I went with TortoiseSVN, was because I wanted something simple that could be hosted on a local file system.
This response is very helpful, however to an SVN noob like myself the issue I had was that it does not also create the internal folders that TortoiseSVN does automatically (the trunk/tags/branches), and this came with further issues whereby I received error messages about the repository not being a ‘working copy’ etc. Somehow, although I am not sure exactly how (I created a trunk folder with another command-line and did some other messing around) I finally got it to work and everything is now ok between VisualStudio and Unreal Editor.

If anyone who understands these things wants to write a quick how-to for the process of creating a new (unreal version compatible) repository and correctly adding a project to it, with specifics about which unreal project folders you might want to exclude from source control, and any other points of interest, I for one would be most grateful for the information.

I have used many source control products over the years, and honestly I don’t really care to learn the internal workings and commandline of yet another one; I just want the obvious benefits such systems provide.
My time at the moment is better spent trying to learn the ins and outs of coding Unreal :slight_smile:

Once you have run the command, you can use the TortoiseSVN Repo Browser to create the trunk, tags and branches folders directly. It will unfortunately treat each new folder as a commit but it will save you checking it out to create 3 folders and commit them as one.

Apart from that there is a fairly comprehensive YouTube how to from 2014 that is still accurate.

Just what I needed. Thank you for taking the time to post that video link.

Version control is one of those things in life, like dentistry check-ups, house insurance, and pretty much anything else that could be referred to as ‘taking precautions’;
Its often annoying to do it, but the results when you don’t are generally not good.