#source-control

1 messages · Page 15 of 1

hardy sundial
#

@arctic merlin if your still looking for a recommendation, try using Anchorpoint as your git frontend with Azure as your storage, that's the goto solution for unlimited LFS and git with Unreal

delicate prism
#

why won't it let me revert on my revision control?

teal bone
#

Have you actually saved the asset?

delicate prism
#

I want to say yes but at this point i have no idea. I get to a certain point in my project and the who thing bugs out on me, crashing the project. this is the forth time, revision control saved me on the third time but no i can't even use the revisionn control.

teal bone
#

If the asset hasn't been altered, it probably can't be reverted.

delicate prism
#

it has been altered in the past. I have a revision history on it.

teal bone
#

Aaaand in p4 I don't think you can revert an asset before checking it out into a CL?!

teal bone
delicate prism
#

i'

#

i'm still learning revision control.

teal bone
#

Honestly I don't know. I've successfully avoided integrating source control into ue so far. I do it outside the editor.

delicate prism
#

I don't know what to do. I get to a certain point and now I can't open up certain blueprints without the whole project crashing.

teal bone
#

What is the crash>?

delicate prism
#

it's the forth time this has happened.

#

i'll screen shot it

teal bone
#

Are you using c++ at all?

teal bone
#

Yeah. That's a stack overflow right there.

delicate prism
teal bone
#

You have something calling itself.

#

Like an actor creating a new instance of itself in its own construction script.

#

(though that's actually hard to do intentionally)

#

But it's something like that. Some loop in your graph.

#

And I don't mean a for loop.

#

Event X triggers Event Y which triggers Event Z and that triggers Event X again...

delicate prism
#

what do you suggest I do? I've apparently have made this dumb loop 4 times now.

teal bone
#

I don't know

#

It's entirely your own code doing it.

#

(most likely)

delicate prism
delicate prism
#

i don't know how to solve it though

teal bone
#

Take apart your cardhard until it works.

#

Then put it back together until it doesn't

delicate prism
teal bone
#

🙂

delicate prism
#

I wish people could earn rewards from people they helped, so everyone could see the profile and know a lot of people on here know their stuff.

#

and how helpful they are

teal bone
#

That's a dark path.

arctic merlin
#

Got a question about sourcetree, after committing and pushing, I still have X number of files in "Commits". Then it still showing the files in the Unstaged Files section.

#

In Github Desktop, these files and X number of commits disappeared after pushing as in "these files are committed and pushed" type of way so let's remove them, which I liked. Am I missing a step? 🤔

bleak salmon
#

Git Tortoise/Github client/SourceTree

If me and my friends are working on unreal project via version control what are some advices that we should incorporate in our workflow?
We were previously doing some stuff in unity and we have trouble getting started with version control in ue.
We use github and gitlfs with git tortoise for client.
Do we have to always close unreal engine editor before making pull?
Do we have to make something except saving project file before pushing commit?
We already had some peripeteia with pushing and pulling where one person's changes to for example postprocessing were not recognized as changes and were not pushed by git.

bitter sun
#

Anyone knows if I can move a workspace to another drive ,without breaking things?

#

I have a 100gb client project that prevents me from installing source build in D:\

#

I want to move it to C:\ to free some space

woven sluice
bitter sun
#

So I can just move the folder and then go to p4v and change path?

woven sluice
#

should work fine yeah

bitter sun
#

Thx!

bitter sun
#

@woven sluice I should press Copy, right?

#

project is 100gb

#

and my disk has around 90gb empty space

woven sluice
#

that's not what i envisioned

#

i would expect 1) move folder in windows, 2) edit workspace settings, 3) done

#

i would hit do not copy

bitter sun
#

moved folder from D to C, edited workspace settings -> workspace root -> select moved folder

#

ok lets roll with do not copy

woven sluice
bitter sun
#

did it

#

thx

woven sluice
lavish roost
#

Hello. Is there someone here with Perforce knowledge? I'm new to Perforce and I'd like to delete / obliterate a folder (accidentally had Saved synced which clogged up all of the available space on my server). I've read that there are commands you can use to do this, but I have no clue whatsoever on how to use those commands

#

I'm using Perforce addon on Digital Ocean (droplet)

silent minnow
#

Hello, does anyone use Perforce with multiple projects? I've got into some troubles after starting working on a second project. Anytime I open the first one both the IDE and UE Editor tell me that they fail to connect to the server unless I manually tell them to use the server for the first project. However this never happens to the second project, i.e. the IDE and UE Editor automatically connect to the server associated with the second project. I suspect that I have some global P4 variables that are set to the second project, and that's the reason why only the first one fails to automatically to connect. If that's the case, is it possible to setup some config file relative to a project, so that it always uses the same connection credential?

woven sluice
silent minnow
woven sluice
#

P4IGNORE=yourignorefilename
P4PORT=serveraddress:port
P4USER=perforceusername
P4CLIENT=workspacename

#

pretty sure p4config takes max priority but not sure

silent minnow
#

Alright, I'll give it a try, thank you

woven sluice
#

you can just go into windows environment variables and remove all of them except P4CONFIG if you want to brute-force be safe

silent minnow
woven sluice
#

Yes

silent minnow
#

Yeah, it works. Initially I thought that Perforce is already setup to use p4config.txt, but it wasn't. Running p4 set P4CONFIG=p4config.txt made it work. Thank you for helping me out 🥳

bitter sun
#

no issues so far

rustic dagger
#

why is it so painful to add a user to my Azure DevOps repo? every single person that I've tried to add in the last 2 months encountered it

#

this is a solution provided by MSFT but it doesn't even work

quaint obsidian
mighty light
#

Obviously with gitea right? Probably gitlabs actually

icy mortar
#

Alright, I've finally had time to go in and clean up my perforce stuff, the issue that I'm currently running into is that my partner cannot launch the game. When he tries to open the project he gets a build failed error. If he opens the project in VS2022 he gets a load of errors. When he tries to regenerate the project files he can't because of permissions (because the .sln is in perforce). I have most things ignored in perforce that I've read I should, but maybe I'm missing something.

Pictures coming below

merry verge
#

don't checkin the sln to perforce...

icy mortar
#

I moved my .gitignore over the .p4ignore but I guess the syntax is a bit different for some things, for example I have !*.sln inside the .p4ignore is there some documentation to how the .gitignore syntax and .p4ignore syntax are different, as I understand that it accepted .gitignore syntax.

ripe heron
icy mortar
# ripe heron https://github.com/mattmarcin/ue4-perforce

I noticed that this one doesn't have Binaries ignored, is it supposed to be included? I always run into permission issues when it's included and I've read to exclude it. For example:

0>Unhandled exception: System.UnauthorizedAccessException: Access to the path 'C:\Development\_\Binaries\Win64\UnrealEditor.modules' is denied.

When trying to run the project from IDE and if I try to use Live Coding

LINK : fatal error LNK1104: cannot open file 'C:\Development\_\Binaries\Win64\UnrealEditor-ArenaGame.patch_0.exp'
merry verge
#

it depends ™️

#

if you want to distribute premade binaries to people so they don't have to build the editor themselves then you may want to submit your binaries. But if you're going to do so you should mark them as +w in the typemap so that the files are always writeable.

#

