#source-control

1 messages · Page 3 of 1

bitter sun
#

Is there any way to make p4 sync with depot without making it override my local/offline changes?

bitter sun
#

is there any chace I'm looking for p4 resolve?

formal jewel
#

It’s a generic message, I figured if someone had encountered it they would know what I was talking about

#

I couldn’t remember the exact message and it takes 15+ minutes to trigger it because it has to go through the whole commit process before failing and triggering the message, hence why I didn’t post the full message here. I have read the full message, and it seems like it’s not actually pointing to the problem I’m having because I’m not having any internet connection issues

analog shore
#

I'm using perforce and have a dilemma.
Is there any way I can work using my unedited source build while my colleagues use the epic games store version?
If not, can they manually download the source build without connecting it to source and have it in a different directory, will there be any issues?
Creating dedicated servers, that's why the question.

silver token
# bitter sun Is there any way to make p4 sync with depot without making it override my local/...

You would want to check out files with changes prior to syncing. Then the sync/resolve would be able to either merge those changes with the other changes or setup a pending resolve that you'll need to handle manually (because there are conflicting changes that can't be automated). If you're not sure what you've touched, you can 'reconcile offline work' on a file or folder and it will tell you what needs to happen with checkouts/add/deletions, but it can be slow and it's not always entirely correct.
You're only options for local writes (such as if you chose that option in the editor) is to overwrite your local changes or to leave the file alone. When you sync you should get a warning about those files that are locally writable asking you what you want to do. Neither option is great, so it's best to only use it for debugging stuff you can/expect to lose because keeping the file as-is is probably more dangerous as you now have an incomplete sync and the local file may not work with the other files you did sync.
With perforce you're really expected to work connected to the depot. The workflows for offline work are not great.

bitter sun
analog shore
#

literally none

#

just epic hating multiplayer developers

#

so I have to use the source build for dedicated servers

#

So wait, how would my workflow go, would I have to switch version -> make my changes in blueprints and code -> switch versions again and commit? I guess I could just not commit whatever changes happen when you switch versions, but that sounds like it could create it's own problems?

#

is that all it does?

#

ahh well, that explains it, thanks

limpid obsidian
woven sluice
bitter sun
bold perch
#

Are your local files read-only?

#

Normally your local files are read-only and, provided you've connected your VS and editor to your Perforce server, if you try to change them you'll get a prompt asking you if you want to check them out (although you can enable automatic checkout in both cases).

bitter sun
#

it's really a long story, but tl;dr is I made a dumb mistake and removed my workspace folder and copied the files inside of to another folder. and I continued to work on another folder offline. and P4 lost the track of modified files. when I tried to submit files it tried to push every file even when they already exist in the depot etc.

I've been recommended a few things including that clobbering thing but I made a lot of mess and dont have much experience with P4 so I just downloaded files from depot and copy pasted my local/offline modifications on top of it. now I'll do reconcile offline work thing and submit to depot if P4 doesnt complain

fair monolith
#

In Git you would use a branch to easily handle the scenario you present. Keep one branch which is the official upstream version, and a second that is that version plus your changes to it.

#

Not sure how to do it on Perforce.

dim glade
#

Trying this now. Thanks ahead of time.

limpid obsidian
#

@dim glade that's assuming you're no longer using perforce

dim glade
reef verge
limpid obsidian
#

if I understand correctly, you've made changes to a 3rd party plugin and are now trying to merge those changes with latest.
typically I mark edits in the code like this:
// SOME_COMPANY begin edit ... // SOME_COMPANY end edit

then when it comes time to resolve, I can easily identify what bits I need to merge.

#

as for using external stuff: one way is to use perfore path mapping syntax +//some/depot/location in your workspace, where that location could be the engine or a plugin.

jolly fog
#

This the bizarre question of the night

#

Can I run a perforce server on a raspberry pi 3?

#

nevermind it doesn't support arm

limpid obsidian
#

you can run it off an SSD with Docker. i tried that once for shiggles

dim glade
#

Still trying to figure out why I have to build the entire project every time I compile. I have made everything readable and I've looked for remnant source control files but I can't find any. Source control is completely disabled as well. I'm not sure what the hell is going on. If this isn't quite the right channel, let me know. Wasn't sure if it should be posted here or in packaging.

#

This happens during live coding or from VS btw.

limpid obsidian
#

@dim glade i can jump on a call if you're willing to share

limpid obsidian
#

to your mother?

jolly fog
#

what?

limpid obsidian
#

i thought you were quoting vanilla ice

jolly fog
#

nah I was just saying "for real"

woven sluice
jolly fog
#

@limpid obsidian did you run it off a raspberry?

limpid obsidian
#

can a raspberry pi run Docker?

#

if so, you could run it

jolly fog
#

I'm worried about the architecture

#

or does docker take care of that? I only worked on x86 machines with docker

limpid obsidian
bitter sun
#

is there any way to change ownership of a changelist without reverting files in P4?

teal bone
#

Is there an option not to revert them?

bitter sun
#

No, sadly it expects me to revert it first

#

to change ownership

silver token
teal bone
#

You can then just unshelve the files from somebody else's cl

silver token
# teal bone You can then just unshelve the files from somebody else's cl

Yeah, that's absolutely true. But there are plenty of reasons to shelve and change ownership of the cl instead.
I've done it to move CL's between multiple personal workspaces (one on a desktop and one on a laptop).
Some of our artists use it to more easily provide WIP changes to an engineer in a way that they can move the contents to them on their own schedule but then the engineer already has the shelved files in their own view when they're ready to work on them.

teal bone
#

Yeah, absolutely. I mean more just to solve his problem. 🙂

trail bobcat
#

one of my artists using source control in UE4.25 has a slight issue. (it may just need a complete fresh to fix but...) He has perforce running, connected to our server, he has source control running and connected as well. He has all the permissions any other artist would have (presumably since I set up his account). He CAN go into perforce UI and check out files and his checkouts ARE reflected in his UE4 as well as mine. But when in UE4, right click to checkout, he gets a message that he can NOT checkout a file. (but he CAN, if he goes directly to perforce). Anyone else seen this issue before? Gotta be a simple fix right? [please @ me if you answer so I can find it 😄 thanks ]

urban crystal
copper ember
#

We have a small UE project underway and are trying to figure out how to use source control for a Maya artist to make a map in Maya, storing their files in Google Drive and then bring in all their assets / place them via link link and then provide those files to a developer to push a commit to our github main branch. Anyone have a similar pipeline or example of how they set things up?

limpid obsidian
copper ember
#

but there's still the maya files .ma that need to be kept somewhere as well, so we are trying to use Google Drive for that and to have the fbx and textures and animations organized there the same as they are according to the UE styleguide

limpid obsidian
#

any file that is revisioned should be kept in source control. that would include *.ma files and exported fbx

copper ember
limpid obsidian
#

the entire depot (aka repository) is dedicated to the project. all files that goe into the creation of the project are stored under various folders. the unreal project folder is just one of them. Maya, Houdini and other content are typically found under a "DCC" or "SourceArt" folder. (call it whatever you want)

copper ember
#

Are DCC folders organized to mirror the structure of the Unreal Project folder?

#

i.e .ma files for a chair would be stored in DCC/StaticMesh/Furniture and the .fbx files would be stored in UE/StaticMesh/Furniture ?

trail bobcat
hallow flume
#

Does anyone here have experience in both perforce and git? I have used git and git lfs to track my project changes as a solo dev for a long time and never had any issues besides having to pay for git lfs. Does anyone have a preference or think one is better than the other? I know git doesn’t show BP diffing, but I’m unsure if Perforce does or if there are really any perks of one over the other as a solo dev?

vale basin
#

I use git for pure code projects, but for unreal I strongly prefer perforce due to better engine support natively, and git lfs still has some pain points around clearing old versions etc.

#

But, there are scripts to clear old lfs versions (like only versioning 2 light bakes for instance)

#

And there are 3rd party git integrations that improve on default integration

#

But my familiarity with perforce and my perceived pain points around git lfs push me to perforce. There is definitely an element of personal preference there though.

#

The biggest reason would be native integration support though. Epic gives p4 the most love

bitter sun
#

does it matter if we used / or \ in .p4ignore?

