Unable to detect system-level svn binary

Can’t use svn in Editor normally, because it is very slow. First of all there is strange message about Unable to detect system-level svn binary, but svn is actually in PATH and where svn returningC:\Program Files\TortoiseSVN\bin\svn.exe

[0011.09][  0]LogSourceControl: Attempting "svn info --xml "../../../../../../00_Projects/proj_name/trunk/" --non-interactive --trust-server-cert --username username--password ********"
[0011.27][  0]LogSourceControl: Unable to detect system-level svn binary.
[0011.27][  0]LogSourceControl: Using path C:/Program Files/Epic Games/UE_5.7/Engine/Binaries/ThirdParty/svn/Win64/svn.exe for svn operations
[0011.31][  0]SourceControl: Successfully connected to repository https://ip:port/svn/proj_name

Then the main problem is that it works very very slow (in compare with TortoiseSVN) and spam a lot with files from Engine folder

[0629.71][903]SourceControl: svn: warning: W155007: 'C:\Program Files\Epic Games\UE_5.7\Engine\Content' is not a working copy
[0629.71][903]SourceControl: svn: warning: W155007: 'C:\Program Files\Epic Games\UE_5.7\Engine\Plugins\....

I’ve tried to set svn binary through configuration files

C:\Users\username\Documents\Unreal Engine\Engine\Config\UserSourceControlSettings.ini

and

C:\Users\username\AppData\Local\UnrealEngine\5.7\Saved\Config\WindowsEditor\SourceControlSettings.ini

[SubversionSourceControl.SubversionSourceControlSettings]
ExecutableLocation="C:/Program Files/TortoiseSVN/bin/svn.exe"

but Editor is still use C:/Program Files/Epic Games/UE_5.7/Engine/Binaries/ThirdParty/svn/Win64/svn.exe for svn operations

Is there any idea how to fix that?

found japanese topic with fix

https://github.com/EpicGames/UnrealEngine/blob/260bb2e1c5610b31c63a36206eedd289409c5f11/Engine/Plugins/Developer/SubversionSourceControl/Source/SubversionSourceControl/Private/SubversionSourceControlOperations.cpp#L59C64-L59C74

so fix is

bool FSubversionConnectWorker::Execute(FSubversionSourceControlCommand& InCommand)
{
    ...
    StatusParameters.Add(TEXT(“--depth=immediates”));
    ...
}

Is there options to not change engine code?

1 Like

TLDR

problem with svn speed solved after copy and fix svn plugin to project and setup configuration variable right in project conf. It will be sort of tradeoff solution/fix, but speed will increase dramaticaly.

As for cons:
I guess svn speed now will more be depended on project size itself.
And this trick need to do for every project

Actual for UE 5.7.4

Use system svn instead engine svn

open or create
C:\your_project_folder\Saved\Config\WindowsEditor\SourceControlSettings.ini
change var ExecutableLocation value to path to your svn

;METADATA=(Diff=true, UseCommands=true)
[SubversionSourceControl.SubversionSourceControlSettings]
Repository="https://my_rep_ip:my_port/svn/project_name"
UserName=my_user_name
LabelsRoot=tags/
ExecutableLocation="C:/Program Files/TortoiseSVN/bin/svn.exe"

[SourceControl.SourceControlSettings]
Provider=Subversion

Fix plugin

Copy plugin from

C:\Program Files\Epic Games\UE_5.7\Engine\Plugins\Developer\SubversionSourceControl

to

C:\your_project_folder\Plugins\SubversionSourceControl

(Create folder Plugins in project root if need)

After diging plugin in debug found that

in file C:\your_project_folder\Plugins\SubversionSourceControl\Source\SubversionSourceControl\Private\SubversionSourceControlOperations.cpp

in function (in project plugin code already)

bool FSubversionUpdateStatusWorker::Execute(FSubversionSourceControlCommand& InCommand)

you need add Operation->SetCheckingAllFiles(true); to line 560

		Parameters.Add(TEXT("--verbose")); // original line 559
		Operation->SetCheckingAllFiles(true); // add this
		TArray<FString> Files; // original line 561

this would allow to use code (line 562)

		if(Operation->ShouldCheckAllFiles() && InCommand.Files.Num() > 1)
		{
			// Prime the resultant states here depending on whether the files are under the 
			// working copy or not.
			// This works because these states will be processed first when they come to be updated on
			// the main thread, before being updated with any later on in the array by any that were 
			// returned from the svn status command.

which will slice off engine out of project files for svn.exe point of view (i guess engine provide them to plugin as sort of dependencies). In my case it was about additional 88 comands for svn.exe with error
svn: warning: W155007: ‘C:\Program Files\Epic Games\UE_5.7\Engine\Content’ is not a working copy

Save, compile, run, be happy