if people are going to build their own binaries anyway (or you're going to use UGS) then ignore binaries.

icy mortar
#

Okay okay, I see. That makes sense. Last question, why is it that we are ignoring the .sln here when typically practice is to include it? This is my first shared unreal project and most of my experience is in C# so I'm not sure if this is just an Unreal thing, or a C++ thing.

merry verge
#

this is an unreal thing

#

unreal does not operate on sln or vcxproj files

#

it generates them for your convenience so that VS knows how to open the project

#

but they are generated, they contain no useful information for the build process or project.

#

nothing in them is meant to be saved because you can regenerate them as necessary from the uproject and other related unreal-specific files.

icy mortar
#

Ahh, okay. Thanks, that was confusing me a bit. I appreciate the help, getting perforce setup has been a little frustrating. It was extremely simple when we were doing blueprint prototyping but since I've started the C++ project it's been a bit of a headache due to inexperience and lack of straightforward setup instructions.

#

AKA: My git brain can't handle more than git add . 😛

wheat mica
rustic dagger
#

you can make repos without making organizations?

restive mica
#

I have perforce working successfully, got my project copied from the appropriate stream into an appropriate workspace. I can interact with Perforce just fine through p4v

However, when I go into the editor and try to connect, it fails. It also doesn't show available workspaces. This only happens on this computer, the rest work fine.

Does this problem sound familiar to anyone?

#

Never mind, somehow when copy/pasting the server address over, a digit changed???

wheat mica
restive mica
restive mica
#

My P4V server is connected to AWS. It is down like... 10-15% of the time. Anybody know why this might be the case?

sharp ember
#

moving this from #ue5-general :
attempting to use unreal with svn
committed changes seem inconsistent; attempting to commit changes to a level only sends "external actors" which are a list of uassets, the umap file itself does not seem to be recognized, and the level does not update for others
is there some special setup needed to use unreal with svn that I'm missing

ripe heron
#

It's been an unspeakably long time since I used svn, but as a general source control guess, perhaps you haven't told it to treat all of Unreal's file types as binary and that's causing issues?

sharp ember
#

I have not seen this anywhere, I don't think it was in unreal's own documentation for svn setup

#

one would think that'd be an important step

#

I cannot figure out what it's changing or what is supposed to be sent; at first it committed a bunch of things under "external actors"
I made another change and tried to commit that, but then more of these folders/assets spawned as non versioned

#

I have no idea what files it actually sent that were relevant to the level changes

#

it seems that they had their own local copy of the level they were editing, which was being overwritten by autosave
we cannot figure out how to get my version of the level on their end, it's now an incomprehensible uncorrelated mess of files that we can't piece together

#

I thought, okay, I'll make a change, commit that, surely that will cause a conflict on their end which will reveal the relevant files
but there were apparently none related to it, and the level did not change on their end

#

my only guess is there are now two sets of local files for each of us corresponding to our own versions of the level, which are not crossing over so we can't force the level to remain consistent in either direction

#

why is it like this, how the hell does one simply commit a level that the other person then has an identical copy of

#

those files are arbitrarily versioned and unversioned
I have no idea if it's broken or unreal is automagically managing this
I have no idea if I'm supposed to manually version the unversioned files it generates

#

there's... a built in thingy I'm supposed to be using

#

I'm gonna lose it

#

this whole project might be mangled to bits for all I know

#

we've been struggling with incomprehensible file lists and versions and conflicts

#

many things are not cleanly resolving or remaining consistent

#

man I'm gonna scream

#

all I found was things telling me to use external svn tools, I'm using tortoise

#

we may have no choice but to revert this entire project to square one
but the problem is that unreal assets don't seem to work like other engines, ie unity, where you can just pluck asset files out and put them back in
so we can't even export our important assets and port them back in

#

okay, so there is a way to port unreal specific assets, like materials

#

pretty annoying, I'd rather the low tech conveniences in most cases

#

I want an asset to be that particular file, not a definition and reference to a spaghetti web of arcane files across the project where moving any one thing destroys the natural order

#

that much makes sense

#

but what even is a level then
what are all the files that compose a level, how do I know everything is in order and consistent

#

"one file per actor" is an incredibly counterintuitive name for what this is

#

so, there is a way to turn it off

#

and just have a map file be a map

#

I'm not, wtf
why is all this crap on by default

#

I'm not making starfield here

merry verge
#

it's not on by default though?

#

it only gets turned on if you create an open world level

#

which is world partition

#

it's technically usable (but experimental) outside of that but requires explicitly enabling it

sharp ember
#

yeah, we have more than one level designer, and we would want the level to be consistent between us, without local variations of what things exist in it

#

I assume that is just so we can work on it at literally the same time

merry verge
#

among other reasons, yes. Though that's also the purpose of OFPA.

#

two people cannot be modifying the same umap at the same time

#

or rather, they can but someone is going to lose their changes

sharp ember
#

I don't see any option for "open world level"

#

a level is a level

merry verge
#

which may or may not have world partition and OFPA enabled. There are many types of levels.

#

And the open world templates should appear when going to file > new level

sharp ember
#

well, we created a "level" and it's using ofpa, on its own

#

so that appears when doing file > new level
but not when adding a level asset to the content browser

merry verge
#

correct

sharp ember
#

which raises more questions

merry verge
#

you don't get a choice of what template to use when adding via the content browser

#

it's an old (dumb) flow that should be removed/fixed

sharp ember
#

when adding a level asset directly, what template is it using, how do these differ

merry verge
#

regardless, the default seems to be "empty open world" for some reason, but using the file menu will fix that.

#

open world is world partition

#

that's how they differ

sharp ember
#

oh god

#

so adding a level that way uses open world template

merry verge
#

pretty sure that panel outright refuses to show anything in WP

sharp ember
#

ah so if it's already on, I can't turn it off, cool

merry verge
#

you're in world partition

sharp ember
#

so it's just stuck like that

#

how do I get rid of this thing

#

world partition off sesame

merry verge
#

don't think there's an automated conversion back from world partition. Make a new level, copy everything into it.

sharp ember
#

alright so we're going to attempt a new project plus migrating what we have
fortunately we're not in too deep and it's manageable

#

as I understand it
we should connect unreal to the repository and let unreal directly manage svn
and "open world" = world partition = ofpa which requires keeping a set of files for a level consistent, otherwise it's just an oldschool one asset level

#

is it possible to use ofpa without world partition as a separate option

#

I assume that's what this is

merry verge
#

and yes

#

that said: OFPA for "traditional" levels is considered experimental. It's an option, but there can be odd edgecases.

woven sluice
#

Starting an entirely new project because you're having trouble figuring out OFPA on a map is quite a knee jerk

#

oh welp this convo took place like a whole year ago

twilit pewter
#

I'm not quite sure where to put this, so please redirect me if necessary.

I've been using Unreal for a couple years and never encountered this problem: after making a duplicate map, changes in the duplicate are reflected in the original!

I'm using 5.1.1

twilit pewter
hoary rain
#

I'm the sole programmer on my project, and nobody else really uses Visual Studio. I presume that I should be including the Binaries folder in the project, correct?

woven sluice
solemn pewter
#

Any idea how to reduce the number of time UE connect to source control? I have to create tens of IAC for a project, and having to wait for 2-3s each time I create or rename one is killing me.

near granite
#

can you diff Blueprint with git?

#

So will need to use Unreal Editor to merge with specific branch?

#

wait it supports perforce only? @late thicket

#

Authentic?

#

i did saw text version while trying to get it working with perforce...

#

dunno if we'll ever see it or atleast some sorta intermediary generated text for diff purpose only

woven sluice
#

epic made it work one way and said "ok that's good enough, abandon it"

teal bone
#

Every copy and paste action in the editor for any uobject based class is likely to just be a text based thing.

#

As in the same object notation.

drifting citrus
#

For a small 3 person team, is the free version of Perforce worth using? or would it probably be better to just run it with GIT/SVN/Plastic

wide raven
hot moat
#

But the potential for lost work is terrifying 😭

woven sluice
golden tendon
#

Hi guys
Does anyone uses Azure DevOps?

I'm using it with my team, but anytime I try to push some files tracked by lfs, i get the same error:
batch request: unexpected end of JSON inputB/s

It could be a misconfiguration or it's an error on Azure DevOps?

golden tendon
#

yeah but ssh is faster and more secure then https
temporary I opened a ticket to Microsoft and I installed Perforce on my server
I have 2TB configured in RAID2, to I have a lot of space available now..

#

ah
sorry
my bad
I already use SSH

woven sluice
#

Maybe others will but I don't understand, can you elaborate what problem you're hoping to solve? Duplicate files?

indigo cloud
# woven sluice Maybe others will but I don't understand, can you elaborate what problem you're ...

When you add files to the stage area, they get copied to the .git folder (git/lfs/objects...). Dealing with text files is not a big deal, just a few KB/MB. However, things get tricky with binary files, especially larger ones like 10GB or 20GB. After a git add, you end up with double the space on your disk. Sure, you can run "git lfs prune --force" after a "git push" to clean up, but it feels a bit off having to copy, say, 10GB just to push and then promptly delete those copies (not great for your disk's lifespan).

It's almost comicall; if there's little space on the disk, you may find that you won't be able to push the changes because there isn't enough space for the extra gigabytes of copies

runic summit
#

Is there a way to change (or manually refresh) the timeout for requiring a password to be entered for Perforce? I'm trying to setup some macro stuff that involves loading everything (including Perforce) but I need to plan for that case.

woven sluice
runic summit
indigo cloud
#

y

# Auto detect text files and perform LF normalization
* text=auto

# Unreal Engine file types.
*.uasset filter=lfs diff=lfs merge=lfs -text
*.umap filter=lfs diff=lfs merge=lfs -text

# Raw Content file types.
*.fbx filter=lfs diff=lfs merge=lfs -text
*.3ds filter=lfs diff=lfs merge=lfs -text
*.psd filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.xcf filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text

# Anything in `/RawContent` dir.
/RawContent/**/* filter=lfs diff=lfs merge=lfs -text
quaint obsidian
#

and i don't know about more secure, unless you consider an SSH key more secure than a credential

sonic fjord
#

Is there any reason why I shouldn't use GitHub for backups of my project files?

#

I mean e.g. for the "raw" textures, PNG files and so on.

mortal vale
#

I am starting a new project with Perforce as SC, in which I want to have MyProjectDepo/Engine/ and MyProjectDepo/Project/
Sanity check, does it make sense to have Engine end Project in the same depo (The whole depo is just for that project).

Does anyone have a tutorial or a blog post about automating the process to recompile binaries if code is updated? (for both project and engine)

sonic fjord
#

If you have multiple parts of your project, e.g. some PHP files on a web server and the UE project, would you make two repositorys for them on GitHub or store them in one?

mighty light
#

seemingly randomly ive been getting these Git Credential Manager prompts every 10 seconds or so, sometimes more frequently. i dont use Git Credential Manager and no matter how many times i close these popups they keep coming back and they only pop up when the editor is open. is there any way to stop these popping up?

#

ye using git+lfs

#

i cant use ssh because my git server is behind a proxy running in a docker container... its a whole thing

#

ok but even if i put in my username and password it just comes back

#

so it turns out it was because i restarted the git server so my session was closed and i cant login with my password because of 2fa so i needed to use my token. logged in through gitfork and not GCM and its all working now

mortal vale
ancient echo
#

silly question but what's the git command to actually revert an asset from a pushed commit?

#

I tried git revert with the commit ID but I got an unlink of file failed error

ancient echo
#

Oh I thought I’d closed that bp but maybe I needed to close the engine

#

Merge commits?

#

Im not in a team

#

Oh

#

So what should I use when I want to revert from repo?

#

Oh alright.

#

Well I had committed and pushed and then needed to undo

#

Basically I was committing each step I completed, pushed to repo and then I messed something up and wanted to basically revert my local file to that last commit

#

Yeah ik bad terminology

#

Idk the right word

#

Yeah

#

well I hadn’t saved the new changes

#

But it wouldn’t let me undo cause old_man_yells_at_unreal

#

So I was trying to go back in time

#

I attempted to, but it failed

#

Sorry, it’s late, brain slow. 😅

#

To clarify, I wanted to restore a file to a previous version, that was now pushed to the repo. I know how to discard a commit before pushing it, just didn’t know what to do once it’s published to bring the local file back to that state

#

The latter, sorry

#

I’m using VSCode (for source control only)

#

Ah gotcha. I didn’t quite understand what checkout did until now, ty

#

Makes sense

#

Oh nice. But abc123 is stand-in for the commit ID/ hash?

#

Oh ok so if I do git checkout HEAD^ - - file path that would pull the previous commit?

#

Oh neat

#

Ik, just avoiding discord formatting, didn’t feel like ```

#

No, yeah ik that syntax

#

I was just trying not to show it as —

#

Cause that’s what discord does lol

#

I’m on iOS rn

#

Ty for the git lesson

crisp widget
#

Im having an issue where movefile is struggling to move a .tmp file in a multiuser session with perforce. This only happens on a specific computer. This became suddenly a problem (after working for months) and reinstall of perforce + unreal engine did not resolve the issue. I've also deleted saved + intermediate without any luck.

fair patio
#

Hey guys, starting to test UE5 with P4V and I've a issue to push a level in Unreal Engine 5.3 with Perfoce.
for example : when I push a level from home, I've a empty level at work ...
Don't understand what exactly happen 🤔

crisp widget
#

Is there anyway to get a more extensive log from the logfilemanager? Movefile was unable doesnt tell me anything, now that i've tried everything almost im clueless

crisp widget
#

I have a second computer which work perfectly on the multiuser session with perforce, and the computer with this issue can run the editor and check out files fine outside the multiuser session

crisp widget
#

I figured a solution, but not why this happened. The solution was to duplicate the project and push it to perforce. This way its a "new" project. There are some files (temp files) somewhere on the computer i cannot seem to locate which causes this issue.

fair patio
#

I found a way, I need to add and submit everything are in the level to get them
But I'm pretty sure, it wasn't like that in the 4.27, or maybe I missed something to have the same thing automatically in 5.3 @late thicket @crisp widget
In the 4.27, I just needed to add the .umap, and P4V did the rest. How can I do that in the 5.3 ( with the same simplicity I mean )

crisp widget
fair patio
fair patio
#

or maybe a bad first add, fixed when I added all ...

crisp widget
#

If it was a migrate, then assets will stay locally with a question mark

#

otherwise import should have a * save icon on it, save all marks them for add

fair patio
#

hmm maybe that also ?

#

what the hell is that oO

crisp widget
#

World partition as ive understood it

fair patio
#

but you can still work with sub-levels right ?

fair patio
#

I don't succeed to find it in the 5.3 :

#

In this video we take a look at the world partitioning and revision control improvements in Unreal Engine 5.3. We will take a look at the benefits of using it and how one file per actor works. This allows us to work with multiple people on the same plane at the same time.

We use Anchorpoint for revision control, but the features explained in th...

▶ Play video
reef oriole
fair patio
#

yep you haven't "Persistent Level" in a WP level I guess

hushed granite
#

Hello everyone. I am having a big issue with Perforce and JB Rider on Linux :

  • Everything works perfectly well in Unreal Engine
  • In Rider I cannot connect, outputting an error when doing "Test Connection"
  • I have a folder with a .p4enviro file. Then inside that folder I have different Workspaces and eahc one has its own .p4config file
  • When I do echo $P4PORT I have the correct value, when I do 'p4 info' in server address I have server lcal address, like 10.1.1.x and not a public IP or the domain name I used
  • I delete the .idea, .vscode, .code-workspace files... and regenerated them
#

my softwares are all updated

#

and inside RIder it's still trying to find an older username for an old perforce server

#
 doesn't exist.
#

ok well... Rider just ocnnected itself out of nowhere, I haven't even restarted it... just in case something I changed is that I used the full path in source control settings :

crystal prawn
#

anyone having similar issue while running setup.bat?

cedar estuary
#

Just a quick question to anyone knowledgeable about Git;

Is Git LFS the most straightforward way to get past the 100mb file size limit?

#

The issue in this particular project is that the metahuman files are too large, unless there's another workaround for that.

#

@late thicket Interesting. I have very little experience with this stuff myself and am only asking around on behalf of someone else.
When I briefly looked up LFS it, at least at a glance, appeared to be open source and free. So I guess that's not the case then.

#

Ah, I'm beginning to understand the issue now.

#

I think it is Hub, yeah.
double checks

Spot on.

cedar estuary
#

@late thicket I've been told by a few other people just now that metahuman data shouldn't really be kept on repo, but stored elsewhere.

Is this how it would generally be done?

cedar estuary
#

Can't blame you. I have zero interest in it myself, but projects use them, and as an animator I'm gonna have to get my hands dirty....

wary steppe
#

Hi, we have recently installed FMOD plugin in Unreal Engine 5.3.1. In order to make it work in other computers, we were forced to upload the Binaries plugin's folder (after allow it in the gitignore). Now everytime we open the proyect, the source control detects changes in the FMOD Binaries, besides all these files aren't allowed in the gitignore. I can't understand what is happening but is annoying. I tried some new rules in the gitignore, but nothing is working, these bastards always appear after opening the proyect:

frail beacon
#

As a purely solo amateur, is there a need for proper source control? My main concern at the moment is just creating a back-up that I can go back to if something catastrophic happens to the project.
Would that be as simple as saving the entire project folder on a seperate harddrive after every work session? At the very least I want a quick backup if possible before I decide on what host to use for git etc.

sonic fjord
# frail beacon As a purely solo amateur, is there a need for proper source control? My main con...

I worked on a game for about 9 months without any source control, then I learned it. There were 2-3 times where a tool like source control would have been saved me some time, but it wasn't really necessary. Though it's a nice tool. For backups of the project, for the rare times where you need to look into older code and for a general better feeling of safety. Learning GitHub only takes about a day, so I would say it's worth a try. And if you decide for a programming career someday, you get extra points in the application for using source control.

frail beacon
sonic fjord
frail beacon
#

Thanks.

idle ocean
#

Not sure if I am being dumb right now. Using GIT
I have a problem with an asset in my project and tried to checkout to a previous commit. Thing is, plugins have been enabled and .ini files edited which will not change back to the previous state and there will be ton of complaints when trying to open the project.
So how to I actually get the project directory to the exactly same state that it had at the commit I am checking out (tried restore . revert and whatnot but am not getting to it)

fiery pelican
#

This may be slightly off topic, but it's related to source control. When I worked in Unity, I used git as my source control and that also worked well as a way for me to share my projects when I would apply for jobs. Now that I'm using UE, I setup a linux server and started using Perforce. It's been great so far, but I no longer have github as an easy link to share what I've been working on. Does anyone using Perforce have any suggestions as to a simple solution? Obviously, I can always create a portfolio website and thats not a bad idea, but I liked that github could show the consistency of how often I was committing work, shows that I am using good source control practices, gives an easy way to view all of my code, etc.

crystal prawn
#

its release 5.3.2 is that old?

reef oriole
fiery pelican
reef oriole
long mural
#

how do people keep Unreal engine and custom changes with perforce?

silver token
# long mural how do people keep Unreal engine and custom changes with perforce?

Is there more context for this? For the most part it's just the same as all other code/content where it's checked into perforce and modified in the same way as all the non-engine stuff. Deployment issues to non-engineers isn't really any different except you're possibly deploying more (engine exe/dlls) instead of just your plugins and project dlls. But that's a matter of scale and shouldn't matter if you're using an installed or custom engine.

pulsar parcel
foggy wasp
#

To get started with perforce if i'm worried about data loss, I'd need a cloud account?

long mural
#

is the layout

#

do you use streams for the engine

#

or just depots

pulsar parcel
#

Well an engine stream or depot is something you integrate (ie. copy/merge) into your project's stream

silver token
#

We've got a stream for the engine which we import into the project stream.
(not that sswires's setup is wrong, it's not. just mentioning another possibility)

long mural
#

what do you mean by import

#

@pulsar parcel i mean how do you have you the stream laid out to handle merging

#

this is what i have so far, where Main is our working engine

#

but epic-pristine is not a merge up

#

its a copy

silver token
# long mural what do you mean by import

import is one of the stream definition options that allow you to map one stream into another without it physically residing there. So in perforce the game stream would only have game code, but when syncing to the stream you'd also sync the import stream.
As opposed to a copy where you'd see the copy of the engine source in perforce along side the game code.
But that's only if you want it setup that way. I can share more if you like when I get home and can screenshot some of my p4 setup (we've moved away from it at work for reasons that aren't great).

Looking at our streams here at work, the only difference is that we've made our Epic-Pristine a "release" stream instead of "development". That allows it to be a merge up to "Merge-Test". Our "Merge-Test" is then "development" like yours to do the merge-down/copy-up behavior with Main. Maybe that's an abuse of the release stream type, maybe not. It's not an internal release, but it is an Epic release.

long mural
#

yeah i did that

#

@silver token like this

#
import+ Engine/... //UnrealEngine/Main/Engine/...
import Templates/... //UnrealEngine/Main/Templates/...
import+ FeaturePacks/... //UnrealEngine/Main/FeaturePacks/...
import GenerateProjectFiles.bat //UnrealEngine/Main/GenerateProjectFiles.bat
import RunUAT.bat //UnrealEngine/Main/RunUAT.bat
import Default.uprojectdirs //UnrealEngine/Main/Default.uprojectdirs
import cpp.hint //UnrealEngine/Main/cpp.hint
import+ AresGame/Plugins/KaosPlugins/... //KaosPlugins/Main/...
import+ AresGame/Plugins/EpicPlugins/Audio/... //EpicPlugins/Audio/Main/...
import+ AresGame/Plugins/EpicPlugins/Gameplay/... //EpicPlugins/Gameplay/Main/...
import+ AresGame/Plugins/EpicPlugins/Utility/... //EpicPlugins/Utility/Main/...
import+ AresGame/Plugins/CommonPlugins/... //CommonPlugins/Main/...```
#

i keep a lot of the plugins in seperate depots

#

so they can be used across multiple projects

#

i use import+ to allow changes to the engine files, though not sure if thats good practice, but i hate having to fix plugins/change engine code in another workspace

silver token
#

Yeah, I do too. The multiple imports for the engine is a little weird to me, but I see what you're trying to do there and it shouldn't be a problem.
Is UnrealEngine your pristine? or your merged? it probably doesn't matter too much. That seems like a fine setup for the game stream

long mural
#

this is the Main (contains our changes)

#

Epic-Pristine is the pristine version

#

problem is, i want to copy from Pristine to Merge test

#

then merge main into Merge test

#

before copying back to main

#

but this does not seem doable

#

idea is merge test always starts with pristine

#

and we merge our changes into into it, fix them up

#

streams always confuse me slightly lol

silver token
#

You should be able to do what you want. You just need to move the little monitor to the stream that you want to work in. So when you're doing the copy-up from Engine Pristine, MergeTest would have the icon. After you've done the merge down, you'd move back to Main and do the copy-up from from MergeTest.
Is MergeTest supposed to be engine+engine customizations+game? or just engine+engine customizations?

long mural
#

just engine

silver token
#

Okay, let me get back to you. It'll be easier to screenshot my stream setup I've got at home than try to describe or draw it out (poorly).

long mural
#

was using PlasticSCM for years

#

so perforce is still alien to me

pulsar parcel
#

The Unreal stream just got merged on top of the project

#

I would not recommend import(+)

long mural
#

hmm

#

whats wrong with import ?

pulsar parcel
#

The merge conflicts are the difference between your and Epic's changes whenever you upgrade

long mural
#

so you always have a copy of the engine

#

with the project

#

what if you have multiple projects

#

the use the same engine

pulsar parcel
#

Yes, that's what a native build is

long mural
#

thats a lot of merging

pulsar parcel
#

UnrealGameSync also expects that

#

Not really because modifications in the past have been project-specific

long mural
#

i mean UGS works with my current setup

#

not seeing any issues (regarding engine and pulling binaries)

silver token
#

You can import an engine stream into the project stream in such a way so that it's setup like a native project. You don't need them to be within the same stream to get that to work. For a while we had things separated out into their own streams and it worked just fine. We changed because of a snag when doing upgrades and folks got too antsy about investigating so just just collapsed it down, but it wasn't necessary.

silver token
# long mural just engine

Let me preface this by saying I'm not a perforce guru, maybe a little above average. I'm also somewhat new to streams, but this is what I have working that makes sense to me. There's one minor hiccup (the reason we changed at work that I'll get to later), but Ryan@Perforce seemed to think it was okay and I was able to find a reasonable workaround for that hiccup. I'm trying to have a setup that I think would work for a multi-project studio, even though at home I do my multi-projects with a foreign project setup instead of a native one (so they all share the same engine code). Also sorry for the massive text dump about to happen.

#

In this setup I've got the 5.2 and 5.3 streams which are the pristine engine source and release streams which are where my engine modifications are applied. So an engine upgrade consists of making a new stream, not applying the version update on top of an existing one. The theory here being that these streams are shared across multiple projects that when it's time to upgrade, there may be a project that is in lockdown for release and doesn't want to update quite yet. The thing missing from this diagram that I'd do in a studio would possibly be unique project releases for project specific engine changes that may or may not be merged up to be shared with the studio. After creating the pristine stream, I create the release stream (so now it's a copy of the pristine stream). Then I integrate CL's from previous release stream (Starfire.5.2 in this case) into the release stream for the new version (Starfire.5.3). Now I've got an upgraded engine version with my custom changes. This may or may not scale, I'm not sure. On the one hand, engine changes aren't something to be encouraged so the number should be small. But for a large team maybe there's enough to make this untenable. But over time the integrations consolidate. So 5 CL's in 5.2 become a single integration CL in 5.3. And that change plus 5.3 modifications become a single CL for 5.4. The biggest downside here is that anyone that is syncing after an engine update has to do a full engine rebuild. An in-place upgrade may or may not require a full engine build. As a solo developer I don't find this to be a problem as I'd have to do a full build of the new pristine source anyway. I don't really think this is a downside for multiple developers either since, realistically, they'd be doing this overnight anyway.

#

Next there's the RiderLink and Starfire streams which are the same as your plugin streams for the same reason, to be shared across projects. I put RiderLink in it's own stream because it seemed like a good idea and because it has to be located in a specific directory and I wanted that specified in the import instead of in the perforce depot. I still need to work out how the plugins (those in Starfire) would deal with engine releases and lockdowns. I think each project would have a release stream of Starfire similar to what I described for the engine streams so at some point they could just not take updates from the studio-shared stream. But that assumes no one wants to go back in time and try to make a 5.1+plugins build of the game when latest is 5.10 or whatever. 🤷 For work we also had another plugins stream for third party plugins, like stuff from the marketplace or git. Starfire are plugins that I've written so I'm okay changing whatever but third party plugins should be treated more like how the engine stream is handled.

Mainline is then the project stream. It contains only game specific code/content. This is the working stream and imports an engine stream and the two plugin streams. The imports could be + or not. At home, as a solo developer, I go with +. At work I advocated for not. If you go with just "import", approved engine changes can still be submitted without needing a custom workspace if you're willing to just edit the stream definition to "import+" for long enough to submit the change and then change it back to "import". There are other Perforce tools available to restrict checkins if you do "import+" for everything anyway so maybe it's not important.

#

The two staging streams are used for engine upgrades. I don't really need them at home, but I was trying to replicate the hiccup from work so now I have them. In this Mainline stream, the engine import is changed to the new engine version and the Mainline-staging imports Starfire-staging stream instead of the Starfire stream. Changes are made here to get the engine building and tested that are only visible to those that are working in that stream. When that work/testing is done, the changes are copied up and the engine import for Mainline is updated to the new engine release stream.

#

The first hiccup being that with this setup, there's no way to be working in a workspace that P4V (the visual perforce client) allows you to do the copy-up for both/all staging branches at once. For some reason, even though the workspace for Mainline can see/write to Starfire (due to the import+) it won't let you do the stream copy unless you're in an actual workspace for Starfire. That's not really ideal and was a deal breaker at work as doing the copies up from staging as a single atomic checkin was paramount. And doing multiple checkin from multiple workspaces was really cumbersome. However, since then I've found that it's only a limitation of P4V and not Perforce. You can do the copy-up from the Mainline workspace using the command line. Since engine upgrades don't happen frequently enough I'm okay for that one step to require a few commandline inputs.
The other possible issue is that with this exact setup, you run into a case where you can't easily sync backwards in time beyond an engine upgrade since it involves a change to the stream definition and that's not version controlled. This is where sswires' copy setup is definitely superior, but I'm entirely sure it matters. Personally I usually only care about syncing the game backwards a bunch and the engine doesn't matter, but it becomes really dependent on the engine changes that happened like if older code uses functions that aren't there in the new engine version. I think there's a way to solve this and keep the stream setup mostly as shown but I haven't tried anything specific. My first guess would be that the project version of the engine wouldn't be a release stream, but would still be a separate stream from the engine, but I'd need to work out some details there.

chrome badge
#

So I've made the mode to perforce

#

and I have a fairly large project I want to set up with perforce

#

but when I do it gives me errors for like 7 assets

#

but it doesn't explain the error and this completely locks up perforce from doing anything

#

I validate the assets in unreal and they check out perfectly fine

#

these are just simeple animation montage assets

#

I upload them with unreal and visual studio closed

#

I can't for the life of me figure out what is hitching with perforce with these assets

#

they're pretty fundemental animations. I suppose I could replace them but I would really really rather not

#

I'm really struggling to find info on these errors

#

any basic suggestions to try first?

merry verge
#

...post the errors?

chrome badge
#

You'll have to forgive me it will take a moment to get the errors back since i restarted perfroce a few times since

#

ah it's 9 now

#

9 errors reported open for read: G:\PerforceWorkspace\RPGProject\RPG_Tutorial 5.1\Saved\Cooked\Windows\RPG_Tutorial\Content\ThirdPerson\Blueprints\Characters\PlayerCharacter\PlayerCharacter\Animations\Attacks\Sword_And_Shield_Slash_7_.uexp: The system cannot find the path specified. open for read: G:\PerforceWorkspace\RPGProject\RPG_Tutorial 5.1\Saved\Cooked\Windows\RPG_Tutorial\Content\ThirdPerson\Blueprints\Characters\PlayerCharacter\PlayerCharacter\Animations\Attacks\Sword_And_Shield_Slash_8_.uexp: The system cannot find the path specified. open for read: G:\PerforceWorkspace\RPGProject\RPG_Tutorial 5.1\Saved\Cooked\Windows\RPG_Tutorial\Content\ThirdPerson\Blueprints\Characters\PlayerCharacter\PlayerCharacter\Animations\ExtraAnimations\Sheathing_Sword_Montage.uasset: The system cannot find the path specified. open for read: G:\PerforceWorkspace\RPGProject\RPG_Tutorial 5.1\Saved\Cooked\Windows\RPG_Tutorial\Content\ThirdPerson\Blueprints\Characters\PlayerCharacter\PlayerCharacter\Animations\ExtraAnimations\Sword_And_Shield_Idle_3_.uasset: The system cannot find the path specified.

#

open for read: G:\PerforceWorkspace\RPGProject\RPG_Tutorial 5.1\Saved\Cooked\Windows\RPG_Tutorial\Content\ThirdPerson\Blueprints\Characters\PlayerCharacter\PlayerCharacter\Animations\ExtraAnimations\Withdrawing_Sword_Montage.uexp: The system cannot find the path specified. mkdir: streamsdepot/mainline/rpgproject/rpg_tutorial 5.1/saved/cooked/windows/rpg_tutorial/content/thirdperson/blueprints/characters/playercharacter/playercharacter/animations/extraanimations/sheathing_sword_montage.uasset,d: The system cannot find the file specified. mkdir: streamsdepot/mainline/rpgproject/rpg_tutorial 5.1/saved/cooked/windows/rpg_tutorial/content/thirdperson/blueprints/characters/playercharacter/playercharacter/animations/extraanimations/sword_and_shield_idle_3_.uasset,d: The system cannot find the file specified. mkdir: streamsdepot/mainline/rpgproject/rpg_tutorial 5.1/saved/cooked/windows/rpg_tutorial/content/thirdperson/blueprints/characters/playercharacter/playercharacter/animations/extraanimations/withdrawing_sword_montage.uexp,d: The system cannot find the file specified. Submit aborted -- fix problems then use 'p4 submit -c 3'. Some file(s) could not be transferred from client.

long mural
#

seems like you deleted some files

#

you should not be commiting the Saved directory to perforce

chrome badge
#

ok so here's what i've done

#

i used the wizard to get the project

#

then I went to submit it the irst time

#

then those files errored out

long mural
#

the issue is you commited stuff to perforce that should not be in perforce

chrome badge
#

and I was stuck unable to do anything

#

yeah I'm aware

#

I can't figure out how to start clean

long mural
#

so you need to do some cleanup to fix it

#

first you need to mark the saved directory for delete

chrome badge
#

every time I try to delete the files I get the same errors

long mural
#

and remove it

chrome badge
#

it won't remove

long mural
#

ofc it will

chrome badge
#

that's the frustrating part

#

no it throws the same errors

long mural
#

because your submitting the same changeset

#

with the broken commits

chrome badge
#

maybe

#

ok I mark them for delete

#

is there another step to actually delete them?

long mural
#

you can edit your submit

chrome badge
#

thanks

long mural
#

and untick the broken files

#

submit what you have

#

then revert the new submit that gets created

chrome badge
#

hmm ok i'll try

long mural
#

then you need to delete the Saved directory from you repo

chrome badge
#

what does it mean in the output log when it says no files open

long mural
#

and put it in the p4ignore

#

means it cant find the file (was deleted)

chrome badge
#

ah it always says that

long mural
#

because Saved directory is atomic

#

it should not be in source control

chrome badge
#

well i'm confused because i never managed to commit anything

#

i just have all this junk I can't do anything with in the workspace

long mural
#

well, you added stuff

chrome badge
#

but i'll try what you said

long mural
#

to your submit

#

and those file got deleted after the fact

#

without updating perforce

#

hence perforce still sees them as submittable even though they do not exist in your directory

chrome badge
#

ok

long mural
#

which is why its very important to setup a p4ignore

#

and a p4 typemap

chrome badge
#

yeah I realize that

long mural
#

before you even add files to your stream

#

or depot

chrome badge
#

i jumped the gun because I was mislead by a bad tutorial

#

I didn't think I was even at that point yet

#

but I was wrong

#

I have a lot of files and there seems to be a select match button but it never finds a match

#

do you have any advice for using that?

long mural
#

you have teamviewer or something?

#

might be easier to help you by showing

chrome badge
#

I can go on the discord and share my stream

#

in like fort fivus or something

#

thank you so much for helping me

long mural
#

i cant talk (its 4am here)

#

but i can see

chrome badge
#

this is like my first hour in perforce and i'm very lost

#

yeah that's ok we can go to silent study and i'll just stream my desktop to make it more clear

long mural
#

type /stream so you can stream

#

can you see the voice channel chat

woven sluice
#

(And any other files/folders that should have been ignored)

long mural
#

they didnt even commit

#

just needed to revert all changelists

#

changelists were in a bad state @woven sluice

#

how can i hide certain stuff from specific groups?

#

for example artists should not see code, but if i hide code for them, then they dont see the latest binaries in UGS

pulsar parcel
#

UGS does have a sync filters feature though which can help

clear cove
#

I am pushing my UE project (2.3GB) to git for the first time but I am encountering some weird errors.
if someone is willing to help here are the details:
https://forums.unrealengine.com/t/cant-push-2-2gb-project-on-git/1606663

I thank you in advance.

teal bone
#

Are you triyng to push to github?

#

That'll never work unless you've got LFS setup.

clear cove
#

I have LFS

#

Targets : .uasset, .umap, .apk, .obb

pulsar parcel
#

uh you version build artifacts?

teal sail
#

I did a merge & resolve in perforce and accidentally selected the wrong resolve target, how can I back that out and re-resolve?

chrome badge
#

Thanks hojo but yes KaosSpectrum was really patient and helped me a lot last night.

#

so I have a question about stream. it asks for a file path when making a new workspace, I've googled it and it seems to be something to help with sourcecontrol but I really don't understand

#

my team mates suggested we keep it blank and the documentation says if it is blank it'll default to something

#

but if anyone can dirrect me to something to help me understand what this is I would be really grateful

#

also I have looked up how to change workspace names a few times and every time I do it says perforce has a simple option to right click and select rename ont he workscpae or no way to do it at all in some versions

#

that doesn't show up when I right click but I am using the latest version which implies there is a way to do it

#

it's not a big deal but the generic names are not very descriptive

#

maybe it's a setting I have to select somewhere as the administrator?

woven sluice
#

best if you show screenshots of the UI bits you're wondering about

stable tendon
woven sluice
#

i kind of thought the merge & resolve action billy's talking about might have been modifying his local uncommitted work? if so i think it would be gone?... not sure though :\

teal sail
stable tendon
#

🤘

chrome badge
#

this is what I mean by stream

#

leaving it blank doesn't seem to cause any issue perse but I have no clue what it is about

woven sluice
#

i'm trying to ask you what do you mean by "file path"

#

is your depot a streams depot or a classic depot? (do you know how to tell)

chrome badge
#

oh as in clicking browse

#

I don't sorry

#

I assume classic

woven sluice
#

streams depots have two squiggly lines on them

chrome badge
#

oh it is streams then

woven sluice
#

classic depots just look like a few stacked discs

chrome badge
#

i have no idea where I would have chosen that sorry

#

my understanding is streams is a different version of versioncontrol with extra options?

woven sluice
#

you choose it when you first create teh depot, it's a "serious decision" ™️ as you can't really practically convert between the two

chrome badge
#

I didn't really understand the perforce documentation on it

#

I see

woven sluice
#

yeah, don't sweat it's confusing when you're new

chrome badge
#

thank you

#

are there major trade offs?

#

it seems to be working as I want with streams not sure what the browse option is looking for

woven sluice
#

streams are a little more powerful to administrate. classic are a little more dumb & simple

chrome badge
#

that was what the documentation made me think

woven sluice
#

when you click browse it should list streams that you can "subscribe" to, that this workspace should reflect

chrome badge
#

ah ok

#

and leaving it blank is ok?

#

my team was wondering about that earlier

woven sluice
#

tbh i've never not used it for a streams depot

chrome badge
#

ah well I see now, it does have only one option

#

I beleive i read somewhere that it defaults if empty

#

so my wild assumption is that leaving it empty is the same as selecting the singular option

woven sluice
#

well you have a manual workspace mapping typed in in the bottom

#

mapping //depot/... to this workspace name

#

i guess it makes sense that would result in the same under-the-hood mapping as picking the stream from the nice UI

#

or does it...

chrome badge
#

yep I just foudn a way to confirm it

#

so leaving it blank defaults to mainline so it's the same as if I did pick it

#

that's a relief at least

#

I checked by going into the workspace I created without entering anything's information and it was the mainline 🙂

#

and so I take it that stream at change is the manual spot you were talking about?

#

at least I can tell my team with some confidence about that part of the UI next time

woven sluice
#

just ignore stream at change, i think that option is for some weird way to sync to old stuff

chrome badge
#

ok ok cool

#

thank you so much for the answers

#

I'm watching the linked tutorials and trying to read up on stuff but some skip right over this stuff haha

#

do you know anything about renaming workspaces?

#

it's not a big deal but I'd love to know how

#

oh heck yeah I found the dark mode sweeney_activate

clear cove
#

Yeah I'll try that, but like it's just 2.2GB that's not big enough, many people would have done that many times in the past but I'm not getting it.

#

I don't get it, How?

clear cove
long mural
#

@woven sluice im on the epic p4, i set it to main (cause i want to pull a couple of plugin changes)

#

but its puttling Release-5.3

#

p4 fstat -Olhp //UE5/Release-5.3/Engine/Build/PerforceBuild.txt //UE5/Release-5.3/Engine/Build/CompileShadersTest.xml //UE5/Release-5.3/Engine/Build/InstalledEngineBuild.xml {10 more items}

woven sluice
#

sorry I'm not on epics p4, no experience

long mural
#
    1 warning reported
    //UE5/Main/...#head - file(s) not in client view.
#

but my workspace is on main stream

#

so odd

#

you know why it would say files not in client view

woven sluice
#

Definitely not off top of my head :/ usually that's from some mismatch of the mappings in my experience but I though that common user error issue usually goes away when just choosing a stream...

long mural
#

yeah

#

its very odd, ill just create a new workspace and nuke this one

#

but even so, its odd

#

now its pulling from Main

#

so odd, oh well, my workspace must have been borked

woven sluice
#

Isn't this the second weird "just reboot" error you've had in the last couple weeks

#

Lol

long mural
#

perforce hates me ok(?)

#

lol

crisp widget
#

Can long paths be an issue with perforce not being able to rename or save assets?

#

Seems weird, but suddenly we had a problem after moving assets to a spesific folder. Its struggeling to save in both normal editor, and a multi-user session, where it says cant save in persisent sandbox mode

#

its only happening for a few assets

foggy wasp
#

I'm unsure if this is an interaction between Github or Rider, but sometimes I'll delete things from the level, and the next time I load the game, they'll be there. Just makes me worried about corruption or a bad workflow somewhere?

long mural
#

This is source control channel @lofty robin

#

#cpp if its c++ related

lofty robin
#

sorry I didn't really know where to go Thanks

jaunty crown
#

I have a stream 1 and a task stream 2 (copy to stream 1, merge from stream 1). I'm trying to make workspace views (workspace 1 and workspace 2) for these streams that exclude a particular folder in the depot. I edited the mapping in workspace 1 to exclude the folder, and this works well. However if I do the same in workspace 2 for the task stream, I also lose in my workspace the files that are in stream 1 but not in stream 2.
I've also tried to include all the files from stream 1 in my view for workspace 2, but then I get an error when reconciling File#1 isn't in revision table

(this is in P4V)

jaunty crown
#

I had to ignore the folder in stream 2, now it works

floral linden
#

I am using perforce and am setting up the .p4ignore file
should i be ignoring the *_BuiltData.uasset files and the Developers/ and Collections/ folders?
i'd also like some reasoning to see for myself if i should ignore for my own use cases.

floral linden
#

what about the Developers/ and Collections/ folders?

silver token
mortal vale
#

Would anyone be a hero and shared .p4ignore that works for engine? I am converting the UE5/.gitignore but there are way too many exceptions where p4 interprets it differently.

floral linden
silver token
#

I'm not aware of any reason they shouldn't be included. We've never run into any problems having collections in perforce on our projects.

floral linden
#

understandable

#

do you include _builtdata.uasset when you check in?

silver token
#

I'm pretty sure we do

floral linden
#

alright i think that sets me up

woven sluice
#

making it a little less irksome to have them in source control at all

floral linden
long mural
#

@mortal vale hmm

woven sluice
#

also asspain...

triggername //....cs "scriptA"
triggername //....h "scriptA"
triggername //....cpp "scriptA"
triggername //... "scriptB"```
you would *hope* that if you submit a non-code file it wouldn't match the first three and it would execute scriptB. but nope it only executes scriptA.

bleh

trigger1 //....cs "scriptA"
trigger1 //....h "scriptA"
trigger1 //....cpp "scriptA"
trigger2 //... "scriptB"
trigger2 -//....cs "scriptB"
trigger2 -//....h "scriptB"
trigger2 -//....cpp "scriptB"

this does that
mortal vale
#

In the UGS documentation Epic causally mentions *Any of our release streams with the naming convention //UE/Release-4.xx should be fine to copy from.*
Any idea where/how would one get an official release stream of UE into my perforce so I can copy files to my mainline?

mortal vale
#

Also it is mentioned in one of the Unreal Fest talks.

wide raven
mortal vale
silver token
wide raven
mortal vale
wide raven
#

I would just go with the github route. We haven't actually bothered with the Perforce route ourselves, since we only have a couple of small changes to source

#

Git is great for pure code projects anyhow

mortal vale
mortal vale
#

True, but they could at least provide .p4ignore publicly. (which according to the docs is not in git source but is in p4 source)

woven sluice
#

if you know how perforce works it's pretty obvious that they can't just make it a publically accessible front like github.

quaint obsidian
#

For any of you using UEGitPlugin or PBSync, we are now on UE5 internally, which means we can start properly supporting it. We had some limited support for UE5 before, mostly from user reports and other assistance from the community but now we can focus on greatly enhancing our tools by taking full advantage of all the amazing technology introduced in UE5 and beyond. Hope to see this come to fruition over the next few months.

crisp widget
#

This error is happening suddenly while using multi-user and perforce

woven sluice
crisp widget
#

The same issue happens on some assets outside the sourcecontrol + MU session.
Just a normal editor session has trouble moving or saving certain files

fair patio
#

Hi guys, I would like to use Perforce to help me to transfer UE WIP files from home to office and vice versa.
I found the shelves options and I think it is a good way to achieve this, but I am encountering some difficulties.

For example, let's say that I put files from my home on shelve to retrieve them from the office, the workspaces will be different, so I don't see the files from my office even if I have the same user.

So I was thinking of using "change ownership" to be able to do this, and it works : I can see shelve files
But I don't found how to take files shelved at the office, even if I can see them in P4V

Can you help me ?

pulsar parcel
fair patio
#

yes, it's like that I can see files to shelve when I change the ownership to select the workspace of the office
But how I can "get" the shelve file at work ?

#

with a unshelve ? 🤔

pulsar parcel
#

show the unshelve window because I don't have p4v in front of me

fair patio
pulsar parcel
# fair patio

So that should work unless you're working in different streams (then you map the streams). what is shown to you when you attempt the unshelve action?

fair patio
#

I've a error, try to create 10 times a file already exist

#

Ok works with a "new" file ( I mean with a file not added/submited yet )

#

now I need to test and make it works with files already versionned ( added/submitted ) ...

fair patio
#

after several tries, it doesn't seem so simple...

#

I've still this kind of error ...
1 error reported rename: failed to rename D:\P4\*****\*****_UE4\Plugins\******_sandbox\Content\BP_TEST_SHELVE1.uasset after 10 attempts: Cannot create a file when that file already exists.

#

I think I made mistakes in the commands order, ex: I need to checkout file at the office ? without checkout I can't write and update the file ...

#

aaaaaaah ... maybe UE needs to be OFF !

#

it was that ^^

#

I'll make some other tests, but seems was that

wide raven
wind dew
#

Hi, I'm using git+github desktop+azure devops for revision control, and I've already had one project set up successfully. However I'm trying to set up a new project now, but I'm running into issues I'm not sure how to solve. I made a git repo from the project folder, copy pasted the things from azure to git cmd, made the first commit, then im trying to push it, it uploads the entire thing (I can see my internet upload bandwith working) but at the end it gives me this error and nothing shows up in azure repo. Any idea what this might be? Thanks!

wind dew
#

what a seemingly random thing to do :D I'll try it, thank you

#

oh yeah that worked. Okay then 😅

faint cairn
#

When using Perforce and the build in plugin, can I somehow access the current changelist number?

#

I assume via the ISourceControlModule and the ISourceControlProvider somehow?

silver token
# faint cairn When using Perforce and the build in plugin, can I somehow access the current ch...

What do you mean by “current changelist number”?
UGS updates that in the Build.version file when you sync to a change list, but other than that there’s not really a concept of “current”.
You’d have to examine every file in your workspace to determine the cl of the have revision and use the largest.
But even that is iffy since you could have skipped change lists with an individual file/cl sync (ie not syncing the workspace to latest).

pulsar parcel
#

I suggested p4 changes -m1 #have

silver token
#

Does UGS only work for source builds? Somehow I never thought that was a restriction.

faint cairn
#

If that project would have the setup for it, I would just feed it the number in some build step on the build machine

#

UGS doesn't even work with Source Builds if you aren't also uploading the Build to your damn P4

pulsar parcel
#

UGS works with native source builds specifically

covert glade
#

hey guys , i made a commit yesterday there were about 17 files changed and on of it that i removed .uroject accidently , and pushed that commit , can somehow leave 16 files with changes and remove .uporject deletion ?

#

it is off ((

#

or i got to checkout to this commit first ?

#

it says this

#

got it than u very much ❤️

thorn halo
#

Anyone here used "GitCentral" for Unreal? The plugin? I'm wondering if it is better than the built in git one? Since currently I'm using SourceTree, but if I can it would be nice to have it all in Unreal for simplicity.

pulsar parcel
#

seems a bit overkill, I think the only bad thing about the built-in one is that it isn't LFS-aware (at least on 4.27 which I'm presently stuck with)

keen wedge
#

I tried opening my project from my work computer today - using Perforce and never had this problem before but I get this message. I am using 5.3.2 on both pcs but it says the engine release is different, assuming this is a Source contgrol problem but not sure?

#

Tried reinstalling/updating my engine at this end, as far as I know it is up to date on the other side also

reef oriole
reef oriole
keen wedge
#

Hmm - weirdly it works fine and is not corrupeted on my home version but my office version seems to be corrupted. have tried redownloading/resyncing the project but get the same result - what do you mean by sync binaries?

haughty yoke
#

I know its absolutely not ideal but im running everything on a real budget. But would this work for a perforce server?

#

Slow is better than nonexistent right?

teal sail
#

Slow is better than non-existent, yes.

haughty yoke
#

That gives me calculations. For something i dont really know a lot about. In the team im the "pay for everything and manager/marketer" not really good with code. My main question is really "will it run" how much it stuters is a question for later.

teal sail
#

It will run

#

I don't think the equations are difficult to understand for a lay person

haughty yoke
#

Its more idk how much space it will take and ram used, total asset space atm is 67gb, and theres 2 devs on the project. With "spare time" development level work being done, like 20 hours a week at most

#

Atm they are simply trading files on a google drive shared folder

teal sail
#

Start with what you can afford and expand if needed

#

Main bottleneck will probably be disk space

haughty yoke
#

Idk isnt it free for under a certain size and generally better?

#

"Better than google drive" is the task atm

#

Is there a time limit?

#

Anything i should be aware of with devops? Good stuff is very rarely truly free

#

And im out of my depth. Is it something bad that my devs couldn't likely find a solution to or is it more "special case" thing?

#

Ah. But from the guy managing things who isnt a coder at all perspective. I just pay for shit. They code it. And then get 60% of revenue....

#

Im dumbdumb at code like to a comedic degree. It doesnt mix in my brain very well. Im better at "we hit a wall financially, how do we get around it"

#

Actually ive upgraded that to 3MB/s from 0.3, so its still slow, but its not like pathetically slow anymore. Though when away from the 4g hotspot im stuck on my phone which gets 15KBs

#

Legally registered business saves me again

#

It make zip nadda income atm but its saved me in so many ways

#

I do have a new budget... my single $30/month patreon Fan.

#

Being a prolific worldbuilder has perks

#

Yes which is why i ask here first

#

I get other income but its not steady. Woodworking makes good money but takes a LOT of time and effort.

#

Get $600 but spent a month making it

#

Then wait 3 months for next order

iron bronze
chrome badge
#

So I have this error in rider, I understand that the roots are not matching in perforce but I don't actually know where I would go to change that in perforce?

#

struggling to find the answers on google too, any links or if you know where to change this let me know, thank you

chrome badge
#

ah I'm thinking this is due to my team setting up our perforce incorrectly

woven sluice
# haughty yoke I know its absolutely not ideal but im running everything on a real budget. But ...

this server is a nitrous oxide fueled dragster for perforce for ~5 people (i.e. staying in the free tier)

what laura said though; use whichever you/your team has any preference towards, git or perforce

if you host something off-site (e.g. by using azure devops) your other team members might be happier about first sync and any future large transfers though, if you're still on slow internet... that might be by far your most important consideration

haughty yoke
#

yeah offsite is kinda required

pulsar parcel
#

Rider uses .p4config

silent minnow
#

Hello, does anyone know how the UE Editor determines what P4 config it should be using?

I have multiple projects, and one of them is trying to use a config of another project. I have a separate config for each project under their root directory, yet the first project it trying to access the second config anytime I select "Use P4 Config" in UE's "Revision Control Login" window.

wide raven
# silent minnow Hello, does anyone know how the UE Editor determines what P4 config it should be...
Epic Developer Community Forums

It appears that the Revision Control setting for Perforce to Use P4 Config doesn’t actually read the config file. I have my environment variable P4CONFIG=.p4config. When I open Revision Control in the editor and check this box it uses defaults like my computer username, computer name as the workspace and perforce:1666 as the server even though ...

silent minnow
wide raven
silent minnow
#

How do you set up the config path? What's the generic filename? .p4config.txt?

wide raven
#

you can see your current settings by doing
p4 set

#

let's see how was the set

#

p4 set P4CONFIG=p4config

silent minnow
wide raven
#

the naming is completely free

silent minnow
#

Yeah, I get it

wide raven
#

it can be a path, or it can be like .blabla

#

btw, another useful command to see your setup:
p4 info

silent minnow
#

It shows the config that is used for the other project, even though I'm under C:\Users\Name. Is it possible that I somehow setup it to be the global one? I recall making it so that it would read the config from the directory the commands are run from

wide raven
#

Give it a fixed path for now I guess

#

it's not the optimal solution but it might be ok for now

#

p4 set P4CONFIG=<yourpathtoconf> should be global I believe

silent minnow
#

It's not going to be, as I work on both projects simultaneously. It's going to cause the same issue on the other project

wide raven
#

I see I see

#

I'm sure this must be solved, can't be something that would have gone unnoticed for years

silent minnow
#

I might have done something to make config for the other project global. However, P4CONFIG is set to .p4config.txt, it doesn't have anything else. Is there some other variable that affects the config path?

wide raven
#

yes, it's good to make sure your p4config file has correct p4client

silent minnow
#

It shouldn't matter since the identified config is wrong

wide raven
#

hmm

#

It's been a while since I set these up on our builders, and there we have a generic
P4CONFIG=.p4config
and it seems to work ok

silent minnow
#

Yeah, but, as you said, the naming is free. However, I'll give it a try, maybe Unreal Editor hardcodes it rather than read the variable, that would be extremely weird, but it's worth a shot

#

Nope, nothing changed

#

Also, removing the config for the other project doesn't seem to affect p4 info in any way 🤔

#

As it turns out my p4user, p4client, p4port were set accordingly to the second project. Setting them to nothing makes "Use P4 Config" work exactly the same way as in the forum thread

pulsar parcel
#

also worth considering if you update environment variables then you'd have to restart the editor

#

env vars don't magically propagate when you update them

silent minnow
pulsar parcel
#

environment variables are used from when the executable launched

silent minnow
#

But how would you explain my statement?

wide raven
#

"by enabling "Use P4 Config" might refresh them

plucky pewter
#

Hello could i get some guidance on source/revision control in UE5?

#

didnt find it

plucky pewter
#

i made an initial comit of my project in git.

#

im stuck

#

how do i load it up in github desktop? Am i supposted to do that?

#

i mean rn i should be able to just do commits and push/pulls

#

(well its a solo project so just pushes)

plucky pewter
#

please help

#

nvm got it

pulsar parcel
#

I'm not sure why you'd use GitHub Desktop, the WOATed Git GUI client

#

SourceTree is acceptable, Fork is better

high grove
glacial gate
glacial gate
#

Thank you for the reply
Any fixes for this?

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

glacial gate
#

I tried using Git LFS but I got the same error and I'm not migrating repositories

#

Idk I might look at it tomorrow

glacial gate
#

If I shouldn’t be using Git LFS, does that mean there aren’t any issues regarding pushing larger files to a repo (Like game assets) with just Git + Azure DevOps? How do I push files larger than 5GB without Git LFS? I don’t know much about version control but if I could establish a workflow (E.g. Git + Azure DevOps for cloud storage, then Git terminal / Visual Studio Git) then I could learn from there. Is there anything else I should know about?

indigo cloud
glacial gate
#

Thank you for the info

teal bone
#

mygamelaunch.zip

woven sluice
#

mysmoldatatableofcachedworldlinetraces.uasset

#

ez, next question

glacial gate
#

Yeah I also wanted to see if Azure Repos could be used as a free cloud storage option for just random files on my HDD
Also would you mind explaining why you shouldn’t use Git LFS unless maybe for file locking?

late thicket
glacial gate
#

Thank you very much, appreciate it

crimson lynx
#

Is there a Plastic command that will remove a folder I should never have versioned in the first place from the entire history?

reef oriole
#

obliterate was only available in previous very old version of Plastic SCM

reef oriole
# crimson lynx Is there a Plastic command that will remove a folder I should never have version...

you can use either the purge command, or alternatively the archive command

  1. the first one is to permanently delete some revisions, but it will try to do it safely and won't allow to remove some stuff needed by other branch
  2. the second one can be use to remove revisions and save them on an offline archive disk; it has less safety so it's more powerful in the end https://forum.plasticscm.com/topic/23693-how-to-free-up-space/
    I have not tested it myself to remove entire folders from the history: It could be helpful to ask support directly, some of them are expert users!
Plastic SCM Community

Right now, my cloud is quite large (130 gb), so I'd like to free up some space. Would it be a big difference if I delete some old changesets? Or it wouldn't be too noticeable?

crimson lynx
chrome badge
#

So my team and I made a primary development stream and then made several smaller streams for the specific things each of us is working on.

I'm able to commit my changes to the stream I'm working on and it is a child of the development stream but the team and I can't quite figure out how to commit/move the changes into the top dev stream

#

merge sees nothing and copy says it does something but it doesn't actually when we check the files.

#

maybe we're missing something? or does it need some more set up?

#

ok it looks like we found a way after some tinkering, we opened the stream graph and maerged down and copied up from there and it seems to have worked.

restive mica
#

I have perforce setup on an AWS server.

I am unable to connect about 25% of the time. Does anybody else have these issues? It is beyond frustrating!

wide raven
restive mica
neat grotto
#

Hey, everyone. I may conduct an interview with the developers of Diversion, a new version control system that just launched and purports to be great for game development. If you have any questions you think I should ask, please let me know.

#

I have evaluated it myself with Unreal and think it has a long way to go, but I would like to hear from others.

pulsar parcel
#

yeah, not sure I would really trust a brand new player in the VCS market. it's software you're entrusting with your entire project and its history afterall

silver token
#

the website doesn't really fill me with confidence, but it's a little bare of details. I couldn't come up with questions right now cause of how vague it is.
Or maybe I'm just institutionalized by perforce after all these years and can't see any source control clearly except through that lens.

#

I also don't see how you get major studios on board without a self hosting option. They're not going to want to store proprietary/NDA'd stuff on someone else's server, which is all "the cloud" is.

pulsar parcel
#

yeah I didn't like that website much. their UI looks reminds me of github desktop (lol), still talking about the cloud as this mysterious thing in CurrentYear, support link is a discord invite, docs are exceptionally thin

#

it talks about git compatibilty in a lot of places so... is it just git with more competently implemented locks?

silver token
#

well, something + cloud = $$$, right? Add cloud and that makes you a disruptor, right?

pulsar parcel
#

so the vibe I'm getting is that this is just git with a custom backend to make things like locks work, and all the "scary" details are abstracted away from you

silver token
#

don't forget, to get people to store stuff on their servers so that they can probably do "AI" things with it while you're not looking

frosty pecan
#

Hi I deleted a username and made a new one but keep getting this error on Perforce. A new workspace was made and build redownloaded. Any ideas what could cause it? Thanks!

edgy fiber
pulsar parcel
silver token
pulsar parcel
# silver token well if ubisoft says we can't own our games, maybe they shouldn't own the data t...

Gotta love the TOS

  • Therefore, by posting Content using Service you grant us the right and license to use, modify, publicly perform, publicly display, reproduce, and distribute such Content on and through Service.
  • The Services are not intended to be used as storage, backup or archiving services. It is your responsibility to back up your Content and you are responsible for any lost or unrecoverable Content.
  • standard liability waiver (NEITHER COMPANY NOR ANY PERSON ASSOCIATED WITH COMPANY MAKES ANY WARRANTY OR REPRESENTATION WITH RESPECT TO THE COMPLETENESS, SECURITY, RELIABILITY, QUALITY, ACCURACY, OR AVAILABILITY OF THE SERVICES.)
  • We may terminate or suspend your Account and bar access to Service immediately, without prior notice or liability, under our sole discretion, for any reason whatsoever and without limitation, including but not limited to a breach of the Agreements.
  • We reserve the right to withdraw or amend our Service, and any service or material we provide via Service, in our sole discretion without notice.
silver token
#

jesus christ. why would anyone use this under those terms?

pulsar parcel
#

"The Services are not intended to be used as storage, backup or archiving services" what the fuck is it then

#

for most studios, I can't imagine this getting past a legal review

#

that might change if there were self-hosting options

silver token
#

yeah, maybe

twilit valve
#

Hello, 👋

I have a question about sharing .INI files via revision control. Is it possible to sync colour themes through Perforce? It would be great if all the artists had the same, synced colour palette to choose from.

I tried moving /Saved/Editor/Config/EditorPerProjectUserSettings.ini to /[Root]/Config and adding it to the depot but that didn't seem to work. 🤔

Any advice would be appreciated.

Cheers.

woven sluice
silver token
# twilit valve Hello, 👋 I have a question about sharing .INI files via revision control. Is ...

The ini's that are in Saved/ are always generated locally from the Base and Default ini's.
Through ini's you can, at best, set the default value for something but, especially for user settings, there's no way to make sure they keep them.

Step 1) Create (if needed) and open DefaultEditorPerProjectUserSettings.ini in /Root/Config
Step 2) Copy the value from the Saved/ ini that you want to be everyone's default into the /Root/Config version
Step 3) Submit to perforce
Step 4) Get everyone to delete that entry from their Saved/ ini or get them to delete the whole thing