#
# Do not check in plugin folder intermediate and binaries
Plugins\*\Intermediate\*
Plugins\*\Binaries\*
Plugins/*/Intermediate/*
Plugins/*/Binaries/*

I added those lines to .p4ignore but it still reconciles Binaries and Intermediate files in plugins

vale basin
limpid obsidian
bitter sun
bitter sun
#

so..

how do we solve a problem like add of added file; must revert when p4 opened doesnt list any files except my workspace's changelist

#

this was happening a few days ago and I re-downloaded depot (2nd time sad) and cleaned every changelist, then added my local changes on top of freshly downloaded depot files in workspace but still getting the issue

#

I'm wondering what it does, and will it ever help

sharp dagger
#

does anyone have experience using installed projects with source build? I have it working for source but I'm unable to get it working with binaries from epic games

lavish roost
#

I have a very annoying problem in my project. We use perforce. Everytime I launch the project my DefaultEngine.ini gets reset to default. I have a custom collision channel in there and each time I have to manually re-add the channel. This is extremely annoying. Does anyone know why this is resetting all the time? This is driving me nuts.

#

But it still keeps resetting

weary wasp
#

if i use the multiuser plugin is there a way to setup a server on linux with like a standalone thing? i dont want to let my friend need to turn on a vpn every time to get the changes or work together at the same time

iron bronze
#

Both of you'll probably need to VPN into the server's network for additional security

weary wasp
iron bronze
weary wasp
#

Oh yeah forgot about that one i hope its not that painful

iron bronze
#

depends on how fluent you are with linux 🙂

livid dragon
silent dirge
#

Hi, anyone kowns a good solution for SVN hosting?

There are cloud holsters available but the storage space is very limited. And even on storage vps the space is maybe at 1-2TB.

Our projects are between 250 and 500GB with the content folder only (and only required data in it).

So other then hosting our own server what solutions are available?

vale basin
# silent dirge Hi, anyone kowns a good solution for SVN hosting? There are cloud holsters avai...

Beyond that sort of space you are really looking at a step up from a VPS to a more typical cloud hosted server. You'd need to look at adding additional block storage, so going with a cloud provider like OVH or linode or something like that. You may be limited per volume to like 4tb, but you should be able to add more than one volume, so you could spin up a volume per project if you need to.

timid anchor
#

Just enabled git as source control having used plastic before, when saving files it doesn't prompt me to check out the file first as I am used to, despite "prompt for checkout on asset modification" being checked. Am I missing something, or is it git's limitation?

merry verge
#

you don't checkout files in git (unless using lfs locks, which requires setup)

#

it's not a limitation, git just doesn't work the same way

woven sluice
warm abyss
#

Currently we are using svn as source control
Do you recommend another software instead? Like perforce (People said it's better)

quaint obsidian
#

Released PBSync 0.5.0! I've made it much more streamlined to get started with it in your project, and added lots of new cool features, along with UX enhancements across the board.

#

PBSync is basically an auto-sync script + build tooling infrastructure like UnrealGameSync, but for Git centric workflows

#

It automatically manages lots of repo maintenance and updates, can handle editor binaries and custom engine distribution, prerequisite handling, and has a fully featured build and publish system which interacts with UBT/UAT/BuildGraph! And that's only half of what it can do, if you want any help with getting started or more info about how it can be valuable to your project, let me know! I'd even be open to introducing support for new workflows, source control systems, etc.

#

I also forgot to mention, we released UEGitPlugin 3.08 a few weeks back, it comes with a slew of bug fixes, as well as support for workflows which distribute Binaries in source control. https://github.com/ProjectBorealis/UEGitPlugin/releases/tag/3.08

GitHub

Changed plugin type to UncookedOnly, like the Perforce plugin, which fixes some cook errors when the plugin is enabled on some projects
Added support for syncing Binaries folder paradigm to force a...

jolly fog
#

hello guys

#

how could I get rid of the first commit called test

#

maybe try to merge the second commit (test de grandeur) into the first one?

bitter sun
#

In P4EditVS, is there any way to make plugin create a dedicated CL for the changes its automatically checking in?

worn forum
#

I heard somewhere that it is a good idea to have a remote location for your DDC files. I know by default the DDC file is ignored by git. Should i remove the DDC Folder from the gitignore so these files also get pushed or leave the gitognore as it is? Or is there another way to manage a remote DDC folder?

pulsar parcel
#

you should not version the DDC

#

if you have an office location, you may want to setup a network DDC. for remote (or in addition, if hybrid) you might want to look at the S3 DDC

worn forum
#

ah okey, so if i want a remote ddc definitely not on git. Got it, thanks

jolly fog
pulsar parcel
#

?

jolly fog
#

Do you use git kraken?

pulsar parcel
#

no

#

and why did you feel it was appropriate to tag me from an irrelevant conversation

limpid obsidian
vale basin
# worn forum I heard somewhere that it is a good idea to have a remote location for your DDC ...

The DDC is a hierarchy. You should have a local one always, it should not be versioned. You can optionally have an office & cloud DDC. This is helpful to share your built DDC stuff to other team members and for build servers to generate all DDC files nightly so your unreal can just download what it needs rather than having to build it all locally. In either case, Unreal handles it, and it's independent of source control.

quaint obsidian
# worn forum I heard somewhere that it is a good idea to have a remote location for your DDC ...
#

if you have an s3 compatible cloud storage platform, then you can have unreal pack the DDC into compressed chunks and upload it to the cloud

#

coincidentally, PBSync linked above has a feature which manages CloudDDC for you

#

in your Build folder, you will need a credentials file

#

credentials

[default]
aws_access_key_id = id
aws_secret_access_key = key
#

then with PBSync, you can run ./PBSync.exe --build fillddc --build s3ddc

#

this will prime the cloud DDC locally and then upload it to cloud

#

then commit Build/DDC.json to the repo

worn forum
neon kernel
#

Hello, I'm using GitHub with UE5 for the first time and I'd like to know : is it okay to use it, thee project wont be too big or anything ?

#

I know about the 100Mb file size limit but I'm not sure about the repository size limit

neon kernel
#

because I keep having this error

mighty light
#

so we have some .h and .cpp files in perforce that are showing at utf16 and some that are text. which is the correct type?

#

we changed them to text per the typemap. not sure how this happened in the first place

#

it turns out that doing that is a terrible idea

quaint obsidian
# neon kernel

I'd recommend to use LFS to avoid errors with large files

neon kernel
quaint obsidian
#

there's no limit to pushing with LFS

#

unless you have an old version of Git on Windows

#

at the very least, you don't have LFS enabled in that screenshot

neon kernel
#

I had to split my push in 2

#

because it would refuse to work if my push was over 2Gb

quaint obsidian
#

are you sure you migrated your assets over to lfs

torn holly
#

Does anyone know of a "smart" alternative to GitHub/GitLab where you can manage repos in sizes of around 20-50 GB?

neat arch
#

Hi guys, I have a school project with git lfs, can my teacher clone the repo with full content without having to pay for lfs?

merry badge
#

Is there any benefit of classic perforce over streams?

quaint obsidian
fervent bluff
#

is there a very detailed third-party guide on how to setup the UGS metadata server? I used the official documentation, and I'm receiving a 404 when browsing to serverIP/API/latest

urban crystal
south flint
#

Hey all, currently migrating from Git to P4 and I'm very curious about Virtual Assets, but there's seemingly 0 documentation. Anyone figure them out yet?

limpid obsidian
south flint
#

I haven't found a project setting. Looking through the source code I found that it activates through an engine config setting but I still can't exactly tell what to set that setting to

lethal cedar
#

Anyone else using Plastic?
Inside of UE5.1, I can only seem to update incoming asset changes by knowing exactly where the asset is located, then right-clicking, and "Sync"ing the folder in which it is located.

Using "Refresh" in the Source Control options (bottom right) seems to do nothing and not find incoming changes. Am I misunderstanding what "Refresh" is supposed to do?

reef oriole
# lethal cedar Anyone else using Plastic? Inside of UE5.1, I can only seem to update incoming a...

Hello, I am the developer of the plugin for Plastic SCM in Unreal Engine 🙂
What you see is exactly the behavior of the Unreal Editor, same with all Source Control Provider;

In Perforce:

  1. if you know what you want to update specifically, eg a folder with a few Blueprint assets (or one specific asset) you right click and "Sync": it will sync the said folder, as well as all the assets in dependencies (eg meshes, materials, textures, FX etc.)
  2. if you want to update the whole workspace, you usually close the Unreal Editor and update using P4V. It is in fact possible to right click and "Sync" the whole the Content/ folder in the Content Browser, but I have never heard of anyone doing this. ** Is anyone using that?**

In Plastic SCM, if you use a "partial"/Gluon workspace it will be exactly like Perforce
If you are in a "regular"/full workspace, beware that the current version of the plugin will in fact not work as expected by the Editor; Plastic SCM will update the whole workspace, but the Editor will only reload the folder (I am currently fixing exactly that in http://github.com/PlasticSCM/UEPlasticPlugin

reef oriole
# lethal cedar Anyone else using Plastic? Inside of UE5.1, I can only seem to update incoming a...

Now, about the "Refresh", I am also aware that it doesn't make sense for final users, see
https://github.com/SRombauts/UEPlasticPlugin/issues/115 Global Source Control Refresh only check local status #115
=> it currently only triggers a "status" command like the Plastic SCM GUI, so that the Editor can detect changes made locally through the GUI (eg checkouts, changelists etc) or through any another plugin like from an IDE

GitHub

"Refresh" calls in "cm status" for all the assets in the repository, but not all the additional commands it would nee to retrieve extra info like the locks and t...

reef oriole
lethal cedar
# reef oriole One more nice thing; in UE5.1 there is a new experimental button in the Status B...

Understood! Thanks for the info! I'm quite new to source control, myself. Excited about the "Incoming changes" thing!

About right-clicking and syncing the Content folder: My experience has ranged from "quite slow" at best and "crashes Unreal halfway through" at worst 😄

As a matter of fact, I tried syncing the Content folder this morning, and got a crash. Since that point, UE5.1 would instantly crash on launch, even launching with no project. I didn't bother checking into it, just ended up reinstalling 5.1 and things are working fine.

storm sleet
#

@reef oriole Do you have actual plans for the Virtual Assets feature in 5.1? Asking for a friend...

reef oriole
reef oriole
storm sleet
#

yeah, I see. I understand that you need quite some time for that, and in 5.0 there were a few hints but I never found anything exposed. Afaics it changes the textures (for now) so that you only always sync metadata and a thumbnails as the "real" asset, and only when you need you sync down the bulk asset data. I assume the bulk data is in a separate directory, similar to the external actors. I think plastic should be capable of supporting it (seeing how gluon works), but it'll still be a hassle to manage it properly

#

but there still seems to be almost no documentation

#

(sadly)

#

I sometimes wish epic had a public documentation repository which users can fork and make pull requests

#

(also "virtual assets" is quite hard to search online. Most results are "virtual texturing", "where to get assets", ...)

vale basin
#

Sooo stupid to kill that off

storm sleet
#

I know we have wikis for community and stuff, but you can in fact notice a quality difference between the official docs (maintained by epic professionals) and the wiki. Between wiki and personal blogs by professional (non-epic) devs there's also a big difference, often in favor of blog posts (they're often more structured with fewer missing details)

#

So I think if epic made their docs professionally (as they are doing) and focused on editing and integrating patches from community we'd had both: good documentation quality provided by epic, a good level of detail with additional details provided by the community where details are lacking

#

First step into a good direction is, we can now officially contribute guides and documentation to the developers portal. But still, the official documentation is the general go-to place if you need something

limpid obsidian
#

so with virtual assets, is right-clicking 'get latest revision' going to be a thing of the past? I assume syncs will need to be done through Unreal (similar to how OFPA needs to be done in-editor to resolve external actor refs)

hot moat
#

PlasticSCM users, what do you do when there is a new change on the server and you're mid-way through a merge? In my experience there are 2 choices:
a) You pull the new change, your merge is completely trashed, and you have to do it again from scratch, with all the manual merges.
b) You ignore it, push your merge, and the commit graph gets weird and some work may be lost.

merry verge
#

Speaking as someone who has never worked with plastic... can you not complete the merge without committing, and then pull the additional changes and merge those too?

reef oriole
storm sleet
#

yeah, dual head is much like a separate branch, but on one branch. It's basically completely safe, but ugly

reef oriole
hot moat
hot moat
wild geyser
#

Hi all, I have a perforce server that's working well for me so far, I added a few megascans assets and surfaces to my project, they were not automatically picked up as needing to be added. I manually added them, but on the second user's instance, they are not being assigned, even the materials do not have the textures assigned. How do I fix this? Thanks!

wild geyser
#

Solved: Needed to manually add MSPresets as well

royal cradle
#

Hello. I am setting up a GitHub repo of my project but all my PNGs are being uploaded as text instead of as images so I can't use them on other PCs. It looks like it's some kind of problem with Git LFS

royal cradle
#

I managed to find the solution. git lfs push origin master --all forces it to re-upload all assets instead of just abstractions

hoary gazelle
#

Anyone here seeing trash performance w/ the P4VS extension in VS 2022?

reef verge
#

What is the UGS setup supposed to look like when having multiple game projects and the engine source in one folder when using only one stream? Previously we could just open the .uproject but we can't open two projects since UGS doesn't allow the same stream to be opened twice. Is a .uprojectdirs file the way to go?

granite ravine
#

hi everyone, I was hoping someone could point me in the right direction.. On my machine I have Perforce setup with my employers project. I'd however like to setup a personal depot for my own UE5 project. Is that possible? The reason I'm setting this up is first version control, I really need some backing up.. and second, I will be away for a while and will only have a laptop with me. I would like to continue on my pe4sonal stuff on the go. Should I use something like google drive or one drive to upload my stuff once I go?

#

i'm a big novice in terms of source-contorl, any help is really appreciated

pulsar parcel
#

the "lazy load file state" setting should be the one that you run into the least issues with

true sandal
#

TCP receive failed.
read: socket: WSAECONNRESET, An existing connection was forcibly closed by the remote host anyone get this error with p4v before?

south flint
hot moat
#

People that have used PlasticSCM a decent amount, can I ask how you do merges, especially in regards to merges from/to feature branches?

storm sleet
#

In the end it makes sense to not edit binary files on feature branches, tbh

#

editing source is fine, everything else is something you can't merge

#

therefore, use plastic plugin, also if you work on separate branches. The plugin doesn't let you checkout files that are changed on another branch

#

in our case, our artists work on only two branches (one for level, another for the assets themselves). We engineers follow a "standard" workflow with a main branch and feature branches, but we also only edit source code and sometimes binary assets in test levels where it doesn't really matter and nothing is lost

#

at some point (when we have fully migrated to this new workflow) I might write something about it since I feel many people struggle with it. There are some things to consider when checking in binaries (compile results) and merging across branches. We just noticed that we (as engineers) shouldn't have to pull all the artist stuff. It's more like engine development at this point

modest valley
#

Anyone ever had any issues cloning UE from Github?

If I run a local git clone of the EpicGames/UnrealEngine - it works, and I get it. If I fork a copy of that repo to my own account, and try to clone it, I'm getting this error:

#

I've tried;

  • Using Git command and Git Desktop - both get errors
  • Deleting my fork on Github and reforking from UE - same error
  • Delete the fork (again), and try forking ONLY the 'ue5-main' branch - same error
  • Tried cloning the original EpicGames repo after all the above - it works (just to make sure)
  • Tried cloning my forks again - fail.

Only fails for this fork - I can clone other non-UE projects just fine.

Google gives me nothing even close to this... anyone got any ideas?

granite ravine
teal bone
#

Isn't there a free amazon (or something) server you can get?

granite ravine
#

I dont know.. I actually dont think I need a server, I was maybe thinking I could do local for now

#

and do regular backup to some google or microsoft drive

livid rover
#

Hi someone know how to install perfoce on a Synology Nas ?

smoky ruin
#

Interesting, thank you! what should I use instead of Github Desktop and why not use desktop?

#

interesting, thank you. I'll look into that. appreciate the insight ^^

modest valley
hushed cliff
#

i have UE5.0.1 built from source on my perforce server, ive got it set up so that all the temp files dont get added to the depot, so its pretty lightweight. If i want to upgrade my engine version to 5.1.0 what are the steps? Would I delete my UE5 Engine folder, clone the new engine from github, run the setup, build, then reconcile offline work?

livid rover
#

Thx

digital flint
#

everyone else also getting this for 5.1 source?

#
>Building ChaosUserDataPTTests...
>Using Visual Studio 2022 14.33.31631 toolchain (C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.33.31629) and Windows 10.0.22621.0 SDK (C:\Program Files (x86)\Windows Kits\10).
>Determining max actions to execute in parallel (32 physical cores, 64 logical cores)
>  Executing up to 32 processes, one per physical core
>  Requested 1.5 GB free memory per action, 31.88 GB available: limiting max parallel actions to 21
>Building 3 actions with 3 processes...
>[1/3] Compile ChaosUserDataPTTests.cpp
>D:\UES51\Engine\Plugins\Experimental\ChaosUserDataPT\Source\ChaosUserDataPT\Public\ChaosUserDataPT.h(105): error C4458: declaration of 'Solver' hides class member
>D:\UES51\Engine\Source\Runtime\Experimental\Chaos\Public\Chaos\SimCallbackObject.h(201): note: see declaration of 'Chaos::ISimCallbackObject::Solver'
>D:\UES51\Engine\Plugins\Experimental\ChaosUserDataPT\Source\ChaosUserDataPT\Public\ChaosUserDataPT.h(102): note: while compiling class template member function 'bool Chaos::TUserDataManagerPT<FString>::SetData_GT(const Chaos::FRigidBodyHandle_External &,const TUserData &)'
>        with
>        [
>            TUserData=FString
>        ]
>D:\UES51\Engine\Source\Programs\ChaosUserDataPTTests\Private\ChaosUserDataPTTests.cpp(40): note: see reference to function template instantiation 'bool Chaos::TUserDataManagerPT<FString>::SetData_GT(const Chaos::FRigidBodyHandle_External &,const TUserData &)' being compiled
>        with
>        [
>            TUserData=FString
>        ]
>D:\UES51\Engine\Source\Programs\ChaosUserDataPTTests\Private\ChaosUserDataPTTests.cpp(11): note: see reference to class template instantiation 'Chaos::TUserDataManagerPT<FString>' being compiled
#

it's so weird, looking at plugins, ChaosUserDataPT is Beta, but in Source it's under Experimental

vague whale
#

upgrading perforce was a. scary, b. easier than expected

livid rover
#

a

zinc slate
zinc slate
#

I set ChaosUserDataPT's "EnabledByDefault" to false,and it compile success

main jasper
#

How can I remove unversioned folder specifically with SVN? I can't really use svn cleanup path --remove-unversioned since that path is not versioned, so the command will abort.

sinful holly
#

i'm trying to populate a depot with the 5.1 source but it seems to always get stuck on this file - left it on overnight with no progress (and no net traffic from p4v?), any ideas on getting this to upload correctly?

#

i've since clicked "stop" and now i see the loading bar in the bottom right looping endlessly skeletonconfused

digital flint
zinc slate
#

sorry,I don't know

pulsar parcel
#

p4 submit -c clnum

#

you can also use --noretransfer 1 to avoid retransferring anything you've already uploaded

#

I think you need to put that before the -c switch though

granite ravine
#

I managed to setup a perforce local server for my project. Now I have source control properly working in UE5! Now I have a question.. how can I work on this same project on two different machines (not simultaneously)?

#

I was thinking of using google drive or onedrive to sync the project, and when I open the other machine it will get that updated data

teal bone
#

You need to open up a copy of perforce on that other machine and create a workspace there, then sync your files.

granite ravine
pulsar parcel
#

the same way you created your workspace your existing machine?

granite ravine
#

but the unreal project is only on machine 1, for example.. on machine two I dont have the project yet

#

I will install perforce there, create a local server again, make a new workspace? but the project files are not there

pulsar parcel
#

?

#

why would you have 2 separate servers?

#

and the point of source control is that you submit it to a server

teal bone
#

You should probably still have 2 separate, non perforce copies of the engine (just use the launcher)

granite ravine
#

but what if machine 1 and two are not in the same network.. the server is local to machine 1 only

teal bone
#

Then you can't share your project really

#

Unless you copy the files over on a flash drive or something.

#

If you put the server and the repository on the flash drive that might work?

#

I highly recommend not doing that.

granite ravine
#

thanks man, I appreciate the help.. I'm still trying to figure things out.. to be clear, I won't work on machine 1 and 2 at the same time.. I need machine 2 to have my project while I'm away for a few months.. the thing is that I would like to continue working on the project on machine 2, and when I'm back, it's easy to load my progress back to the main machine 1

limpid obsidian
#

@granite ravine perforce is a centralized server that many clients connect to syncing and pushing project files

#

based on your comments, it sounds like you plan on working from a copy of the project files disconnected from the server. which isn't correct

woven sluice
ashen plaza
#

Does everyone on the team need sc setup?

#

also I am not really sure what it does to help with git pushes and pulls

ashen plaza
#

I am using Git Desktop, but not sure how Source Control actually helps the unreal engine developer and designers have a better workflow

#

does it like, automatically push and pulls stuff like blueprints and c++ files? Or is that not realistic

#

Makes sense

#

Right, alright thanks for the info

haughty yoke
#

what is probably the best perforce remote server option for a small team? or other source control?

#

im new to this and AM NOT A DEVELOPER, i am however financing everything

limpid obsidian
#

@haughty yoke it depends. how large your team is, where they're located. which version control systems they're familar with. and how much you're willing to spend.

#

there are four commonly used options: perforce, plastic, git and svn. as well as many cloud service providers: AWS, Azure, Vultr, Digital Ocean, etc

analog lodge
#

Quick question...
I set up a cloud based perforce server for a project at work.
I'm super into the idea of switching to unreal for more projects, which are mostly linear content for tv/ads etc.
So I need to look into the best way of how to make this work for more than one project.
I don't wanna set this up for every little project we do and ideally we could just use our existing server to set it up.
We need to figure out our whole homeoffice situation first though, we don't have a good system in place yet.
So, these are my two questions:
A) Outside of job postings...where would we find someone to help us set this all up? What's the job description to search for?
B) until we can figure it out...Can I just set up perforce locally, without the need for external access? Just so I can work with versions of assets inside of unreal?
You know of a tutorial for that specifically?

#

Please @me when replying! Or DM me if you offer that service yourself!

crimson lynx
#

Are you guys experiencing -rw-r--r-- file permissions when git cloning on macOS or Linux?

granite ravine
#

if I now sync on machine 2 and get that repo, will the project run normally?

#

should I copy the Unreal engine installed on machine 1 onto machine 2, so that all plugins and stuff are the same

marsh nest
#

Is there a page somewhere that just covers what to put in source control, not vendor specific?

vale basin
#

Usually better to grab a .gitignore or p4ignore and convert to what you need. It's generally the whole project folder except: intermediate, saved, DerivedDataCache, *.sln, and optionally binaries (depending on your teams workflows and needs) as a starting point. @marsh nest

#

you can expand it with rules like only keeping _builddata.uasset files for 2 revisions etc, ignoring .idea and .vs folders if you have them.

limpid obsidian
fallow inlet
#

Anyone know of a way to get the uasset diff tool launched from command line to launch using the instance of unreal editor that is open and not have it launch another unreal editor process? Every time I wish to diff from my source control program I have to wait 30s-1m while a new unreal editor launches :/

low gust
#

Hello all, does anyone know the pricing involved in deploying the enhanced studio pack (perforce) on azure?

I know the perforce license is free up to 5 users, but I can't understand how much it will cost to deploy on azure, all the information is confusing to me, and not exactly sure what I need.

Right now I configured my SC to work with AWS, also not entirely sure how much is going to cost once the free period ends, so I just want to have alternatives at hand with first hand information from Unreal users.

crimson lynx
#

There are a lot of Editor Settings changes that don't seem to reflect into a local change. Where are these going? For instance which theme was picked.

iron bronze
#

I'm pretty sure Azure has a similar pricing

limpid obsidian
#

perforce is free for up to 5 users, but i think 🤔 that includes workspaces as well. so it runs out rather quickly. a "seat" (one year license) will usually run you around ~$450 USD. I say approximately because different companies pay different amounts per seat, depending on the size of the order, ability to negotiate, etc.

#

it won't be snappy, but a micro tier instance is free for one year on AWS

#

I find storage costs the most.

#

as the GB pile up, you can easily spend $100 USD a month. it depends on the team size, but most startups I see easily spend ~$12k/year (just on AWS)

#

you can of course, host it yourself (and open it up to the world with port forwarding on your router)

low gust
#

I have a Synolgy NAS.. maybe that can work once the free option ends for me.. I don't work a lot on this maybe a few months in archviz projects, so not sure if paying for a cloud service is the way for me. will try the keep the AWS free tier for now and see how it goes in the future.

low gust
digital estuary
#

Hi, I am just new to source control using github desktop. I managed to use it one of my projects. But how do I go about having a repository where I have unreal projects.

For example, my unreal projects are locatred in Documents/Unreal Projects/
So far my repository is located in project A folder which has the gitfiles. However, can we have two proejcts lets say project A and B on one repository? thank you

#

or does it mean, I should have a repo where all the different project files I need to have source control, as it will not matter since it will only update files from one project or several projects, without interfering in between projects.

modest valley
#

You would have two repos, RepoA and RepoB. They are seperate from each other.

#

You could, in theory, have both projects in one repo, but that is not optimal.

worn forum
#

Currently in my git repo i have a 5.0 project. I upgraded it locally to 5.1. How can i push the new project version to remote so once others pull the latest version they can work in 5.1? Or is it better to make a new git repo for the new version?

storm sleet
#

if you upgraded, your whole team must upgrade. Unreal is not backwards compatible (you can't just open a 5.1 project with 5.0)

#

and nothing prevents you from upgrading your project within the same repository

quaint obsidian
#

if you did a resave, it will change all assets

#

if you did not do a resave, it will just change the EngineAssociation in the uproject file

worn forum
#

Okey, thanks. Was wondering because after the upgrade almost no file changes were displayed in github beside the plugins

urban crystal
fair oxide
#

Hey, can someone help me with Perfoce?

I'm trying to set it up but I get errors when checking assets out. At first I tried it with new project and everything worked fine.

Then I did same thing with my existing project and when I change something and press Check Out Modified Files I get warning about "writable assets not checked out. The Following assets are writable on disk but not checked out from source control". I had same thing with new project, I fixed it by making files read only in windows explorer

After that I get different error "there are modified assets which you will not be able to check out as they are locked or not at the head revision". It gives me option to "Make Writable" but that just moves me back to previous error.

Can someone help me with that? Thanks

tranquil birch
#

Hey,
Does anyone know what's the difference between using the source control built into the engine vs setting up a regular repo and uploading it to github?

merry verge
#

The engine doesn't have its own source control. It's just a set of plugins that let you use git/perforce/etc from within the editor instead of/in addition to whatever UI you'd normally use.

tranquil birch
#

So, it's the same thing as simply using git bash?

merry verge
#

yes

#

and it's not like you have to choose one or the other

#

you can use both at the same time

tranquil birch
#

Also, I've got one more question if you maybe know the answer.
I've noticed that, I went above the storage and bandwidth limit with lfs on github. Do I have to buy the data pack? Or, would it be possible for me to host this on my own network so that my friend can pull from my network or something? Idk

#

Or like
What would happen to my repo if I don't buy the extra data space

merry verge
#

it won't let you push anymore.

tranquil birch
#

Oof

merry verge
#

you can host git yourself, but that involves knowing how to administer something like gitlab or gitea

tranquil birch
#

Before I look into that,
Is it free? Lol

merry verge
#

those are all free, hosting them yourself isn't unless you just have extra hardware laying around to run it on

#

you could use a free tier of cloud hosting but again, that requires that you know how to administer it

tranquil birch
#

Ok, I'll look into it. Thank you! I appreciate the info.
Idk where to start, but I'll look into it

quaint obsidian
#

azure devops repos is free too

red sluice
smoky marten
#

Hi folks! Need an advice, hope someone can help me.
I try to find a way to open uasset diff viewer from command line

hybrid dock
#

Question for PlasticSCM folks, can the ignore.conf be placed inside a folder to only apply to that folder and below? Similar to how the .gitignore file works

#

Or does Plastic only use the one at workspace root

vague whale
#

hello, i have a strange problem, since moving to perforce my project doesn't show up in the launcher, it would make life easier if i could fix this. anyone else solved this?

limpid obsidian
#

the Launcher will pick it up again if you just double-click the *.uproject

vague whale
exotic sundial
#

The code seems to even support merging, which is the second option which uses 4 file paths (three input and one output). I haven't tried it myself though.

exotic sundial
#

Just tested the diffing. Running this command will pop up only the diff window. The left and right should be OS paths, so including the .uasset part of the filename.

reef oriole
#

Ah yes, this is super useful to configure your favorite source control tool, eg with Plastic SCM I wrote this in the readme:
https://github.com/PlasticSCM/UEPlasticPlugin#configure-visual-diff-of-blueprints-from-plastic-scm-gui
ie:

"C:\Program Files\Epic Games\UE_5.0\Engine\Binaries\Win64\UnrealEditor.exe" "C:\wkspaces\ProjectName\ProjectName.uproject" -diff "@sourcefile" "@destinationfile"
and there is also a textual diff
"C:\Program Files\Epic Games\UE_5.0\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" "C:\wkspaces\ProjectName\ProjectName.uproject" -NoShaderCompile -run="DiffAssets" %1 %2 DiffCmd="C:\Program Files\Perforce\p4merge.exe {1} {2}"

exotic sundial
#

Ooh, the merge view even works 😯

vocal hemlock
#

Hello guys, yesterday I download UE5.1 source code, I tried to compile it with VS 2022.... I got a lot of gsod (green screen of death) computer crash when I want to generate the source

#

any idea ?? I never run to this issue before this version

woven sluice
#

GSOD? preview beta windows version?? BSOD/GSOD is either a hardware fault or an OS fault (or something attached to it, like drivers), my guess is nobody here is going to be able to help you with this, it's unrelated to UE

reef oriole
runic viper
#

I've included the /intermediate folder into source control. I'm using a local perforce server - how would I remove the folder from p4v?

limpid obsidian
#

use P4Admin and obliterate all revisions. make sure you have a proper p4 ignore file set

runic viper
grand girder
#

hey guys!! Actually I am using github as a source control for UE projects... and I have a query regarding the same... So here is the situation...
For instance, there is a BP called BP_Feature
and we are 2 users sharing the same project...
Now user A creates a feature called feature1 inside BP_Feature
User B creates a feature called feature2 inside BP_Feature

Now, UserA pushes their work onto the main and the main gets updated...
After userA is done with merging...
UserB goes on and tries to merge his work...

Now its obvious that UserB is gonna run into a conflict since their local version doesnt have the latest updates from main
now is it possible for UserB to keep both UserA's and their own changes inside the BP_Feature without having to compare both the versions and making the changes manually?
coz... in the Github Desktop app, it has the option to keep either of the changes but not both the changes

I tried the Merge tool but didnt notice any major difference between that and Diff against depot option rather than the fact that the merge tool also got the editor to write on without having to going to and forth

quaint obsidian
grand girder
#

I was going through the readme file... how do I guard it with the WITH_EDITOR

quaint obsidian
#

#if WITH_EDITOR but you dont need that part unless you have multiple persistent branches

grand girder
#

so will that serve my purpose without that script

orchid plover
#

Any idea why my .gitignore doesn't ignore the Binaries folder? I have tried "Binaries/*" and "Binaries/**". they don't work. Pretty sure the file is UTF-8 by the way.

#

This is in a new project. It doesn't have the files tracked already.

grand girder
# quaint obsidian #if WITH_EDITOR but you dont need that part unless you have multiple persistent ...

hey there!! am following the steps as mentioned in the docs but it throws an exception when I try to run it since it gets a null value
This is how I am setting it up:
.h

/**
 * 
 */
