Saved Folder importance for Version Control

Hello,

I had trouble picking which category to post this question… Hopefully this is the best one.

Recently I had trouble with the Saved folder. Most specifically, the file Saved/Config/Windows/EditorUserSettings.ini

I couldn’t find much about that set of files in the wiki.

My problem was, a co-worker couldn’t compile the mod in his computer thanks to a setting inside that file. He told me that removing the entire folder solved the problem (after a couple hours of trial and error).

How important is that folder?
Should I keep everything in version control, exclude just user*.ini files or remove the entire folder from perforce?
What do I lose if I delete that folder?

Thank you in advance! :slight_smile:

Saved/ should not be under version control.

Here are the contents of my P4 ignore file (you can adapt it to an ignore file for any other type of version control):

# this file contains duplicates because P4 under windows needs backslash paths

# Visual Studio detritus
*.suo
*.sdf
*.opensdf

# UE4 cached stuff/build products
Unreal/DerivedDataCache
Unreal\DerivedDataCache
Unreal/Intermediate
Unreal\Intermediate
Unreal/Binaries
Unreal\Binaries
#/Build
Unreal/Saved
Unreal\Saved

# at the root of the project
DerivedDataCache
Intermediate
Binaries
Saved
*.sln
Plugins

EditorOpenOrder.log

Unreal/*.sln
Unreal\*.sln

/Plugins/*/Binaries
\Plugins\*\Binaries
/Plugins/*/Intermediate
\Plugins\*\Intermediate

*.reapeaks
*.skb

Thank you cancel !

I noticed one thing: you need to either have Binaries//.DLL committed to the repository (so the editor will open) OR have Intermediate/ProjectFiles/ committed, so you can compile it. (There’s a catch on the project files regarding some paths, but if you have the files you can use a text editor to fix those). I also commit the solution (*.sln) file.

Thank you, I’m updating my .p4ignore like this:

## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.

# User-specific files
*.suo
*.user
*.sln.docstates

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/

# Roslyn cache directories
*.ide/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

#NUNIT
*.VisualState.xml
TestResult.xml

# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c

*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
*.userprefs

# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile

# Visual Studio profiler
*.psess
*.vsp
*.vspx

# TFS 2012 Local Workspace
$tf/

# Guidance Automation Toolkit
*.gpState

# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user

# JustCode is a .NET coding addin-in
.JustCode

# TeamCity is a build add-in
_TeamCity*

# DotCover is a Code Coverage Tool
*.dotCover

# NCrunch
_NCrunch_*
.*crunch*.local.xml

# MightyMoose
*.mm.*
AutoTest.Net/

# Web workbench (sass)
.sass-cache/

# Installshield output folder
[Ee]xpress/

# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html

# Click-Once directory
publish/

# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings 
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml

# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# If using the old MSBuild-Integrated Package Restore, uncomment this:
#!**/packages/repositories.config

# Windows Azure Build Output
csx/
*.build.csdef

# Windows Store app package directory
AppPackages/

# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/

# RIA/Silverlight projects
Generated_Code/

# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm

# SQL Server files
*.mdf
*.ldf

# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings

# Microsoft Fakes
FakesAssemblies/

# OS Specific Files
[Tt]humbs.db
*.DS_Store

# UE4 cached stuff/build products
Unreal/DerivedDataCache
Unreal/Intermediate
Unreal/Binaries
#/Build
Unreal/Saved

# UE4 - at the root of the project
DerivedDataCache
Intermediate
Binaries
Saved
Plugins

EditorOpenOrder.log

/Plugins/*/Binaries
/Plugins/*/Intermediate

*.reapeaks
*.skb

It shouldn’t be necessary to have those files under version control unless you are planning to allow people who don’t have compilers check out your project and run the editor or game by right clicking the .uproject file. Everything under Binaries/, Saved/, and Intermedate/ gets rebuilt when you right click on the .uproject file, choose ‘Generate Visual Studio project files’, and then build from Visual Studio. Everything in those directories will be recreated when you do that.

Checking in .dlls and other build products from their build directories directly can cause problems if you’re working on a team that has more than 1 programmer. If you want to distribute binaries to your artists, it’s probably a better idea to copy built or packaged products into another dedicated directory that you have under version control and have your artists run the editor from there.

1 Like

Oh I missed that right click on uproject → ‘Generate Visual Studio project files’. I’ll obliterate the intermediate files and binaries right away! Thank you again!

May I ask you to explain a bit more on how should I proceed to distribute binaries to artists that don’t have Visual Studio?
I prefer to not have duplicates of the Content/ folder to avoid merging trouble and inconsistencies…