I recently did this to get everyone into the right settings for LiveCoding to hopefully prevent some repeat blueprint corruption

twilit valve
silver token
#

It should be pretty easy to test locally since you just delete your values in the Saved/ ini and you should see the settings from the Default when you start up your Editor

twilit valve
#

I guess Unreal looks for settings like this in /Root/Config first before moving onto /Saved/Editor/Config?

silver token
#

I'm not sure the order that it looks, only that Saved takes priority over Default. The Defaults are used to build up the Saved when they don't exist and then it just uses Saved from then on (or until you delete them)

twilit valve
#

Yeah, and Unreal will never write to the Source Controlled file in /Root/Config. Any time we need to update, we have to manually copy it all around again, eh?

silver token
#

It depends on the config. Probably not for user settings but there are plenty of the Project Settings that have a prompt at the top telling you that you can (or that it has) checked out the default ini.
This is where the "Config" and "DefaultConfig" class and property markup come into play.
As well as what actually types are marked up for config values.

twilit valve
#

Thanks again for the info. We were able to copy our palettes around the team this way. 🙂

woven sluice
#

dang that might be worth something on the marketplace...

woven sluice
#

hold my beer

merry verge
#

Just a normal day with OFPA

woven sluice
#

wonder how i can get my perforce server to go GottaGoFast ... i just ran speedtest on it and it does 300 down / 250 up, but i've never been able to get it to exceed 100/100 when i submit or pull from perforce (with parallel sync on with some random settings that seemed like they might make enough sense). or maybe this is just all that a little 1 cpu VPS can do.