#if WITH_EDITOR
UCLASS()
class MYPROJECT_API UMyUnrealEdEngine : public UUnrealEdEngine
{
    GENERATED_BODY()

public:

    virtual void Init(IEngineLoop* InEngineLoop) override;
    
};
#endif

.cpp

{
    Super::Init(InEngineLoop);

    Super::Init(InEngineLoop);

    // Register state branches
    const ISourceControlModule& SourceControlModule = ISourceControlModule::Get();
    {
        ISourceControlProvider& SourceControlProvider = SourceControlModule.GetProvider();
        // Order matters. Lower values are lower in the hierarchy, i.e., changes from higher branches get automatically merged down.
        // (Automatic merging requires an appropriately configured CI pipeline)
        // With this paradigm, the higher the branch is, the stabler it is, and has changes manually promoted up.
        const TArray<FString> Branches {"origin/develop", "origin/promoted"};
        SourceControlProvider.RegisterStateBranches(Branches, TEXT("Content"));
    }
}```

inside the DefaultEngine.ini
quaint obsidian
quaint obsidian
grand girder
quaint obsidian
#

You'll see a file called "X.Build.cs"

#

Whatever X is, is your module

grand girder
#

I dont have a file with that name... its only the plugin files

quaint obsidian
#

Then you'd have to set up C++ for your project

#

In the future, I can add an option to just do this in a config, rather than needing to do your own C++

grand girder
#

I did add the content in the script

#

Is there any additional files to it?

mighty light
#

im currently having an issue with perforce commands exiting immediate and deleting temp files. for example, if i run p4 stream //my/stream it will open vscode with the temp file, then immediate delete it and the command exits with "Steam //my/stream not changed.". does anyone know what the deal is?

merry verge
#

do you already have an instance of vscode open and is it opening in that instance

#

because that would be why

#

perforce is launching a vscode process, which is immediately exiting because another vscode process already exists. Perforce sees that the process exited and assumes you're finished.

mighty light
mighty light
#

is there a way to make p4 snap resume if it gets interrupted? its consuming a ton of space and keeps running out so it gets canceled, then starts again when i re-run it causing it to keep using up more and more storage

mighty light
#

is there a way to show all the files a depot has history for? theres a bunch of deleted files we shouldnt have versioned in the first place (like intermediate) that i would like to obliterate but since they dont show up in p4v i dont know what the path is

vale basin
vale basin
mighty light
#

eg saved and intermediate folders

analog lodge
#

Ok, back with a pipeline question...
Still trying to figure out how to set up a perforce workflow for our small company, as we want to move more and more projects to Unreal.
We come from offline rendering with 3ds max/vray and have only used Unreal for one big project, quite successfully.

The idea I have in my head would be:

  1. Have a central server we use to store our current project and set it up as perforce server (last time we used a cloud based set up).
  2. Have a depot with a number of template projects ("Archviz" "TV Commercial" "Medical".
  3. Everytime a new project is coming in, our employees can select a template to start with and save it under a project specific name.

For our last project we only used ONE depot and no streams, I´d guess streams would probably be the way to do this, or am I mistaken?

#

Or am I overthinking this and we wouldn´t need perforce, if we simply create the projects on our central server and access them via VPN/Nas from home?

#

Since we are only doing linear content, things might be a bit different than for game development.

urban crystal
# analog lodge Or am I overthinking this and we wouldn´t need perforce, if we simply create the...

It really depends on how much you want the versionning to be available. For instance, you might wanna update your "Medical" template everytime your team makes significant changes to the template during one project and benefit from these later on.
It also makes sense to update it whenever Epic publishes a new, stable version of the engine.
Sometimes it's good to be able to branch off to an older but more appropriate version of your template, and there, source control is the easiest way to achieve so.

analog lodge
mighty light
#

perforce is something else

#

it closed the connection while i was submitting a changelist

limpid obsidian
chrome needle
#

hi guys im trying to push my new source code to github and it comes up to do it The remote disconnected. Check your Internet connection and try again

mighty light
analog lodge
wooden pelican
#

hello I was wondering if anyone here knows why level changes aren't updating for my partner after they fetched from the origin for github

mighty light
#

Also if they have local changes to the level, pulling won't override it be default because there's no way to merge it

#

So they might have to shelve or revert their local file

twin gust
#

why does Unreal insist on checking out files that are newly created when I get latest revision? for example if a co-worker has created a set of icons and I get those as part of the latest revision they are automatically checked out as part of the import process - why?

errant kelp
#

any clues on why this happens ?

#

when trying to use Merge tool (with Git) Unreal crashes

#

here's the callstack

reef oriole
# errant kelp when trying to use Merge tool (with Git) Unreal crashes

I think that it never worked, I think I wrote it on the README of the plugin 😦
At that time I thought it was a bug in the Unreal Editor since the source control really does not much in the case of a merge; just provides some file content
It might be something that the Editor is expecting from Perforce, and that the Git plugin doesn't provides

#

I'll take note of this crash and see if I can give it a look in the coming weeks!

errant kelp
#

I'm not using the Borealis Plugin

#

is there a different way to fix merge conflicts in blueprints ? outside of the editor

#

maybe something CLI

reef oriole
#

Perhaps should you try with the one from Project Borealis, I'd be super happy to hear that mcoms fixed it, and see if I can bring back this change to the Editor

reef oriole
errant kelp
#

yes, right click bp -> source control -> Merge

#

it worked on other blueprints, but this specific one crashes the entire thing

reef oriole
#

ooh, that's something else; it works on some Blueprints, just not on some other(s) 😮

#

or is it depending on what version you are keeping? source vs destination?

errant kelp
#

on a one specific blueprint that has quite large changelist

#

there are other blueprints to also solve the conflict

#

but I haven't tried them yet

#

also I noticed that Borealis plugin is made for UE4 do you know if it supports UE5 ?

reef oriole
errant kelp
#

OMG it no longer crashes ❤️

#

btw, am I doing this right? I just check the changes and then hit "Finish Merge" to get both edits together

reef oriole
errant kelp
reef oriole
# errant kelp

Interesting, is this in UE5.1?
I was only aware of "Accept Source" & "Accept Target" and as noted above, IIRC one of the two was crashing the Editor back in the day
Can you select each changes and pick what you want from them? so the merge is not readonly anymore?

errant kelp
#

this is UE5.0.3

#

how do I pick the change and pass it to the resulting version ?

reef oriole
#

Hey, I am sorry, as I mentioned you know already more than me! But as I said, I took note of the change and will make sure to investigate & document the thing better!

#

From what I can see; you are supposed to pick each change and then hit Finish Merge
If it crashes my bet is, as I wrote above, that it's a bug in the Editor / the Merge Tool
(in this case, perhaps unable to merge some combination of changes)

#

But thanks a lot for asking and giving all the details and screenshots 🙂 it is helping
And I am sure that some people here will be happy to see that too!

errant kelp
#

yeah sure man anytime

#

I'm just new to using this tool

#

if I click on the change and hit Finish merge it would close the window entirely basically doing nothing I think

#

I assume when you said to select the change and then Accept Source/Target that means it would only merge the stuff without touching other changes and automatically closing the window ?

reef oriole
#

I think you can either;

  1. Accept Source (and it's supposed to save one version of the Blueprint)
  2. Accept Target (and it's supposed to save the other version of the Blueprint)
  3. select changes one by one from the list of changes on the left, and then hit Finish Merge (and then it is supposed to reconstruct a new Blueprint with the changes you picked)
errant kelp
#

Okay so I tried selecting a single change and did Accept Source now the editor crashes with the following

#

here is the callstack and the filepath

willow geode
#

is there any good way to keep a UE project on a git repository without files getting over 100 mb?

teal bone
#

Use a free hosting service and git LFS

#

That'll stick the large files on the free hosting service with limited backups and all your code remains on github.

willow geode
#

kk

mighty light
#

do i have to submit /Content/__ExternalActors__/... to source control?

#

afaik thats the one file per actor stuff right?

teal bone
#

Correct

fleet creek
#

Hello evreryone, i use perforce on UE5.1 and 5.0.3. It connected but if i close a window (ex: material) or execute a Ctrl+z it freeze until 15 seconds. Have you had this problem with source control ?
my server is fast, my writes and reads are fluid. i think it comes from the settings in unreal but i don't understand how

teal bone
#

It's just the p4 integration being shit

fleet creek
#

@teal bone Which source control do you recommend

teal bone
#

They all have their issues

reef oriole
# fleet creek Hello evreryone, i use perforce on UE5.1 and 5.0.3. It connected but if i close ...

I am not entirely sure it is the Perforce integration, I don't think that I have seen this behavior myself...
Can you check your Unreal Editor logs when this happens? Hopefully you can see something there, either p4 commands or other part of the Engine complaining that something is taking too long for instance
(or just that in between two lines of successive logs there is a big gap in timestamp, for that you have to enable timestamp in logs or look at the <Project>/Saved/Logs/Project.log file)

fleet creek
#

@reef oriole Thank you for your reply, my log does indeed show me a lot of errors that take 0.05s each.

#

<Project>/Saved/Logs/Project.log file i don't see anything unusual

#

how to avoid the warnings ?

reef oriole
fleet creek
#

@reef oriole Ho my god. thank you !!!!!! it was my "saved" file in under Perforce. The whole team thanks you, we've been struggling for days with this. We love you ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️

reef oriole
#

Nice, happy to help 🙂

smoky ruin
#

should I git ignore the rider link plugin from source control?

teal bone
#

Probably, yes.

#

That's something the user should decide if they want, not something that should exist in a repo.

vague whale
#

hi, is it possible to get p4 to check the local diffs to the server, something has gone a bit strange with my local copy never being submitted to the server

tranquil haven
#

Hey, Whenever I revert back to a commit or create a branch from that commit and then merge, I get this error. The project runs fine at that branch but not at the main.

analog lodge
#

Hey, can someone look at an idea of a small studio setup using Source control right now?

analog lodge
#

This is the setup I´m thinking about.

#

I haven´t used git or subversion yet and in perforce, only the green/blue option would work. with the red option we´d quickly run out of workspaces from the free tier.

#

So, we´d have the master project template in the top depot, branching of the material library that all other templates have access to and then branchin of from that a bunch of project specific templates (like one for live keying, one for commercials etc).

#

And from these templates we´d branch of for each Project.

#

This way we could
A) Have the same default settings etc available in all projects right away.
B) Have access to a central Material library for all projects.
C) Would be able to have the material Library grow over time, when a new project requires a new Material.
D) Have the specific Templates grow with assets developed for the projects over time (new studio setup/new background environment/new virtual studio etc).

#

In the green option we´d simply have ONE Project file per Content Type and the various projects would then just reside in a folder structure inside of that Type Template project.

#

This way we could stay withing the workspace limit in perforce, but would be at a higher risk of having "corsscontamination" between projects, since other projects would be just a folder away.

#

In the red option we would quickly run out of workspaces, so we wouldn´t be able to use Perforce at all.

#

But if that would be possible with Git/Subversion (considering the large amoubt of big binary files without any need for merging/branching code), it would be the preferred method, because Projects would be better separated from each other.

#

Yeah, went afk before I could post..:)

#

Yeah, it worked fine for the big production we had. We just had a big folder structure inside of it as a project structure and would only sync what we currently worked on.
But as I said, this probably wouldn´t be a good idea for projects that were´nt connected to each other in any way apart from being of a similar type.

#

FIrst link about subversion I found was a blogpost from perforce trashing it...:)

#

Yeah, just knowing my team and how easy it would be to work in the wrong folder without noticing...

#

haha, yeah, the question would be...you know of any good ressources to learn about subversion?

#

Apart from the obvious...

#

Haha, ok then.

#

laters...

#

Ok, good news, they have a visual client as well as it seems...
The whole commandline thing cost me countless hours when trying to set up perforce...

#

And if you look at the "graph" I made...would that kind of setup generally make sense?
Maybe comparable to a Game (holding all company templates) and its various DLCs (Projects based on the templates with access to the material library etc)?

#

Streams in perforce terms.

#

I love unreal, but not being able to simply import from another project is really bugging me, hence the idea to make a template based workflow.

#

But instead of using the template folder from the local installation, use streams (or similar containers in other source control software).

#

Yeah, in a day to day workflow I might switch between 3 running projects, trying to figure out where I´ve used a certain material before, opening that project, exporting etc is just not really feasible.

#

One other option I´m thinking right now...

#
  1. Have a source controlled master template project, containing material library and assets, as well as template levels for various project types.
#
  1. For each new project pulling from the master project a copy but than creating a new repository for that project.
#
  1. Maybe only using local repository for that project than, if no others work on it.
#

Yeah, but I can´t program plugins.

#

And they´d also need to be constantly updated.

#

Like, if you have a material library as a plugin, with each new project and each new material, the plugin would need to be updated.

#

What do you mean?

#

Can you be more specific? Talk to someone whos never programmed code...:)

#

Ok, but again, this assumes we have a ready made material/asset library, that we could just package as a plugin and share between projects.

#

We don´t.

#

We just started our journey with Unreal.

#

We created a bunch of materials for our last project, but it would be a long work in process.

#

And for that something source controlled seams ideal. Without having to repackage the library as a plugin every time.

#

Or do I still not get the plugin concept?

#

Yeah, thats why we want a central Master library.

#

Sorry, can´t quite wrap my head around it, I´m used to plugins from a different context.

#

You can´t have a source controlled plugin thats constantly being updated though, or can you?

#

That part is essential.

#

Ok, so, we´d still need source control on a per project base though.

#

Lets say Person A Works on Project A (source controlled in its own repo).

#

Person B on Project B (same as above).

#

For funs sake, they are also both working on Project C.

#

How do they all access the same Library-Plugin, thats also source controlled?

#

Map it inside of unreal? Would you need to point to a certain folder containing the plugin in every new project?

#

Would you need to enable the plugin for every new project?

#

Right.

#

I just don´t get the mapping part yet.

#

Is that something source control specific, or is it also just a line pointing to the path in lets say the project settings ini?

woven sluice
#

Feels weird to me to want a potentially huge?? content template source and dump the whole thing into "every" project. I feel like you would end up always wanting to cherry pick from it into your actual projects

analog lodge
#

Yeah, it would be content specific plugins.

#

Like one with only studio backdrops for commercial shoots.

#

Or one with only medical assets for medical animations.

woven sluice
#

If you're using perforce then you could just shadow mirror the content plugins into your actual projects via stream setup

#

It gets a little weird

analog lodge
#

Pretty sure perforce is off the table due to workspace limitations.

woven sluice
#

Yeah that's fair

analog lodge
#

We´d need a different workspace for every new project with this solution.

#

Hm, yeah, I could see using ONE plugin for ALL the master materials.

#

And only have the content specific plugins have the content specific assets (geometry, textures etc.). And the used materials would be instances of the master material plugin maybe...?

#

Ok, but back to the mapping...ini file setting or something I´d need to set up in for example subversion?

#

Yeah, just wanted to know wether its a line of code in the project ini file or something more complicated in source control.

#

I don´t wanna massively overthink things, but yeah, switching back and forth 10 times a day just trying to get a few materials exported and imported is not going to be an option.

#

And having to figure out which 87 settings we have to make for every new project, so we don´t have to go through them every time is also not an option.

#

Right now, as I see it, I need to consider 3 things:

#
  1. Make a material library master project. Wether its source controlled template with branches or plugin doesnt matter right now.
  2. Make a source controlled Master Project for all kinds of defaults and settings.
  3. Look into subversion or plastic.
#

Thanks for all the input, its about how much I can digest for now and I got a new to do list...

hazy isle
#

Hi, I’m a noob , apologies if I ask a dum question. Regarding source control , will every pc need the same version of unreal engine in order for the shared files to work correctly?

cyan jay
hazy isle
#

So what’s the best method of source control implementation?

teal bone
#

They all have serious flaws.

#

I haven't heard anyone really complain about plastic, but that's probably because nobody really uses it much.

#

Try git+lfs

vale basin
#

Yeah imo none are perfect. P4 gets the most attention from epic so its probably the better one in term of editor integration. Especially around UGS and One File Per Actor

teal bone
#

So what's the verdict on plastic btw? Or even using SVN these days?

#

Are they actually any good?

#

(For UE)

#

Does anyone here use them regularly?

vale basin
#

I remember reading that the editor integration for OFPA "was only supported on p4", and my guess is that it was more to do with the editor integration and how it queries & populates the UI for the actor info, and was likely more related to slowness than "not working"

#

yep, from the docs:

Changelist support is only available when using Perforce as your source control provider.

#

but yes, it should absolutely just work for committing the files

grizzled silo
#

the git Plugin is not intended to work Push/Sync with GitHub, right?

quaint obsidian
chrome needle
#

Hi im new to GitHub and i don't have money for git lfs data plan so i heard devops is free i got my repo on the thing but i don't know how to stop pushing it to GitHub and start pushing to dev ops this for my ue5 game project please help. Or is there a free altertive for more data

teal bone
#

You can keep your code on github and just push assets to a git lfs server.

teal bone
chrome needle
#

hey i get a push error saying remote disconnected what to do

modest valley
teal bone
#

And did you set up lfs or not?

fluid gulch
#

Rim, if your stuck you need to install LFS in your local repo, then get your gitattributes file sorted. There are some example ones online. Finally git add and commit everything and push it. LFS will be handled based on the gitattributes file. Let us know if that's helpful at all. Also it may be worth checking your remote with the command line or GitHub desktop just to rule that issue out. Otherwise, it's probably just too much data in which case LFS will be the answer.

faint cairn
#

Anyone using Status Branches?

#

Trying to understand how Git LFS with Status Branches would work exactly.
It seems like this only notifies users if there are changes on a listed Branch, but if two users make a new branch (2 branches) and check out a file, it would not show, or am I understanding this wrong?

#

As far as I read about Git LFS in general, a checked out file is checked out across all branches, so are Status Branches just a visual help?

analog lodge
#

hey there,
I´m trying to build a template library for future Unreal Projects (linear content/Virtual Production only, no games) and pondering the best way to do that.
At the core would be a material library that can be reused for every project, but also constantly be updated.
So whenever a new project requires a new, not existing material, it could be updated into the common material library.
We´re probably going to use subversion for source control and someone recommended simply creating the material library as a plugin.
If I get the idea correct, we could then have the plugin as a separate source controlled entity and for every new project we´d just have to sync the plugin and copy it to the current project folder, or how would that work?
Or do you need to compile the plugin after every change, before you can use it in a new project?

teal bone
#

I would sync hte plugin once and just symlink it to each project or place it in the engine itself.

analog lodge
#

Whats a symlink?

teal bone
#

Basically it's link between 2 things, so the OS things they are the same thing.

#

So you could link c:/stuff/whatever/yourbplibraryplugin to c:/yourprojects/newproject/plugins/yourbplibraryplugin

analog lodge
#

hey Laura...:)

teal bone
#

-bp+material

#

That was my second suggestion! 😄

#

I just like symlinking more.

analog lodge
#

Yeah, since the library would be still in development for quite a while, adding it to the engine library is maybe not the best idea.

#

Because then I´d constantly have to update it there, right?

teal bone
#

Updating an engine plugin has zero affect on the engine itself

#

Especailly if it's just a load of assets

analog lodge
#

Hm, ok, let me try and recap the process:

  1. Create plugin project and put it into source control.
  2. Create a symlink for every new project, pointing to the plugin folder (?).
  3. Activate the plugin in the new project.
  4. If anything in the source controlled plugin project changes, it would automatically be available through the symlink.
#
  1. If an artist wants to push a new material into the plugin, they´d simply migrate it to the plugin project.
teal bone
#

What you could do is symlink it to different engine versions. It would go horribly wrong, though.

#

(never do that)

analog lodge
#

That would require the artist to go into the plugin project and recreate the material, not feasible.

#

Yeah, I´m the artist tasked with understanding it...:)

#

I don´t quite get how the plugin works anyways...

#

Is it basically just another unreal project, thats tagged as "plugin" upon creation?

#

With content folders etc?

#

Sure.

teal bone
#

A plugin is like a project, but you can have many plugins all active at once and a single project.

#

Like !

#

Yeah. Taht works.

analog lodge
#

Yeah, I´m just not quite grasping where it would reside in terms of source control.
In its separate folder, like an Unreal Project?
Then I would kinda get the symlink approach (a link basically pointing to that external folder, that could be source controlled and wouldn´t have to be manually updated aka compiiled, before it could be used)

#

But how would it work in engine then? Would you just create it in the installation path of the artists unreal folder? And then source control that folder somehow?

#

Sorry for all the questions, if there is a chapter in the docs I missed, I´d be happy to read up on it, but all I could find is very basic and doesn´t explain what I´m not understanding.

#

So, created a new plugin through the plug in editor...and now what.

#

Lets say I have an Unreal project where I created a bunch of master materials and I have a bunch of associated textures.

#

Can I just copy the assets into the newly created content folder of that plugin?

#

I don´t think we´re on the same page yet...:)

#

Yeah, I don´t know what to do with the .uplugin file though...I definitely don´t know how to make a material inside it...:)

#

I would make it in a master material project OR in whatever new project I work on and then I´d have to either migrate it or use source control to check it into the plugin folder.

#

Ok, just tried it out and of course I get missing links, if I just try and move ONE material, without the associated textures/material functions etc.

#

Yeah, but how do I make it IN a plugin?

#

I can´t open the .uplugin file.

teal bone
#

(use notepad)

analog lodge
#

Ok, I can´t write a material in a text file...

#

I only know how to make it in an unreal project...

#

Don´t worry, at some point I´ll go "Ahhhh...."

#

I´m just not there yet and feel free to exit any time.

#

Again, I´d love to just read up on it in the manuals...

#

Ok, I know I have a Folder inside of "Plugins", when I´m inside a Unreal project that has the plugin enabled.

#

I can just create materials inside that plugin content folder.

#

So, if I´m inside my "Mastermaterialsproject".

#

And I have already a bunch of materials created, I need to use "Advanced copy" to properly get them in the plugins folder.

#

Instead of just copying the materia.uasset via explorer (I know thats not teh way to do it).

#

Or I could go inside any project and migrate the material (and by doing so all associated assets) into the plugin conten folder directly.

#

Yeah, I just didn´t get the concept of how to do anything IN the plugin directly.

#

Yeah.

#

"Ahhhhh...."

#

The missing part was about how I work INSIDE the plugin.

#

Yeah, really depends on the workflow.

#

I need to read up upon advanced copy.

#

Yup, got it.

#

Again, I was thinking I´d be in a different project, without the plugin available.
So, how would I get it from that content folder in my explorer to the plugin content folder via copy and pasting somehow inside of unreal...didn´t make much sense until I saw the plugin content folder in my currently open project...

#

Advanced copy makes sense too now.

#

And then i think I also get how to just source control that plugin folder.

#

Just to sync across workstations remotely etc.

#

I think I have one more thing to clear up in my head now.

#
  1. How do I get the plugin into the engine folder?
    Is it as simple as pointing to the engine plugins folder, when creating the Plugin?
#
  1. Would the folder structure on each workstation need to be the same, if I create the plugin in a different location than in the engine plugins?
    Like, in the previous example, I created the plugin in lets say "P:Global\Unreal\Plugins" or something like that?
#

I get why having it as a plugin in engine would be better, because if I open a new project (based on a template for example) I would have the plugin available right away.
Only downside would be I´d have to move it again for each new engine version and I´d have to watch my drive space on C:

#

Oh yeah, that would be the case anyways.

#

Ok, so then creating it in a different folder than in engine seems to be the safer route for engine updates...
It would reside in its own source controlled folder and it would have to be enabled by default in the new project template I´m creating as well right now.

#

I don´t understand how Unreal would find it though, if its on a different folder when syncing it via source control.

#

Lets say I have my workspace for the plug in set to "Global/Plugins", my colleague has it on his workstation sitting in "Global/Unreal/Plugins".
How does unreals plugin editor know where to look for it?

#

Brb

analog lodge
#

Ok, fun fact, here is almost the exact same question answer the same way:

#

I don´t think I wanna have to set up and maintain symlinks for our small team of (nontechnical)artists.

#

So, the alternative with the engine plugin would work until we switch engines.
But then I guess we could just copy the folder for the old plugin into the new engine plugins folder and it should just work...?

reef oriole
# faint cairn Trying to understand how Git LFS with Status Branches would work exactly. It see...
  1. The goal of listing only a selection of Status Branches with Perforce is to check against the typical few long running branches like /main /staging /release eg
    It doesn't work for short task or feature branch like you would in Git
  2. You are right, for the time an asset is checked-out/locked in Git LFS it cannot be checked on another branch (same for Plastic SCM) but as soon as it is submitted and unlocked, someone else can make other changes in another branch (master /main included)
    The goal of this feature is to check that when an asset has been changed & submitted on a branch, users get a warning when trying to check it out on another branch
faint cairn
#

Like, a branch for a feature I'm working on.

#

Does one need to instantly merge changes back to branches that are tracked?

analog lodge
# analog lodge So, the alternative with the engine plugin would work until we switch engines. B...

Hm. I dunno. I don´t like either option that much....
The "Engine Plugin" option seems very convenient at first, as you only have to enable it (or default enable it) once and can source control it directly. But...
A) What happens when you switch engine versions? I still don´t know if you can simply copy the Plugin folder into a new engine plugins folder then or if that would break things.
B) What about source control? Its not trivial to switch source control to the new folder then.
C) I seems like a minor inconvenience, but...
This way the folders within the plugin content get buried deep inside a longer path in Unreal and it becomes tedious going back and forth all the time,making material instances of the master materials in the plugin folder and then copying them to the correct location in the projects content folder...

The "symlink to external plugin folder" has other issues:
A) Need to figure out symlinking first.
B) As far as I understand the symlinking has to be done for each project separately. Thats a lot more work than I have time to do, with several artists working on 3-4 new projects every month.

reef oriole
#

Else the alternative is to keep all assets locked until you merge back, yes

#

For now the workflow works better with Perforce (as always) and PlasticSCM

faint cairn
#

Hmpf

analog lodge
# analog lodge Hm. I dunno. I don´t like either option that much.... The "Engine Plugin" option...

I think I might have to revisit my original idea, which was having ONE source controlled master project to contain general settings and the Master MaterialLibrary.
And then having several branches or tags (don´t know the exact difference yet) for subTemplates containing specific additional assets.

And then I could see two other options:

  1. For each new project, the artists would simply copy the needed template folder to a new location and make a separate repo for that.
    This makes pushing new assets/materials a bit more of a hassle, as they need to be migrated to the corresponding template projects manually (either the master template or the Projects template), instead of being able to just push them up using source control.
    But its probably the savest route with the least amount of maintenance.
  2. Instead of making copies of the project specific templates, they could just branch of from them for the actual Projects.
    That way it would be easiest to push up new materials/assets to the mainline or subtemplates. But it would probably create a huge mess of head revisions...
faint cairn
#

So the base requirement for Git LFS to work for us is:

  • Allow branching
  • Ensure that Binary Assets can only be modified by one person (if checked out) no matter what branch anyone is on
reef oriole
#

Yes, if using the exclusive checkout with yellow checkmark is good enough for you it's perfect as-is 🙂

faint cairn
#

Okay so we tried just me trying to push something that is locked on some random branch and it stops me

#

Which is good

#

But the problem will come up that if that person now commits and pushes their change to their branch

#

Then it would not be checked out/locked anymore

#

And then both could end up with a modified file

#

Does committing a file automatically unlock it?

#

Okay it seems like the file stays locked

#

Which is good. So they need to unlock it after merging it back into some base

#

Now I just need to check if merging it back into main will show me, being on yet another random branch, that the file is outdate

#

I did enter the main branch into the StatusBranches stuff

#

Okay now it tells me the file is not a head revision

#

But the person has to unlock the file manually after merge?

#

Automating the unlock after merge would be cool

reef oriole
#

I am not the right person to tell; what plugin are you using? The one from ProjectBorealis right?
When I implemented it originally () it would unlock on commit, but I think it was changed later, perhaps as a setting; I would check their Readme first 🙂

faint cairn
#

That seems to be the last puzzle piece atm

#

Right okay

#

Yeah from Borealis

#

I will check

reef oriole
faint cairn
#

Ah

#

Can it be that they only unlock the lock if I submit via Editor?

#

That might be why this didn't work

#

Can I even merge via Editor?

#

There is nothing talking about automatically unlocking on merge

#

maybe that's a git feature and not so relevant to UE or the plugin

reef oriole
#

Ah but if you don't use the plugin from within the Editor you are just using your tool LFS integration, it will vary

#

it's not about git per se, it's about LFS 2 with Locks

#

and so yes, the plugin can help
but it doesn't help create branch, nor merge, and I fear that it doesn't unlock for you either; let me know what you think after reading their doc, but I feel that it's a lot of manual steps

faint cairn
#

The problem is also that most people seem to be talking about unlocking on push

#

While I only want this on merge into main

#

Hmpf

#

Which is a push, but a specific one

reef oriole
#

yes, that's the default "unlock on push", that what I implemented, because you can integrate that in the plugin directly

faint cairn
#

I read their doc, it's not talking about the merge part unless I missed it

reef oriole
#

while the merge is not in Editor, so cannot be managed by the plugin

faint cairn
#

Right

reef oriole
#

yes that's the point, you can not branch nor merge from the Editor 😦

#

because it's Perforce centric

faint cairn
#

Do you know what is being pushed in the editor?

#

Or rather, I guess I would just remove the auto unlock then

reef oriole
#

Sorry, I don't understand your question? What version of the plugin you mean?

faint cairn
#

No, forget the question. I basically need it to stay locked until merged back into main.
So pushing in the Editor should also not unlock. I can't have the file being unlocked if pushed to a random branch. Then other branches could start modifying it again

reef oriole
#

To be honest, I dropped the ball on Git LFS + Locks since I found it was too clunky
I heard a lot of good things from the forked plugin, but still I am not convinced this can work for now

faint cairn
#

Basically as soon as it's locked, it can only be fully reverted or merged into main. Otherwise it should not unlock

#

That would defeat the purpose

reef oriole
#

Yes, like I said, I think they removed the unlock on push

faint cairn
#

Push != Merge though

#

I can Push to Branch XYZ while working on a feature

#

That would unlock the file

#

Which is bad

reef oriole
#

Yes I totally get you, like I said 🙂

faint cairn
#

Okay sorry, then I misunderstood

#

It's the only thing that keeps annoying us cause we want the Merges for Code Reviews

#

Cause we are missing Swarm ;_;

reef oriole
#

Yes, so to rephrase my pov;
The initial version of the plugin I implemented used the Git LFS Locks by pushing on commit and unlocking at the same time, to mimic Perforce
It was done because there is no way to manage branches & merge from within the Editor; it would need the user to unlock manually, which is also bad IMO (eg artists...)
BUT it was made an option/a user settings so you can choose
after that I dropped the ball, meaning I stopped using it personally and couldn't really improve the plugin anymore at that point

faint cairn
#

Not blaming you for anything

#

I'm reading up on the locks stuff atm

#

They seem to suggest that a file that is locked and commited, even if unlocked can't be locked again until one gets latest on it

reef oriole
#

So, basically, if you just want to use Git solo, the plugin in Editor works great (and I do use it as-is)
If you want to use Git LFS & Locks on a team, it's either all in a few status branches, or it's a workflow that is a lot more involving, with manual unlock at the proper time etc

faint cairn
#

But that would mean that the lock AND commit status is tracked over all branches

reef oriole
#

might be the case! like I did on Plastic SCM
but I doubt it, since they explicitly mention Status Branches

faint cairn
#

So if I commit a Locked File inside Branch XYZ to Branch XYZ and unlock it, that another user on Branch ABC sees that they are not on latest regarding that XYZ branch

#

Yeah but STatus Branches seem to be more for a bunch of streamlined branches that auto merge stuff from production down to the least stable branch

#

and forbid it the other way round

reef oriole
#

No, not necessarily
I have used them for years without any auto merge nor restrictions
It's just a check after all

#

(used them on Perforce, that is)

faint cairn
#

An alternative is that locking a file locks it across all branches, but when the lock is released, further locks on that file can only be taken on a descendant of the latest edit that has been made, whichever branch it is on.

#

That sentence is what would make this work

#

is locking.md describing how it works or how it could work?

#

I haven't finished reading it yet

#

Ah

reef oriole
#

Be careful, this is basically the RFC from before they implemented LFS 2 Locks in 2016

faint cairn
#

proposals

#

Didn't read the ink

#

Ah okay

#

Will read up on version 2 then

reef oriole
#

What they implemented is the same as Plastic SCM, and contrary to Perforce
you lock a file, you are the only one that can make modification to it, one whatever branch, and even on multiple branches, until it is unlocked

#

you can not even have someone else or CI/CD do the merge while you hold the lock

faint cairn
#

Right but you can start modifying once the lock is released, even if you don't have that other branch's update of the file?

reef oriole
#

Yes exactly, that's the issue that the "status branch" implemented in Unreal Editor tries to solve

#

It works great in Perforce with a few long running branches
and it works great in Plastic SCM since the plugin checks all the branches (and report what is the latest change, by whom and on which branch)

faint cairn
#

Hm okay. Thanks for explaining. We tried it out and it indeed only notifies once the file has been merged into main (or i guess the status branch I entered in my code)

#

sigh

reef oriole
#

You can ask for a change to the plugin 🙂
I think it would be worth checking all the branches instead of only the status branches, at least as an option

faint cairn
#

Yeah but if someone uses git outside of the Editor, then they could get around the check of all branches

#

Probably doomed tbh

#

As long as Git LFS 2 doesn't support this safely it's not gonna work out

#

Guess I will have to brain storm a few more days >.>

reef oriole
#

Please ping me when you have some idea or conclusion, definitely an interesting convo!

#

And whatever you endup doing, it's healthy to try to push for things, the Editor, the plugins etx

chrome needle
#

26 gb

#

sry twice

#

so what do i do

modest valley
#

You have to break up your commits to be <2gb

#

There is NO way around it for GitHub.

#

So do like 14 Git commits, each <2gb, and push each one at a time. Once you have it all loaded up, then you can do simply increments after that.

chrome needle
# modest valley You have to break up your commits to be <2gb

i just did it now it is doing this error Enumerating objects: 3225, done.
Counting objects: 100% (3225/3225), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3169/3169), done.
Writing objects: 100% (3224/3224), 6.52 GiB | 16.34 MiB/s, done.
Total 3224 (delta 393), reused 0 (delta 0), pack-reused 0
error: remote unpack failed: error TF402462: This push was rejected because its size is greater than the 5120 MB limit for pushes in this repository. Learn more at https://aka.ms/gitlimit
To Url ! [remote rejected] master -> master (TF402462: This push was rejected because its size is greater than the 5120 MB limit for pushes in this repository. Learn more at https://aka.ms/gitlimit)
error: failed to push some refs to Url

modest valley
#

the error is right there "5120 MB limit for pushes in this repositor" - you are limited to 5gb for Github unless you pay extra? I think its $5 per 50gb after that?

woven sluice
#

Azure not github

analog lodge
#

I hope I´m not annoying anyone, but I´ll keep updating my thought process on the ideal source control setup for our company.

#

If you know of a discord server dedicated to linear content creation or virtual production with Unreal Engine, I´d love to know, because I think a lot of the problems I´m having coming from a non-game/developer background to wrap my head around, others might have as well.

#

That being said...

#

Looking more at subversion and having worked with perforce, there are some things I like less....:

  1. The way revisions are done repo wide vs. file based.
  2. The missing "obliterate" in subversion. I followed some threads about this and I still think user stupidity should always be accounted for...
  3. Maybe thats not an option missing, but I haven´t found a way to limit revisions of certain types of files (mainly large binaries), as there is in perforce.
#

I also just figured out, there might be a way to hit two birds with one stone when it comes to workspace limitation:

#

My previous idea for perforce was to create a main template stream, containing project settings and the material library, as well as some base assets (OCIO profiles, MRQ presets etc).

#

From that branching of we would have Template streams for different types of production (live greenscreen, medical animations, tv commercials etc).

#

And from those streams we would have streams branching of, that would contain the actual projects (Medical 01, Medical 02, Green sceen 01, Green screen 02 etc).

#

Previously I thought we would have to create a separate workspace for each user AND each project stream.

#

Thus quickly running out of available workspaces (due to the 20 workspaces limit for the free tier).

#

But now I realized we could simply have ONE workspace per user and then switch the workspace to a new project, rather than having to create a new one for each project.

#

That would have the added benefit, that for each subProject branching off, the workspace would already contain:
A) The master template stuff, including the Master Material library.
B) The type template stuff.

#

No need to have the Material library copied around multiple times for each new project.

#

Might still have to figure out how to separate the streams properly, to prevent "crosscontamination", but right now I like this idea best...

analog lodge
#

I´m also looking into PlasticSCM, mainly because I couldn´t find any clear pricing on Perforce and of course we need to consider the possibility of growing as a company in the future and exceeding the 5 user limit.

tidal skiff
#

Hi, I am using perforce as my version control solution.
And it is deployed to a digital ocean droplet. 50gb of storage.

It had used all the space, so , I mounted 50gb volume to the droplet.

But, I am still getting the error
The filesystem 'P4ROOT' has only 1.7G free, but the server configuration requires at least 2G available.

iron bronze
woven sluice
tidal skiff
woven sluice
#

Sorry, I don't know what it is 😦 . I use Gandi and they provide a script that helps to do it but I'm not familiar with digital ocean or general linux

#

Try searching Google for digital ocean expand partition volume

iron bronze
tidal skiff
#

So would changing P4ROOT to the path of volume suffice?

iron bronze
tidal skiff
#

is the command same as windows?

#

p4 set "Perforce" P4ROOT=/mnt/volumename

woven sluice
#

Uhh

iron bronze
#

at /etc/perforce/p4dctl.conf

woven sluice
#

If you had a 50GB volume, and then you buy another separated 50gb volume, you're not exactly going to win much by switching from one to the other

tidal skiff
tidal skiff
woven sluice
#

You found digital ocean's documentation and don't want to do it?

chrome needle
#

guys i keep getting this error when trying to push on github Locking support detected on remote "origin". Consider enabling it with:
$ git config lfs.urltrue
Enumerating objects: 3231, done.
Counting objects: 100% (3231/3231), done.
Delta compression using up to 8 threads
Compressing objects: 100% (3174/3174), done.
Writing objects: 100% (3229/3229), 6.52 GiB | 15.14 MiB/s, done.
Total 3229 (delta 394), reused 0 (delta 0), pack-reused 0
error: remote unpack failed: error TF402462: This push was rejected because its size is greater than the 5120 MB limit for pushes in this repository. Learn more at https://aka.ms/gitlimit
To url
! [remote rejected] master -> master (TF402462: This push was rejected because its size is greater than the 5120 MB limit for pushes in this repository. Learn more at https://aka.ms/gitlimit)
error: failed to push some refs to 'url'

limpid obsidian
chrome needle
#

How to fix

limpid obsidian
#

pay money for a bigger repository size

#

and/or don't push files greater than 5 GB?

teal bone
#

Or push in smaller chunks.

quaint obsidian
#

@faint cairn So to clarify:

  • Locks are always across all branches. If you have a file checked out, it will not be pushable even outside of editor for anyone else.
  • Status branches are used to check for modifications to assets across a couple of long lived release branches, where there is a defined automated merge order and then a manual merge back up the merge stream.

This as you discovered, doesn't work so well with feature branches. Now, we do not use feature branches much, and when we do, it tends to be code heavy rather than for assets. But, there is an option on submit called "Keep files checked out" in the Unreal Editor at the bottom of the submit dialog. This is what we recommend and what we use for when we are holding asset changes on a status branch. So, locks are just held on files manually.

I can look into extending the status branch feature to also work with checking any remote branch optionally if you have a feature branch heavy workflow and the above approach would not work for you.

#

Unlock on merge is a very interesting concept -- if you are using GitHub, let me know and I can make a GitHub Action for it. This would also be potentially valuable to us.

#

I am vacation at the moment though, so I will do this next month :)

analog lodge
#

Nobody here doing virtual production with Unreal?

#

I´m still struggling to conceptualize a source control layout that works for many many projects as both a way to make sure there is always a "ground truth" when it comes to materials/presets etc AND safe to prevent cross contanimation between projects due to stupid artists.

#

Right now I´m back at Unreal Engine and I thought I had figured out a good system, where we have a Master template stream, with separate project type streams and then streams branchin off of those project type streams for separate projects.

quaint obsidian
analog lodge
#

But in order to not have to have a separate stream workspace for every subsubstream (aka the actual independent projects), I figured we could just use ONE workspace per user and they´d just switch to streams.

#

What I failed to realize was, that they´d still have the SAME .uproject file in every stream they would work in.

quaint obsidian
#

why didn't engine plugins work?

analog lodge
#

SO, they would open "Mastertemplate.uproject" in every single project stream, as its in their main workspace.

#

Even though logically they´d be separated in the stream depot, they´d be in the same workspace.

#

The benefit would be they´d all have access to the same material library, presets etc without the need to have a separate plugin or any other way of sharing assets, that involves a lot of back and forth.

#

On the other hand, ALL company projects would only be separated inside Folders inside the SAME unreal project.

#

I can still see this working, comparing the layout basically to any server layout with folders and subfolders for every project, just inside of ONE unreal project.

#

But I´m also anxious, because I´m not sure what the possible pitfalls would be.

#

I would probably lock the master materials and presets and project settings, so nobody but me as the admin could accidentally mess them up.
So, everytime someone would need to make a change to them for a specific project, there woud still be that layer of security.

#

And we´d never merge any of the substreams up to the main stream anyways.

#

Still feels uncomfortable having ONE Unreal Project containing ALL our other project, even if they would be technically separated by streams and could essentially be rebuilt from those streams separately, should we need to move workspaces or add new users etc.

analog lodge
#

Ok, after more consideration...
Can anybody tell me wether its possible to rename an Unreal Project in a branch, if I´m not planning to push the branch back to the mainline?

#

Because I wasn´t considering that I can simply delete unused workspaces whenever needed.

#

So, lets say 3 artists work on 3 projects in parallel...
they could just have ONE workspace for each project, have a separate stream for that project and rename both the project folder in their local workspace AND the project file.

#

And once they are done with that project, I could just delete that workspace from perforce and create a new one for their new project.

faint cairn
#

In P4 it was super nice that one could make Reviews from Shelved files.

#

Before committing them to the depot.

#

With Git, this kinda died, because only working on a main branch doesn't allow code reviews that easily.
If Branches would allow for Binary files to have 1 single state across all branches, then that would be ideal, but that's a Git problem, not a UE problem.

quaint obsidian
faint cairn
#

I wouldn't call it "Holding Locks until merge"

#

I would prefer if you can't lock a file that you don't have latest on

#

Across all branches

#

If someone pushes a new commit for binary file XYZ, and you don't have that, you shouldn't be able to lock it.

#

I'm fine with locks being removed before merge

#

As long as not two people modify the same file

#

We use self hosted GitLab with Git LFS enabled

quaint obsidian
#

so again, I'm just calling out the 2 possible methods (which you had also identified)

faint cairn
#

Yeah I know, holding lock until merge is probably better

#

Cause Status Branches are a UE thing

#

We use git outside of UE too

quaint obsidian
#

yeah and you're concerned about that the outside cases as well, it makes sense

#

personally, we have moved to a model of pre-commit / revert mostly, following the lead of most larger development practices and our own findings

#

but it makes sense to also support this model

faint cairn
#

Pre-Commit?

#

Like, Pre-Commit for what exactly

#

There are Pre-Commit Code Review solutions, but they are pretty manual

#

In that regard, Post-Commit -> Revert (when review fails) would make more sense, so what do you mean with Pre-Commit here

quaint obsidian
#

We follow a practice of running tests and such, and if failing commits are pushed, they are auto reverted. We can also manual revert any problem commits ourselves

#

pre commit is just the lingo from google :)

#

it's not actual git pre commit

#

apologies for confusion

faint cairn
#

No worries. We have CD/CI setups for testing builds etc., that's fine. They don't auto revert, but they at least annoy us if something fails. That goes for everything that is commited.

#

Same as generating BInaries for non-coders

#

It's mostly for looking at code and discussing it

#

Code Style and if stuff could have been done differently

#

Especially for newer employees that are still learning

#

With P4 and Swarm that was pretty easy to do

#

Cause they can't push until we approve the review

quaint obsidian
#

Yeah, personally we've found that a trunk/unstable branch works, and we review continuously and before the merge to more stable branches

#

that way there is a stream of changes and it better supports productivity and learning

faint cairn
#

Hm

#

So you let everyone work on a dev branch, without checking code, but you check the code once they try to merge it from dev into main?

quaint obsidian
#

this is where most larger dev practices are trending

#

yeah

#

we do it weekly about

#

review as a group

faint cairn
#

Yeah I'm pretty far away from dev practices cause we are so used to P4

quaint obsidian
#

well, git flow was also a thing

#

which is this traditional feature branch approach

#

but everyone realized feature branches have problems

faint cairn
#

Do people still create Branches outside of the dev branch for features or only if they are mainly (or all) code?

quaint obsidian
#

specifically because they are long lived, they are isolated and become stale

faint cairn
#

Yeah they do

#

Ah, well, that's not even the problem I have with them, but that's worth noting

modest valley
#

I work in Enterprise (non games) - and all code gets code reviewed by someone before it gets merged into main.

Each feature is a branch until its into main.

faint cairn
#

Yeah you can't do the "each feature is a branch" stuff with UE

#

Unless you keep all binary files locked

modest valley
#

i know - just saying that nothing ends up in main without a review

quaint obsidian
#

if you need more time to sketch out a feature, feature branch is fine but usually its straight into trunk/dev

faint cairn
#

Only problem I have with feature branches are the binary files

quaint obsidian
#

but usually, its a smell if you need so much work on something to have a separate branch

faint cairn
#

Yeah..

quaint obsidian
#

not incrementing work enough

faint cairn
#

Again, there was some proposal for the old LFS implementation, mentioning something about not allowing to lock unless you have latest of that file across all branches.
That's basically the check out of P4, which I would love as an option

quaint obsidian
faint cairn
#

But that's a Git issue

quaint obsidian
#

so its extremely difficult to know their windows for breaking changes like that

#

especially because they implement such features privately on GitHub server

faint cairn
#

Hm, I don't know enough about git sadly. We only use it with a self hosted gitlab setup

quaint obsidian
#

we wanted to land this with LFS v3

faint cairn
#

I can use it but I don't know anything about its development stage

quaint obsidian
#

but they had not communicated at all that they were making v3 until a few days before it went live

#

and it was only because they were holding for some platform support from Go or something

#

none of this was communicated, had to hunt it down

#

GitHub develops LFS separately from Git

#

git itself is a very open process

#

this talk from 7 years ago made waves in many orgs over time

#

facebook, microsoft, netflix, and more

faint cairn
#

There is an LFS v3?

#

Man, I don't know anything haha

quaint obsidian
#

yes, but it's just v2

#

but with lock/unlock can take multiple file args in the command

#

that was the breaking change..

faint cairn
#

I wait for the day that Michael Allar has enough of P4 and finally makes a custom Source Control that works well with UE

#

OR, someone finally figure out how to merge binary files through UE.

quaint obsidian
#

well, we are working on making git awesome

#

have onboarded some new folks dedicated to this task

faint cairn
#

Yeah but you are limited by what git offers or not

quaint obsidian
#

no, we plan to make extensions and contributions

faint cairn
#

Is it forkable?

quaint obsidian
#

yes

faint cairn
#

Like again, never looked into that

quaint obsidian
#

we already have our own fork of LFS client

#

which is included in the UE git plugin

faint cairn
#

I wonder how much work it is to add a flag to .gitattributes that marks a file as "You need latest across all branches."

quaint obsidian
#

it adds support for multi threaded locks

#

its mostly been just me for a while on this stuff

#

and i am also overseeing game / editor / other tools / web infra

#

so i am not able to dedicate my full time

#

but we are building out our team for this area and hopefully we will get lots of awesome tools

#

for example, live timeline scrubbing for changes (with thumbnail preview generated from UE)

#

thats one thing we're working on with git storage for it, continual auto commit on a secondary local branch from your current

#

also virtual file system for git, which is able to do partial updates, supporting sparse checkout, virtual streaming files, etc

#

and also enhanced API for locking and other git information, similar to UGS good/bad commits, MOTD, etc..

faint cairn
#

Hm

chrome needle
teal bone
#

Just installing it isn't enough.

#

You have to actually set it up.

long hull
neat grotto
#

Many devs are too entrenched with Perforce to bother.

#

It's been great to see how actively you guys develop your custom UE Git plugin.

teal bone
neat grotto
#

What is it? First time hearing the name, but I've seen signs of Epic having an interest in this space for years now.

teal bone
#

Honestly not sure exactly. Or what I'm even allowed to say...

neat grotto
#

Ah, OK. No worries.

chrome needle
teal bone
#

You look at a tutorial. 😦

long hull
long hull
neat grotto
#

I remember at one point there was an interest at Epic in making assets fully text-based to be more source control friendly.

teal bone
#

It would be fantastic if somebody made a p4 that wasn't shit

neat grotto
#

Or maybe it's own open-source effort broadly speaking, but with an EOS feature set that augments it (like CI/CD or something).

#

I'm most intrigued by the apparent lockless workflow. Seems like quite a departure from Perforce, which is surprising since that's what Epic has historically been most invested in.

#

That probably means they know Perforce's pain points better than most.

teal bone
#

I'm not sure having lockless assets is a good idea, though.

quaint obsidian
#

well I'm guessing it makes it easy to select one

long hull
quaint obsidian
#

can i receive mega grants for multiple projects?

long hull
#

I'm pretty sure I saw creators having multiple MegaGrants (Dekogon comes to mind, I'll check).

analog lodge
#

Ok, I figured out a way to use a master template depot and then working in streams per Project, where we can have separately named workspace folders locally.
I also tried renaming the project file in these branched streams and it worked fine.
I don´t ever see the need to merge the project file down from the mainline stream (where it would have a different name) and I also don´t see the need to copy it back up from any of the branched project streams.
I also opened it up with a notepad and it mostly contains a bit of metadata about the project as well as the engine version and the enabled plugins.
If we ever need to enable more plugins in the master template, we either still wouldn´t need them in the projects branching of from it, OR we could either manually edit the project file or just add the info by enabling the plugin in the project itself.

#

Or am I missing something?

quaint obsidian
quaint obsidian
spark harness
#

When I try to use source control with github, the second I start importing quixel bridge assets it goes over the 100 mb limit and I can't push. Is there a way to get around this and still be able to clone the repository on another machine and have all the relevant assets? (Preferably without spending any money since I only do this as a hobby)

neat grotto
tough laurel
#

if I got the perforce setup order wrong by 1) adding a ue5 project to a depot and then 2) adding a typemap file afterwards, is there a step I need to take to have those mappings apply to the existing files?

cyan jay
analog lodge
#

Usung perforce, I want to have a mainline depot containing a global asset folder and a bunch of project specific template assets.
For each new stream I want to only automatically sync the global asset folder, but NOT the project specific template assets.
As far as I have gotten in my research, I know there is an option to create client workspace mappings.

#

What I don´t quite get yet:
A) Do I specify the client workspace mapping in the mainline stream, so all streams branching off from that have that initial mapping and get that content synced automatically upon creation?
B) Can the users still manually sync any other folders from the mainline stream,, or are they then restricted to ONLY the ones from the client mapping defined above?

faint cairn
#

Is this supposed to be a 404?

#

(:P probably not)

teal bone
#

Works here.

mighty light
#

It also works for me

vale basin
#

Yeah working now here too. Was definitely broken before

tough laurel
hybrid pine
#

Hi all, haven't been able to find an answer so hopefully I can get some help here. I've done the source control for github with gitLFS. I've uploaded andthe folders show in the repository. However, when I use the code button and unzip all of the folders are empty. I've purchased the 50gb as the file is 14.5gb. How can I recover the file uploaded and more importantly share with a collaborator as they unzip and it is empty as well

quaint obsidian
#

you cant download LFS from a github zip archive unless you enable that option in settings

#

but i dont know why you would ever use that for collaboration

#

rather than cloning the repo using git

analog lodge
#

I´m rather frustrated right now with the whole perforce layout process, but alas, I gotta have more information to make any meaningful decisions...

#

So, here is another question:

#
  1. Lets say I have to create a layout for ALL the project we do over the course of a year (anything from 50-100 projects).
    I tried having a master template and creating streams for each project, but it quickly becomes a mess.
    The idea was to have a master template containing a reusable MaterialLibrary (We don´t want to make the same master PBR material we constantly need for EVERY single project).
    The idea of using streams from that master template was, that we could then easily populate a new project with the reusable assets from the master template, AND inherit all necessary project and editor settings to have consistent output on all projects.
#
  1. The other idea was, that, since that Master template doesn´t really exist yet and would be very much work in progress, as we work on all the new projects, we could constantly update the Master template with new reusable Master materials and assets.
#

Which sounded great on paper, but then I tried setting it up and quickly ran into issues.

#

Of course I don´t want EVERY user to have access to the template in a way that they could accidentally mess up project settings or existing master materials that would subsequently be copied into every new project stream.

#

I also don´t think that its generally a good idea to use the merge/copy function to try and update the master template.

#

Lets say an artist creates a new Master Material and while doing so he used some obscure textures from some obscure folder in his project.

teal bone
#

I see symlinking in your future.

#

I jest, but why not set up a sub-repo that you extract into new projects?

analog lodge
#

Whats a sub-repo?

teal bone
#

/Content/Library or whatever

#

Basically you have your main respository, let's call that your Project folder.

#

Then you set up a second repository inside that repository, in /Content/Library

#

You can then have that shared across many projects, as long as the path structure is the same (/Content/Library) it would be fine.

#

Not sure how UE would deal with it, probably have a fit.

#

Same concept a git submodule

#

As you mentioned streams, I assume you mean perforce. I'm not sure how perforce handles things like that.

analog lodge
#

Yeah, that was the initial idea and yes, talking about perforce.

teal bone
#

It would allow people to create local copies/cls of the library, too, if they needed to change something just for their project. You don't have to submit CLs.

analog lodge
#

I tried doing that with streams, assuming I could just change the streams in new workspaces at will.

#

But merging up/copying comes with a whole lot of problems I´m not familiar with.

teal bone
analog lodge
#

I´m only used to migrating assets from one project to another..

#

So, if I create a new material using a bunch of textures and i migrate that material, unreal remembers all the referenced assets and migrates them with it.

#

If I take ONLY the asset in perforce and try to submit that, it doesnt know which references have to be submitted as well.

teal bone
#

You should try to maintain isolation for the library. People should not be putting random stuff from their project into anything related to the library.

analog lodge
#

And its also impossible to control where to put the assets.

#

Yeah, but the library simply doesn´t exist yet.

#

And I don´t have months to build it.

teal bone
#

Create it. 🙂

analog lodge
#

I have about a week or so to set up a system that can grow over time, while we´re all figuring things out.

teal bone
#

It sounds like it should be an iterative effort anyway.

#

You don't start out with a complete library. Build it as you go.

analog lodge
#

Right now I´m also thinking about creating a separate repo for the library.

teal bone
#

If you're doing 100 projects a year, you will get content very quickly.

analog lodge
#

And then maybe create a copy of that for all other artists.