cyan jay
# woven sluice wonder how i can get my perforce server to go <:GottaGoFast:512895102721720340> ...

There's a lot to consider. You could roughly profile the CPU and Memory usage while syncing/submitting to see if there's a bottleneck. Disk speed is v important too.

Can compress transfers for better bandwidth usage, but higher CPU/Mem cost both on client and server.

If it's network bound then parallel sync/submit can help. Can also improve TCPIP performance with server vars like net.tcpsize

This article has a few things you can try: https://articles.assembla.com/en/articles/1804524-speed-up-your-perforce-repo-with-p4v

#

net.autotune also can supposedly help, but we had to disable it as it caused some sync issues with linux server and some of our windows clients. (this was a few years back maybe things have improved on the Windows side now).

jaunty hornet
#

Ok, so moving a workspace from one drive to another actually means downloading everything rather than copying between drives

pulsar parcel
#

if it's a like-for-like copy, move the workspace first, then edit the workspace in p4v to point to the new location

jaunty hornet
#

Oh, I followed a different method

#

I edited a workspace to change its root, then P4V prompted me if I wanted to copy the content to the new location

pulsar parcel
#

oh yeah, don't do it. do it in that order and when P4V prompts you just don't do it

jaunty hornet
#

And now it's downloading everything from the server rather than the old location

#

I just googled it and followed the first stackoverflow result 😅

#

There's the P4V way, and there's the better way apparently

pulsar parcel
#

always, but I'm surprised it didn't just do a file system copy, but there ya go

#

because the method I mentioned shouldn't actually touch anything on the server

#

other than maybe the workspace record, but it shouldn't change the have list

jaunty hornet
#

There's a lot of stuff that's surprising with P4

#

Though I did manage to succesfully migrate our server so that's something

austere saddle
#

where can i see if i got source control

silver token
austere saddle
#

ANY WAY

silver token
#

if you don't have source control and you didn't save a previous version somewhere else, no not really.
You might have some auto backup saves for specific assets but not for your project as a whole.

foggy wasp
#

So I've got Git in Rider
And Git in UE Editor
How do I streamline this

#

Seems like they only see the things relevant to themselves? or maybe I have to tweak some settings to manage from only one place

wide raven
neat grotto
hollow pumice
#

I got a git related issue (I think?) when I try to build my project

#

have anyone encountered something like this?

#

important thing - I got this after porting my project from UE 5.0 to 5.3

mortal vale
#

What files from Engine/ should I version control/push to Perforce?

pulsar parcel
mortal vale
# pulsar parcel With a source build?

I git pull the engine source, because I don't have access to the Epic's Perforce streams. The question is about crafting p4ignore, which I am still a bit confused about. What exactly do I need to include to make stuff like UGS work.
Should I include everything that is in the Github repo and nothing else? (aka, before I run Setup.bat/sh)

pulsar parcel
#

The p4ignore doesn't differ much iirc. Usual rules like no Binaries, Intermediate, Saved, etc

mortal vale
# pulsar parcel With UGS, it's everything but build products

My apologies, that still doesn't make sense to me. Why would I need to put dependencies downloaded in the Setup.bat stage into perforce for UGS?

  • Artists get precompiled binaries
  • Programmers run the Setup.bat -> GenerateProjectFiles -> Compile UE5 anyways, don't they?
pulsar parcel
#

That's pretty much what you get from Epic P4

chrome badge
#

So I'm having a strange issue

#

I have two perforce connections I use regularly

#

usually they are fine but today rider is connecting to the wrong connection and the wrong workspace

#

I'm not sure how to manually force it to connect to the correct workspace

#

or why it changes

mortal vale
pulsar parcel
mortal vale
mortal vale
chrome badge
#

um where would I look for that variable?

pulsar parcel
#

I've always had a clean engine in P4, so the process has usually been updating the git checkout, running Setup.bat and then reconciling

#

Then the clean engine gets copied (first time) or merged (every other time) to the project stream

mortal vale
#

Thanks for the patience with me

mortal vale
#

Try executing this in command line

#

It should print the current P4CLIENT

chrome badge
#

ok it looks like it printed the correct path

#

in rider it says those values are not set though

#

"use environment values
P4CONFIG environment values are not set"

#

I think this is the issue?

pulsar parcel
#

if you use p4config then P4CONFIG will need to be set to the filename you'll use for your p4config

chrome badge
#

I think I have to make a p4config

#

how owuld I go about doing that?

pulsar parcel
#

it's just a text file

#

each line is just the environment variable (eg. P4CLIENT) and its value

chrome badge
#

hmm ok

#

I'll look for an example then

pulsar parcel
#

it's not particularly hard to make a text file with P4CLIENT=my_workspace_name

chrome badge
#

this is just new to me idk what it looks like

#

is it just p4config.txt then I put that code in?

pulsar parcel
#

yes if P4CONFIG is set to p4config.txt

#

and you may have to restart your IDE after setting P4CONFIG if you haven't already

chrome badge
#

ok

#

so I'll just make that file then use "set p4congif" and then put int he files name

#

Environment variable P4CONFIG P4CONFIG.txt not defined

#

maybe i need to do something different to set it?

#

if anyone has an article to share on this i'd appreciate it a lot

wide raven
#

after you have set it, try these commands

p4 set```
while in your workspace root to see that everything looks good
chrome badge
#

ok so actually

#

now it looks like maybe I do have one set already?

#

when I put in p4 set it spat out a list like the one you showed already set with all my info

#

now i'm wondering why rider can't see that then

#

damn yeah rider always says no config file

#

then paths to the wrong perforce workspace

#

and I really am lost how to fix this

woven sluice
# chrome badge and I really am lost how to fix this

i didn't read the convo too carefully but... ignore using p4 set for setting up your work machine on windows, it's dumb. just go edit your environment variables. make sure the only P4_______ one you have is P4CONFIG

#

then all you have to do is have that file in the root folder of each project, set up e.g. like Karma's example

#

in Rider, Settings, Version Control, Perforce, config settings "Use environment values"

#

and Rider, Settings, Version Control, Directory Mappings, add the same project root folder set as Perforce

#

look at me blurring everything out but still leaving my username blatantly obviously at the top (oh well, i was only really blurring it out to highlight the one important line)

chrome badge
#

oh just saw this

#

sorry if this is a noob question but how do I reach that window you're showing me?

iron bronze
chrome badge
#

aaaaah

#

it's not in p4v

#

thank you

#

hmm but I don't see a p4config one

#

so maybe it doesn't exist?

#

I guess I'll just make a new one and conncet it to my P4config txt?

#

so it's asking me for a path, but if I have it in the rootfolder of each project that'll be a different path so do I just not put a path and just put the name like in your image example above?

#

I'm suprised it takes so much to just have two different projects

#

@woven sluice

#

you can delete that pic now I think

#

but i'm still lost on this

#

ok this might be worse now? I think I followed the instructions correctly and the error is a bit different now

#

now it can't find the config file for my workspace or perforce but it does say config file names used with the correct config file name

#

ah wait I think i misunderstood a step

#

ah ok

#

so I put them in both roots

#

it does seem like it has the right workspace now but there's still an error

#

so it does know about both config files but it's saying my client root is wrong because one is my workspace folder on one drive and the other is in the perforce folder on the other drive

woven sluice
#

so you've got a p4config.txt or whatever you set the environment variable to in the root folder for all your projects, and inside of it you've got all the perforce variables filled out, and it is connecting to the server at least but erroring on other variables?

chrome badge
#

yes i think so

#

ah wait

#

am I suppose to make the root for the one in the perforce folder the perforce folder?

#

man this whole thing is becoming a mess i'm starting ot regret even installing perforce on my OS hard drive, all the room is being eaten up by it and rider

woven sluice
#

What's a perforce folder

chrome badge
#

the folder perforce is installed in

#

like it

#

it's basically programfiles/perforce

woven sluice
#

You don't have to do anything to the perforce installation no

#

Each project workspace gets a config file, to use different words

chrome badge
#

ah so I only put them in the workspaces

#

then maybe that's why i'm getting an error from the one I put in the root folder i thought i was supposed to put one there but that was a minsinterpretation

#

er wait

#

well rider doesn't seem to think so

#

now it just says no config file in my perforce root

woven sluice
#

You've got the directory mapping done right

chrome badge
#

i think so

#

at least I don't get errors from that and it does see the config file

woven sluice
#

"No config file in root" and "it does see config file" though?

chrome badge
#

it says no config when I take it out of the perforce folder so I put it back in

#

the error is the root

woven sluice
#

It doesn't pick up the second one, the game one, if you remove the config file from program files?

chrome badge
#

no it picks it up fine

#

it just gives the same error and says there's no config for the first path

#

is that path a mistake or something?

woven sluice
#

Can you screenshot it the same way after you've done that maybe

chrome badge
#

ok sure

woven sluice
#

Because that clearly says the game config is OK there before, wondering what I'm not understanding

chrome badge
#

here we are

#

so the bottom one is fine now which is good

#

but the top one is the one with the error

#

and now you can see it doesn't see a config file since I removed it again

woven sluice
#

That top one shouldn't even exist I think, it's not a project...

chrome badge
#

yeah maybe because I put it in there as a mistake

#

but now idk how to get rid of it

#

maybe I have to restart my whole computer? since restarting rider doesn't do it

#

well i might as well try that, see be back soon

#

nah that didn't do anything

#

same error identicle

#

sorry idk how to remove that part

#

afaik this is a problem because I have two hard drives right?

woven sluice
#

Where do you open that dialog from?

#

Nah I have like seven drives lol this must be set somewhere

chrome badge
#

it shows up automatically when I load up the sln for this project

#

it's a little error box in the bottom right and i click it and it shows this

#

yeah it shows up and says "perforce connection problems"

#

i've been lost a long time figuring out where these roots are even set

#

it's not in the config files afaik unless there's a line for that I can add

#

i'm having a hard time googling this

#

thanks for trying to help though

woven sluice
#

Yeah figures I can't find that damn dialog lol. In directory mappings you only have one entry right?

chrome badge
#

ah i actually have both

#

i'll remove the first one lets see if that's it

#

I think that might have been it

#

i must have done that earlier when confused

#

that dialogue only comes up when theres an error so sorry i'm not sure how to get it otherwise

#

gonna reload and try

#

I think that's it!

#

sorry for racking your brain with my mistakes

woven sluice
#

Cheers

chrome badge
#

now that i've done it it's all a lot clearer, i really wasn't grokking the solution for a while since i've never managed variables like that

#

thanks a ton and have a great day

static spire
#

Hello, I am looking for a way for some friends join me working on my projects on Unreal is there a way I can do that? Or do we need to have the same server?

mortal vale
# pulsar parcel The p4ignore doesn't differ much iirc. Usual rules like no Binaries, Intermediat...

Sorry to bother you with this again, but you said the P4 with engine in it should support the typical no Binaries, Intermediate, Saved etc. I am having a bit of a hard time with the no binaries ignore rule.
For example, when syncing with UGS on "artist" machine using precompiled binaries, engine doesn't start because it is missing xinput1_3.dll.
Which is located on the programmers machine on Engine\Binaries\ThirdParty\AppLocalDependencies\Win64\DirectX\xinput1_3.dll.

My question is, was this dll supposed to be packaged with the Installed Build (UGS) or was that supposed to be on the P4 server?

cyan jay
mortal vale
mortal vale
#

Sorry for the stupid question, I found the proper ones in Engine\Extras\Redist\en-us\UEPrereqSetup_x64.exe

cyan jay
mortal vale
pulsar parcel
#

And I thought it was clear. You basically take the repos' state after running Setup.bat

#

Literally every file but the .git folder

mortal vale
# pulsar parcel And I thought it was clear. You basically take the repos' state after running Se...

Thanks for the clarification, I really appreciate it. What way would you recommend me setting it up with p4ignore?

Since after Setup.bat step, there is about 10GB (33k of "default" files) in the /Engine/Binaries/ folder, I simply cant just put Binaries/* in the p4ignore, as I would normally do.

Making exception for each of the 33k files to not to be ignored would work, but would break if I were to merge with newer version. In that case, if any of them are renamed or new "default" files are added, they would simply be ignored.

Pushing the whole state after Setup.bat without any p4ignore and then adding p4ignore for Binaries/* would work, but again would not work if I wanted to update to 5.4 as the "mandatory" in Binaries/ would be ignored. In this case, any change to the default files would be ignored.

At this point my head is spinning with all the wrong options.

pulsar parcel
#

I wouldn't even bother with the engine directory since you're not really modifying it much, if at all

mortal vale
pulsar parcel
#

point still kinda stands, since what actually is the chance of committing an engine binary?

#

you would only get that from a reconcile

mortal vale
#

Right, I want to just distribute whatever came with the Setup.bat step and nothing after that.
For example, msdia140.dll
Engine\Binaries\Win64\msdia140.dll came in Setup.bat step and I need to have that on the depot.

But Engine\Binaries\Win64\UnrealEditor.exe each programmer compiles it's own or artists get it from compiled binaries, so I don't need that.

Is that correct assumption?

mortal vale
wide raven
mortal vale
wide raven
#

Hmm, ok, checking our fork git:

mortal vale
wide raven
mortal vale
wide raven
#

Nevertheless, I only have one file in Win64 ( ProcessSymbols.bat ) and have definitely compiled the engine on multiple PCs and Macs

#

I guess I'm not up to speed with the conversation. My fork looks pretty much identical to the EpicGames original, + my code changes, and that's it

#

Are you trying to achieve something special in how you intend to use your fork?

mortal vale
wide raven
#

but like the Win64 folder for me is 30+ Gb, I don't see it making sense to version all that

#

But well, perhaps I'd best be wary of trying to advise too much, this is still the first time I have set up and maintained an Unreal source fork

mortal vale
wide raven
mortal vale
# wide raven IF you just version exactly what you got from Epic, is there some problem?

That is the goal.
There are some ways to do that though, all of them awful.

  1. I can't just ignore /Engine/Binaries/* because that contains the files from Epic. So I can create a list of ALL files (33k+ ) and tell it NOT to ignore those.
  2. Initially push /Engine/Binaries to the P4 and then start ignoring /Engine/Binaries/*

Both options break if I want to update to 5.4.0

#

If 5.4.0 contains new files or updates old ones, those would be ignored and never pushed to the p4.

wide raven
#

Hmm... I have updated only twice so far.

The first time things got messy and confusing ( possibly similar to what you have now? ), so I just started clean and copied my changes over, since there were only like under a dozen small changes.

The second time I think it went something like this:

Now I freely admit I have no idea if this is how it is supposed to go, and would appreciate also some links to guides of this area

mortal vale
# wide raven Hmm... I have updated only twice so far. The first time things got messy and co...

Updating to a new version locally is one step, that is a bit annoying, but then PUSHING the new files to Perforce is bothering me.

For example, if in 5.4.0 is a new file added to /Engine/Binaries/Win64/A.dll that is needed and gathered in Setup.bat, how should would one detect that. If p4ignore ignores /Engine/Binaries/*, that file A.dll will be ignored and never pushed to the p4.

#

Can that be somehow combined with UGS?

#

By any chance do you have p4ignore from official stream? I just want to see how they handle it officially and paying for UDN is a bit out of my indie budget

wide raven
#

I suspect it would be functionally identical to the .gitignore

mortal vale
wide raven
#

Giving out p4 access outside the company is out of the question I'm afraid

mortal vale
pulsar parcel
#

But if you have a serious project going, I would suggest reaching out to Epic because the license cost will be proportional to your budget

#

And it's much easier when dealing with NDA platforms