#source-control
1 messages · Page 11 of 1
ah well i managed to fix that, but no info about how to port over users
oh its worked, nevermind
thank you Ryan that did the trick! Got it all set up now with a new depot on block storage.
To anyone else who runs into this, this post was helpful for me in learning how to give the user access to the new drive.
Hi there! I'm facing a problem at work atm and I'm running out of ideas. Basically we want to delete some meshes that are not longer needed after an automated process takes place. After cleaning all the references to that mesh I'm using the SourceControlHelpers::MarkForDelete function to mark it for delete on Perforce. The problem is that it fails saying the file is being used by another process. I tried to debug and it seems to be the UE Editor itself, which is odd in my opinion.
SoureControlHelpers.cpp - So basically the source control provider, in this case Perforce of course, executes the Delete command successfully, but for whatever reason it executes another block that tries to delete the file if it still exist after performing the delete command. I've tried even forcing UE to Garbage Collect to see if it was still having a reference to the asset, but still had the same issue
After executing that function this is how the assets look like. They seem to be "removed" but they still appear in the File Explorer. Any ideas on this? Thank you!
Hmm, for some reason, my changelist is gray and I cannot revert it. Anyone knows whats up?
P4 revert returns no permissions :/
You don't have permission for this operation```
E: revert with depot notation helped
Hey Brian-- what I did was:
-
Got my DigitalOcean volume mounted (there was an option to auto format and mount I think so I didn't really need to do much manually for this)
-
Then when creating my depot in P4A I just made the storage location /mnt/volume_[xyz]_01/[depotname]
So, I have a weird dilemma and Perforce support is useless as ever 😅😂
So, the project I'm working with had a change to a file: and the file started throwing random errors(change was a comment added, no logic)
Recreated the error and any chabge to one of the files in source causes the files to start throwing errors.
This is fixed by doing a Reconcile Offline Work without a p4ignore. The errors all disappear.
Perforce somehow stops the project from being able to see symbols from compiled sources.
If I re-add a p4ignore and Perforce cannot see intermediate and such paths again: errors return.
The code is not error'ed itself and is functional when the "not fix" fix of reconcile offline work is performed and Perforce can see the files in intermediate, binaries, etc again.
I have tried deleting all intermediate, binaries, saved, and ddc paths and rebuilt also.
Perforce refuses to just allow these files to interact with other files in the directory unless in view.
Problem is: I cannot push intermediate/binaries/ddc saved
Any suggestions are appreciated but be aware the code itself is not where the problem lies given the code runs when using Reconcile Offline Work without a p4ignore present and no errors are present after; they disappear when you open the cop files next and you can successfully compile.
When you move it over to a plugin: the entire plugin folder will be marked "for add" including the repeat files. In the same submit: just go to the file view in P4v and find the files you moved to the plugin and "mark for delete"
Sorry not to help with actual problem, but we don't want to keep intermediate/binaries/saved folders in repository at all, since each PC generates that content by itself anyway. Perhaps you could just remove that stuff from repo and bypass the problem?
I always shut down Unreal whenever I perform any perforce operations outside of Unreal
FYI, nobody is going to be able to help you until you show hard information. "Random errors" all we can say is read them and deal with them. What Karma said is true, although I can't actually figure out what you're really doing from what you wrote
Issue is: the file does not stop generating the errors unless those get automatically picked up by reconcile. I have tried to clear out the binaries/intermediate/ddc/saved from project and all plugins; it is just confusing to find the cause of this error given the relationship it has with the VS Files and Perforce and not the actual code being wrong/only compiling when the files are tracked.
There are not really any errors to give is the weird part. The only errors that actually are thrown in VS outputs are the errors that disappear once the files become tracked. One error that comes up when I make a new workspace and add a comment to the problem files is
[2023.08.08-06.04.54:692][ 0]LogWindows: Error: Assertion failed: IsValid() [File:D:\build++UE5\Sync\Engine\Source\Runtime\Core\Public\Templates\SharedPointer.h] [Line: 1098]
This VS Output error from a .uproject operation VS started when I add an edit only throws on a new workspace the first time the problem file in our Game/Source/ has any edit; not even saved, just edited with a comment. It goes from compiling successfully to the errors being thrown until files get tracked. Leaving me to guess possibly one of our source files got moved accidentally to a plugin source file path
Thats the only meaningful error since the actually syntax errors in the problem file come up and disappear once files get tracked.
I should mention the random errors are truly pretty random to get there, not the errors themselves, as they are not present during compilation and any other edits to any other files and compiles; only a single edit to the problem file and the errors appear and disappear with p4 tracking the files. It is relatively easy to fix the syntax errors;
I just want to know why they become syntax errors that disappear without changing them while that shouldn't be related to compile capability like tracking the generated files in P4.
show the errors.
tell us what the problem files are.
stop spewing random gibberish
there will be a reason for what's happening, and unless someone has specifically had the exact same thing happen to them recently, nobody is going to find it without some real info.
Ok, at least SharedPointer.h error, that is a horrible one that I have sometime seen and always had to revert and redo changes...
It can be traced, easiest with a source fork engine where you can debug step through...
I'm actually setting up a debug step through right now to catch what class object it's trying point to and failing on!
The thing is; they will not have the same errors, only the same problem unless they happen to have a very similarly modified file specifically from an Epic Games curated repo.
Like the in file errors are inconsequential to the actual problem. Fixing the errors individually do not solve the actual issue of the SharedPointer/P4v letting everything compile until an edit is attempted on said file or until after generated files are tracked.
also, this is NOT a compile error. are you having a compilation error or a runtime crash?
Compilation error in Visual Studio
Build, rebuild, and removing generated files for the rebuild does not solve it oddly enough.
ok, so for the third time, show the error(s)
Which error? Only error that matters is essentially the sharedpointer error. Why would errors that are false/still compile before an edit on the problem file occurs and disappear with the reconcile fix be the cause/need changes if they didn't need changes before and after the edits?
alright, bye
Okay lol
I might consider stepping back, trying to compress the problem into one clear paragraph.
Right now it is a bit hard to get a bead on what is going on
Or, as has been suggested, if it's a compilation error: post the entire output log. If it's a runtime crash, post the last 50 or so lines of hte output log and the call stack.
Okay, I will try! Workspace can be created, build with p4ignore occurs, and project opens. I can edit and live compile/build again with other .cpp/.h files having an edits. The second I edit, even add a // comment to the proble. .cpp/.h file; it starts processing a uproject code command in visual studio output and throws the SharedPointer error on line 1098. Build occurs and syntaxes errors not present before and not thrown during previous compiles appear. Tracking the generated files in p4v essentially stops the syntaxes errors and let's me edit and compile the problem .cpp/.h file
What's the entire call stack?
Grabbing that now from logs
Oh since it ran in VS I think the log saved somewhere else. I am going to make a new workspace and generate the stack again; will post then
) "I edit ... starts processing" - is this live coding or something? if so, I back off, I don't use that.
) Tracking generated files is definitely not desirable, I would perhaps start by adding those folders to ignore
Not live coding specifically, but does effect it.
It happens specifically in VS when project is closed and I'm doing a build/rebuild; so it essentially just spreads down to live compile as well.
The editor is crashing when you're building in VS.... without live coding?
Nope. Editor is closed, just VS running
Also, new workspace is downloading from depot; will have that stack trace for ya momentarily
When I make an edit to the problem file, VS runs a cmd command for the .uproject file which might be why it throws a call stack specifically in the Visual Studio output
So you aren't getting a runtime error.
Because you can't get a runtime error without the editor open.
It's what causes the runtime errors.
Oh that's the funny thing, I believe the cmd line VS runs is a ue editor launch operation with a long string of ops after such as -norhi -noshadercompile -ddc=unshared etc
Like it runs a ue project launch command the second an edit is made to the problem file
I'd have to ask the Lead Dev on the project; and that would make a lot of sense
Well it's to do with your copy of VS, not theirs.
Ah ye, no VS plugins on my side. Thought you meant plugins in the project
I'll @ you once the depot is downloaded; don't want to keep you waiting 😅
Highly likely I won't be here.
No worries mate, thank you for the help so far! Finding the cause of the bug/issue is of interest to me but not a major necessity since we have a roundabout fix technically so I'm in no rush on my end
I had to migrate the workspace. To do so I had to open Workspaces from the "tabs", RMB on my workspace, do Edit Workspace, specify the directory in Basic, and assign the new owner and host. In my case host was basically the new computer name (DESKTOP-numbers and characters).
Question about perforce: How should I view workspaces? Let's say we have a game and we have a folder with art asset files. Would you put those on the same server in separate workspaces? Or if you have a customized version of the engine, would you put this in a separate workspace so it could be used more easily for different projects?
a workspace is nothing more than a client's view-mapping of the server.
imagine you were building a car in a workshop, and you will do all of your handiwork on a workbench that is over on the side of the room. your 'workspace' would consist of whatever chunks of the car that you decided to carry over to your workbench. whatever you set up on your bench, that's your "view" of your workshop.
you might have two different workbenches (workspaces) that are each mapped to contain different parts of the project, or multiple parts from various projects.
Yea I figured as much. But there seem to be reasons to separate them no? Like if I would not want programmers to download all the art assets when they press get latest (without selecting a subfolder). Or if I would like to reuse the same shared custom engine version across several projects?
For a small-ish project ( as in not AAA grade massive ) I would consider just using one workspace. Make sure that artists don't dump huge w.i.p. asset folders in there though.
Custom engine should probably be kept in it's own git repo in any case, I would not mix those up.
Yeah, that's what a client can do... Either have a single monolithic workspace giving them the whole server, or a cut down workspace with only parts of it, or multiple workspaces for separate unrelated projects.
Every client needs a workspace. You don't share them.
You might also want to learn how to use streams depots btw... They change things around quite a bit though, it might be confusing learning everything. With streams depots the workspace just picks a stream; the server admin can optionally take the burden off of the users to figure out how to set up their artist workspace, artists just set their workspace as the artist stream
(unrelated sidenote: I am using the word "client" to mean a human user... perforce sometimes uses the word "client" to mean "workspace"
)
Yea I know it's local 🙂
Yes I've been looking at streams. We're a small team and it hasn't been worth the time yet, but if we add more people I might revisit them. It seems really useful, but it's quite foreign to me still.
Hello guys, I was looking for a cloud version control system for my UE VR(Oculus Quest Pro) project and we are 5 users, we just switched from Unity to UE because we want to improve VFX and our VFX artist recommended us to switch... I was thinking on GitHub because is the one I'm familiarized with. Could you give me any advices (budget max. 50€/month)?
probably want azure devops if you want to use git and have 5 users
You can use P4V as well the free trail is up to 5 users and you can do on-premise server with free trail even.
Or just use SVN which I don't really like.
having issue with UE5.
project froze during BP create popup. I killed the process. Now project wont open.
any other project opens fine
i have it under GIT.
i try to check earlier commits and same issue
tried going back 2 different commits and same error
Tried deleting Intermediate+Saved folders? Perhaps also re-create solution and full rebuild if clearing those doesnt help
you can use an azure devops repo (which uses git) but then operate it using github desktop
devops has unlimited storage and desktop is really easy to use
but setting up requires some work
Thank you kindly! You anwer was the key. It seems the saved folder was corrupted. Once I nuked it, I was able to relaunch the project even with latest commit.
Standard procedure for any anomalous situation : )
i just forgot about saved being generated. I guess i deserve a punishment of 2 hrs of troubleshooting, lol.
While we are at it, also make sure that Intermediate / Binaries and Saved folders are not versioned. ( should be Ignored )
they are not. I guess should have looked at .gitignore inside the project folder.
Ah, it's one of those things that should just be in Unreal docs "Things every dev should know when they start" list
sorry for necroposting this, did this ever turn out to be an issue for you?
What’s this chat for?
version control systems usage
Hi, has anyone setup a p4 to discord integration?
I've done Slack which is similar. You can use a Discord webhook for this:
On the P4 side you'd setup a trigger on the change-commit event to call a script written in your language of choice (Python, Bash, Powershell, etc) that then calls the webhook you configured
i have what are you looking for ?
you do?
i dont have the code atm but i can get it. what are you stuck on?
i was being lazy i hoped someone had done it before, i found a github project that seems to be good
ye i found perforce-commit-discord-bot on github and it looks good a bit old but probbelry still works
hi again, i've setup a p4 triggers the script seems to work when i run it from the command line, but p4 never calls it
i assume p4 runs triggers as the user running p4
Well as long as you don't completely ignore me this time, what error do you see when it's run?
Sorry, I don't know how I missed your message, the problem I am getting is the trigger never happens. I put a simple logger command just to write something to the syslog
I checked the script, it works just fine when called manually
I checked the log files, no errors there
Show the output of p4 triggers. Usually if the script errors, then the stderr output will be shown to the user committing
I tried putting garbage in p4 triggers it rejected it
p4 triggers -o?
Triggers:
discord change-commit //depot/... "/opt/perforce/local/bin/perforce_discord_webhook.sh %changelist%"
logger change-submit //depot/... "logger p4 change %changelist%"
I think I didn't do something in p4 to enable triggers
I tested if I had it right by making a mistake
Use the default classic depot sure is something, but that's correct
https://www.perforce.com/manuals/p4sag/Content/P4SAG/trigger-execution-environment.html this explains that the script is run as the user the P4D server is running as
Yes I wrote the environment vars out when the script is called
I even called logger to get something in syslog
But nothing shows
And what does the Bash script look like. Also is the depot you want to log, does the path actually start with //depot/?
It might but it might be too noisy, I don't think I'd recommend doing that
don't think so 🙂 its me and a friend right now
and we constantly miss who submitted where
i thought the syntax was //depot/<name>
thanks i see the syslog message now
So it's working now? The //depot/... part was referring to a depot path, you'd see the same in P4V in the depot view
The ... is just P4's wildcard syntax
i did //...
i wish the default depot wasn't called depot
or they wrote //<depot>/...
The first thing I did was delete the default depot since it's a classic depot anyway
i left it, didn't know what it was used for
i've not really looked into how to setup streams
but we work in plugins and promote them down to each other
so each submit is a hint to update a plugin
I used streams before, mostly release streams using Epic's Robomerge tool
Dev streams were very seldom used
The thing is you can't convert it later. So at the start it would be fine just to have a mainline stream and nothing else
i can't see it being a problem any time soon
i am sure it isn't the best practice
its pretty much the backup / file sharing tool, we are pretty much trunk based and have divided up the project into 18 repos
only thing we didn't have going was the notification like we do with github
i am debating about using a file server of some sort to distribute plugins and not keep them under version control
Thanks for your help, I've been caught out by p4's funny syntax
Hey guys, I have a rather large 100+GP project that needs source control. But GIT cannot seem to handle that level of a push. I have tried the increase buffer but still my push times out....
How can I host this for collaboration and backup?
Anything not GIT would be great... I would sue that company if I could, I changed branches and it pulled and deleted my entire project once. Its as user friendly as a football bat in a game of digital pong.
In game design its easy to increase 10-20GB's of content in a day to push as well.
Not sure what grounds you have to sue "Git" on, but if you mean GitHub then LFS commits have a lot of weird restrictions. ADO repos have a better offering
Free for 5 users, pay per user beyond 5
I'm using it for a private project currently
I consider P4 the standard for large teams. Plastic is just incredibly frustrating to work with
I am using AzureDevOpps with AnchorPoint
I started with Github and seen the size cost so tried switching the URL to devops.
Been kinda broken since, checking some things now
Just need something to work.
Where would I check the LFS part? =/
Something as simple as a cloud backup feels way to intense.
Nah just my frustration in losing 4 months of work due to it deciding it can reach into MY pc and remove files.
Anything with that kinda learning curve and that kinda reaction to changing a branch is insane.
why would you wait 4 months for a check-in
It started having size restrictions on me and by the time I bought more storage It wouldnt commit the 20GB of work.
And it grew and grew and in troubleshooting I switched branches
and boom
ALL gone
Forums are filled with like stories, just far to complicated for a simple backup
So now I am at 100GB's scared with no backup
lol
Accept a physical one I copy myself to an external
but its not fun for sure.
quick Q: do I have to manually connect to revision control every time? I noticed the green check in the bottom right disappeared on restart
Yeah Github which I thought was a part of Git.
I almost have it working on AzureDevops now, but it said "the push failed" not much of a reason after loading 100% of the 100GB files to Azure. Then you look and nothing at all loaded during the push.
Going to see if I can find some logs to google.
Took literally hours too.
Is thre a good backup mechanism out there that can push changes and not have to re-copy the entire project?
Doing it old school is copy and pasting the entire project takes hours as well, every night.
Well maybe in terminology, but the idealism is the same. If I am working on a project at 90GB and I already have a 90GB backup but make 5GB work of changes, I would like to update that backup with the changes. Not delete 90GB and copy paste the 95GB.
No I understand it for sharing dev work and committing changes.
To a group.
True, but as a DBA for medical software, when I sync an archival file, it updates it automatically.
So changes are sent to both current project and my archival backup.
I dont have to delete the entire backup and then reimport the project for changes.
So that is the functionality I am looking for. If I went into the wrong area for it, what is out there for game design to do it?
Unreal does not make me a devops person
So devops is hard to understand.
Well github and git commands felt a bit advanced is what I mean.
You need to know how to use commands and understand some code.
Yeah thats what I downloaded
Thats what stole my project.
Lol
Anchorpoint has a nice UI and I am trying to get it to send to Devops.
You can see its trying up top, but the "new build" and changing the master file to azuredevops is the whole project in a push I think.
I have older commit's just scared of it pulling a github and reverting my actual project files.
Yep, I lost the ability to commit for to long when working with github, buffering size issue on one push because in unreal you can import or migrate other content and it can add a large amount of data to the project.
So that commit struggled then I blindly moved on and added three other migrations to it.
Yep agreed!
newb mistake.
But then I thought of the sceanrio where someone wants to begin source control late in a project...
is that possible?
Okay, then im treating my project that way, I deleted github and moving the entire project to devops as if Im doing it late in the game.
I will check your post and try
luckly I have some begining, mid point and end commits, but I need to be better and more habitual
O those were test when github was failing so no not serious
Two months ago when it was working was sorta better, but I need to improve my commenting.
I was committing at the end of major updates, texturing or assets all added.
Need to be more often not a day or so of work.
Agreed, was learning haha
I had about 20-25 more commits but I hit the undo button.
on github thinking maybe it would undo the problem
Thats how I lost all the work, so ill focus on getting this project in and increasing my git pushes and good commenting, I plan to have someone colab as well, very soon.
So I got to figure it out.
It "undo's" all pending push comments I found out.
So just deleted them in essense and hte file changes.
Its that button bellow commit to master.
I had 9415 file changes in there before I clicked it.
Then gone.
Yeah it could be called anything and function as something else in a UI
so who knows, I just know what happened haha
I stepped away from it, it was to much to learn and the stakes are high if I can lost project files saved to my desktop.
It believed it to be working in a world of copying to the github desktop and then pushing up.
But I was wrong.
Yeah the commits were in history and I could of gotten it back until the undo button.
Then they vanished as commits and history.
Ive redone a majority of it at this point.
So no worries, more focused on getting source control working right.
so I dont have the issue again and I can colab
Got it.
I was also unsure on SSH and how to even get in the git console for github.
Achnorpoint has a console window.
So kinda nice and helpful.
Thank @late thicket for helping me understand. Most youtubes just showed everyone in visual basic or some console.
It was confusing to try and get into.
Yeah ive used SSH authenticate into and manage servers in the past. It looked like it ya, I think he was doing actual coding, using git/github to backup his changes.
Problem with tutorials, no one is doing the same thing or exact use case in most scenarios. He was teaching to increase the buffersize / pool with github. As the commit was to large.
git config http.postBuffer 524288000
something like that.
somewhere out there, Ryan shed a single tear, and did not know why
Greetings, dear friends
I'm looking at reorganizing all my DevOps and CI/CD, and looking for the best things out there
@late thicket Are you still using Jetbrains Space? would you recommend it for UE5?
Thank you ❤️
I had no context, thank you. So you wouldn't recommend it?
Thank you. May I ask what you are using right now? I'm basically doing reserach on what's the best, exploring many of the options
disagree with P4 but I never knew about Jenkins' "L"TS
Teamcity seems nice as long as you don't go over their free limits
still need to give teamcity a proper chance... last time i looked at it i learned that i needed to learn kotlin and make a full blown plugin for it, just to run a simple cmd like run a .bat at a certain time for a super basic trigger, and i ragequit it
yeah I don't think that's the case anymore
the build configurations looked pretty straightforward
iirc the thing i could not do was ... maybe a pre-source control step? i'll give it another try one day 
Teamcity is one of the only options that has legitimately good p4 support out of the box.
So unless you're going to attempt to setup horde with basically no documentation, teamcity is the way to go if you're using p4 (and isn't a bad option even if you're not)
Hey
we're using perforce and sometimes when maps get updated things break
rotations, scale, missing materials
even though it seems perfectly fine on the other end and something like for example the fences, 100% is checked out and submitted properly
so it's not about missing assets
this happened with OFPA and without it
Usually just means that source control was not connected the whole time someone was working. You should reconcile your Content folders.
another situation is that if you don't use exclusive checkout then you can end up clobbering
how can i be sure everything transfered ?
🥲
Happy to help if you can post a screenshot? Since you're talking about Rider, is it UE specific? Just want to keep it related.
Would love to know why you're not happy about Perforce with UE. Send me a DM if you want to vent, maybe we can get you going.
Also, Jenkins is a tried and true CI/CD system, it's powering almost all of the top companies. It's been almost unchanged for 10 years since it's so solid.
any ideas why my perforce connection is acting up? Here is the scenario. P4D is set up on a dedicated local machine. Ports are forwarded. When I try to connect with the client machine, it can see the server (will lete me know if the username is not found or not, then request password when I use the correct one), but then it says it cant connect to it afterwords. I am at a loss.
I have made firewall rules, it sees it on a port checker...
Not sure, sounds like a handshake network mismatch. Drop a line to support@perforce.com, that one sounds like it'll need a bit more specific assistance.
Ah, gotcha. I'm going to spin up Rider this week. I'll keep an eye on the P4 integration. If there are any logs, maybe file a bug on JetBrains YouTrack (https://youtrack.jetbrains.com/issues/RIDER)
can someone explain to me what the best way is to share a project
can you exlpain what you mean with "git with auzre devops'
ah okay so i have to make an acount on one of those and upload my files???
Also Rise, don't forget to look into file size limits/counts, and requiring Git LFS for larger files.
Hey everyone! Is there a safe way to remove my .git information from my project, stop using git entirely, and stop tracking any of the file changes I've made locally, but not lose any of my current files?
I didn't realize my commits/pushes weren't going through so I just have a ton of local changes and it's taking a lot of storage. I'd like to get rid of it and use another backup method but keep all of my current files
As you can see it's taking up a lot of local storage lol
You can safely remove your .git directory, w/o it affecting your files.
How do I do that through terminal or github desktop? I can't even see the .git stuff in my folder system
Usually dot "." files and folders are hidden by the OS Windows/Mac.
Okay I can see it when I enable hidden items. I am 100% safe to just delete this whole folder?
It's up to you, and everything has been backed up. If all you care about are the files that are NOT in the .git folder, then yeah, you're good.
Yeah I just want to keep my project files for my UE game and remove git tracking and any associated git data
g2g then
Cool thank you!
This might be a stupid way to do it but I'm actually just deleting it to get a fresh start and try using a different host other than github since my files are too large and I don't want to pay for their storage.
I see earlier today there was a discussion about using azure devops free tier and git. Would azure devops have enough storage for me to keep my game files for free? I'm around 75gb project size
Not a stupid way! Find what works for you (and your team). Try different solutions. I'm not versed in ADO (Azure DevOps), so you'll have to do some digging into the docs to check out those limits. 🙂
ADO doesn't have size limits, it has user limits (5 free, pay for more). And you don't need to delete your git folder just to move hosts if you're sticking with git, you can set your new host as the origin and push there.
Really? That sounds insanely good. Is it difficult to set up?
...no? As difficult as signing up for any other service is?
Sorry I have never done any hosting services before it's all new to me. I just wanted to make sure
Everything I see on their website says it is only free up to 2GiB of storage. Also spoke to a tech chat and he said that as well. Is there something specific I need to do?
Do you happen to have any links to tutorials or guides on how to set this up properly? Sorry for the basic questions
...just sign up and make a repo? It's not particularly different from github.
Or look at their documentation. https://learn.microsoft.com/en-us/azure/devops/repos/?view=azure-devops
Yeah I have changed the origin. Now I am just trying to set up my ssh keys and stuff. Hopefully I get it right I'm not too well versed with git lol
What sort of content should use LFS when using git? I see different answers everywhere online
I see that some people track the entire content folder, some do specific folders, and some have it set up to only do specific file types
.uasset, .umap, any art source files you want to track or other large binary filetypes.
There little to no reason to start by doing things per-folder.
One last question, I see a few others have asked it here through searching but don't see any responses to them. Also can't find anything on google. Getting this error when trying to push my changes to ADO and can't seem to fix it no matter what I try
Yeah I've never seen anything like that. Best advice I can give you is to update git and git lfs to see if it's just because you're on some old version.
Actually, a quick search brings up that this is a config issue
https://developercommunity.visualstudio.com/t/cant-push-large-git-lfs-files-to-repository-from-p/862165 and https://stackoverflow.com/a/71474537
Specifically, you need to run git config http.version HTTP/1.1 and try again.
I must be bad at googling. I’ll try that out thank you
That worked. Thank you!
Perforce + Docker, any caveats?
Depends on how good you are at networking and attached storage volumes 😉
Official stance is that we don't support it, but it's very possible to run p4d in a container. p4d is just a basic binary application that's pretty portable. The configuration is what makes it tricky. Separate volumes, networking in and out of the container, admin/root access, how does the container restart, stop, etc...
Figured it out. I have to assign IP passthrough on the router, not just port forwarding.
Yeah, I'll have to do some tests first with that of course
But good to hear that it theoretically should worj
Killer job, nice!!
Oh it'll work, it's definitely possible 😉
Hi, have you managed it?
Nope, but I found out that you can diff from the content browser within the editor
yeah, but it only allows to diff against depot, not against other dev versions 
like files from shelve
Ah, right, yeah. Nope, no idea sadly, would be nice.
while merging two branches, I mistakenly resolved a conflict from A into B by "resolve using 'mine'" when in reality I should have properly diffed the two files and integrated the changes from both. Now when I merge B into branch C (which is a child of A), it overwrites the changes causing me to lose progress on the file. I know that this is because they're similar enough merge histories, and it's using the decision provided in the previous merge to resolve the current merge. It's a small enough file that I should be able to just redo the work, but for future reference is there any way to reverse the decision to "resolve using 'mine'" without going back on the whole merge (especially since I know you rarely want to revert a merge)
I have a submitted P4 CL that has a lot of OFPA actors. Is there an easy way to see names of those actors (e.g. similar to when submiting a CL from unreal)? I don't see CL history option in editor, I can get entire CL in "review', but it still doesn't show proepr names, just paths.
I just did undo save into CL and then viewed that pending CL in unreal 🤷♂️
Can you explain what you want to do? Maybe I can investigate? That'd be great for making reviews easier.
My guess is that you're using UEFN? I played w/UEFN and they're using GUIDs for asset names, so there will be a lot of those. What are you trying to edit/build in that CL?
Ah, a while ago I was interested in it and now @warm star seems to be as well.
Personally I wanted to be able to launch the diff tool from command line using the already running ue editor process so that there's not a long startup time. And since it would be done from the command line then it could be easily added to P4 which was why I originally asked.
Cool cool, thx. There is a way to call UE from the command line and get a blueprint diff, not sure about the uasset. And then that command could be put into an extension or trigger, so you can initialize it anyway you want.
"Using the already running UE editor process"
no idea, ha ¯_(ツ)_/¯
I have the diff tool set up in P4, but I never use it because it always launches a new editor process and takes minutes to startup
gotcha, maybe keep it hot loaded in a Docker container?
on the other hand it's possible to make UI in the editor, so you can explore stuff from other streams/colleague's shalves etc. Ofc with option to diff against something
so technically it would be about fetching proper uasset from the server, rather then fighting against UE launching behavior
commandlet doesn't recognize already launched instances, it always starts new one.
Cool idea!
If I want to make the binaries folder versioned so that artists don't have to rebuild the project to open it, what files within the binaries folder can I ignore? I'm thinking only the dlls are necessary to be versioned
Hey, I'm using UE5.2 with perforce, since the upgrade from 5.1, when I'm saving a uasset, I don't have the lock popup, it's just saving the file. I need to right click and check out. My workspace property are clobber and rmdir. Any idea?
To me it happens when Perforce is not connected (require password), or when not linked with Unreal Engine like thatr :
SOmetimes I solve my issue by updating p4v
No, using engine from source. These are world actors to be exact (one file per actor in world partition), just wanted an easy way to get their names and class types. Resolved it by saving undo into separate changelist and viewing it in ViewChanges window in editor (since ViewChanges replaces the guids with names)
In the end, would be nice if there was history window in editor, so we could take a look at specific CL entirely (with engine support for actual names).
It also forces me to push the .uproject to the source stream, which will cause the people in the same stream as me, to also have to go through this nonsense. So if they have the files checked out, I and other team members can not work together, because everyone is caught in this stupid endless loop of having to have those files checked out so that they can build the generated files.
Surely someone else has been caught in a similar loop before???
launcher or source engine?
It's a source build of unreal
then you have to override your engine's ID from one that is auto generated to your machine... i don't recall how to do it off the top of my head though, sorry
someone in #cpp or #engine-source should know if you don't find it soon
Getting no bites from anyone in those channels. I guess im digging into a more specific skill set with this one.
Sanity checking : your problem is the .uproject file engine association, different people need different values there? ( We have perhaps a similar situation where most people use Store engine but we Build with Source Fork )
This is what I do believe is the problem as well. I am currently in the middle of an Installed build of the engine that I am going to include in my source control system.
So, what we do:
- mainline .uproject has the engine association that most of the people use ( 5.2 in our case )
- build machines have the file checked out, and have the engine association pointing to the source fork
- build machines also always Shelve the file, so we have the association stored in case we need it
- build machines have to remember to Merge occasionally if plugins change
While we are on the case, I always make sure that people are aware that Binaries/Intermediate/Saved folders should not be in version control.
question about these two
build machines have the file checked out, and have the engine association pointing to the source fork
build machines also always Shelve the file, so we have the association stored in case we need it
I was under the assumption that only one workspace at a time could have a file checked out of a stream depot at any given time?
Having build machines checkout the uproject to associate with a different engine version is... odd. You can tag any engine install with a "name" in the registry and just have the uproject reference that - I'd expect you to be able to make a "fake" 5.2 install on your build machines that actually points to the source build with that.
That looks handy, thank you!
I does have the slight drawback of sort of 'hiding' the knowledge which engine we are using on the builders
Currently having the .uproject checked out does not cause much hassles since it only changes if either engine version changes or plugins change
This is exactly the approach that Im going to use. This guy has a very useful tutorial on the process, and editing the registry is exactly his approach after the Installed build.
https://www.youtube.com/watch?v=YX85Z57_T0k
UE5 is out and I captured a video of my first install. I took that footage and made a visual tutorial on how to make a custom install build of UE5. Custom Install Builds (or Editor Drops as I call them) are a great way to save space and make working with the engine that much easier on single developers or an indie dev team. Check it out. Be ...
Currently having issues where someone who checked out a level in a multi-leveled game hasn't submitted their content, so it's locking me out from submitting the content I need to submit into it. Any idea on how to get around this so I can send my stuff to the depot?
ive accidentally checked out all files in the depot to the default changelist, how do i uncheck em all?
just to make sure... you're aware that if you do what you want to do, any work they've done in the level will go in the garbage bin? will that be ok?
I'm trying to stray from the revert idea, if that's what you're thinking?
yes, admin running revert -C somehow (i don't know exact syntax, haven't had to do it before)
I just wish perforce had a way to submit a checkout that another person has locked
Rather than revert it
usually would only use it if an employee left the company or something else drastic happened
i mean the other dev will still have their modified level, in case they might be able to do some other manual merge work later
i think...
can't imagine the revert command ran from admin would try to reach into the user's PC. should just revert it server-side.
but who knows
just rt click the CL and hit "revert unchanged"
If somebody forgets a lock, and we know we can proceed regardless, we can checkout the file in P4V and proceed normally. It bypasses the lock.
I am having problem with P4Publish on jenknis.
When someone submits new CL during jenkins work (after sync, but before publish), the P4Publish reverts the changes to it's local state.
- It does
p4 sync -k - During
p4 reconcile, it adds changes from thep4 sync -kto the new CL and then submits it.
The entire P4Publish script
credential: 'redacted',
publish: submit(
delete: false,
description: '[redacted] CL${P4_CHANGELIST}',
modtime: false,
onlyOnSuccess: false,
paths: '''//redacted/...'''
),
workspace: manualSpec(
charset: 'utf8-bom',
cleanup: false,
name: 'jenkins_${JOB_BASE_NAME}',
pinHost: true,
spec: clientSpec(
allwrite: true,
clobber: true,
modtime: false,
streamName: '//redacted',
view: '//redacted/... //${P4_CLIENT}/...'
)
)
)```
what is the best way to update entire engine and get perforce to recognize the changes?
checkout, etc is just so slow cause of the sheer amount of files
@woven sluice @wide raven I wanted to thank the two of you, over the course of the weekend I had an issue with engine associations and having to rebuild my project over and over again in a loop. You all lead me down the route of creating an installed build and changing the registry name/values in order to get around this issue. After toiling wiht this stuff all weekend, I finally have the installed build up and running, and being properly distributed through my source control, and am able to build/run the project on multiple end points now without issue. Thank you all very much, you got me out of some dev ops hell.
On to the next 'smash-head-against-wall-for-a-week' challenge! yay GameDev!
hi, there are somebody know how to install helix core(perferce)on mac os,I need some help
do you mean P4V client or a server?
yes, p4admin (server)
I want use mac os for a p4 server
Will have to hope someone else knows, I am only using clients
ok thanks
As far as I know, its not supported on mac
The client is supported on mac
but a server install is ubu/centos/suse
This also extends to other RHEL like rocky linux 9( I run my helix core on RL9).
what about install docker on mac ,and then install perferce on docker
ok I will try, tomorrow, thanks
P4D is the server. P4V is the client that connects to the server.
You can install P4D onto a Mac! https://www.perforce.com/downloads/helix-core-p4d
Helix Core (P4D) is a free version control platform that stores and manages access to versioned files, tracks user operations, and records all activity in a centralized database. Download P4D now to get started.
But, I'd suggest checking out our cloud deploys, as they come preconfigured with best practices :).
https://www.perforce.com/perforce-and-cloud
Thank you, I'll check out that.
Hi, with Perforce should my workspace root be the same as my project root? The tutorial is a little ambiguous
you can, but it depends on if you plan on using a source build later
I tend to put it in //project/main/ProjectDir/ to make a source build transplant easier later
what is the best way to update entire engine and get perforce to recognize the changes?
checkout, etc is just so slow cause of the sheer amount of files
I've used the -m flag on reconcile, and I've always setup a separate "clean" engine depot
Hey @fading cosmos , which tutorial are you using?
This one: https://docs.unrealengine.com/5.2/en-US/using-perforce-as-source-control-for-unreal-engine/
though like I said, it kinda doesn't matter but I would do the subdir like suggested just because it has flexibility in case you do switch to a source build of the engine
since a native engine build would just be put in the depot stream root
Are you able to forcefully submit someone else's checkout? I thought you couldn't
you can only revert it
Maybe if they shelved it?
An admin can undo a checkout
How so? Sorry I'm new to P4V. I know you can revert a checkout but I didn't think you could submit it on their behalf
You could do something like this, if you are the admin. It's the -u flag that helps impersonate.
p4 -u john_doe submit -c CHANGELIST_NUMBER
But that's the CLI, not P4V. If you're the admin, there's more power in the command line tools than in the UIs (P4V).
Ah, I misunderstood. I meant
- dev A has a checkout, but has gone off to Jamaica for a week
- dev B wants to checkout the same file
- this can be done via P4V no problem
Server can't see local changes. That's why I encourage using Shelves, makes it much easier to share work ( between devs or between PCs ), do code reviews etc
And being good with checking back in, submitting to shelves (for reviews), and unlocking files is what I have been calling having good "Source Control Etiquette".
@pulsar parcel i have a clean steam, i basically have a depot with streams, one is Pristine, then i have Merged, and Main. Main is where we make changes, pristine is a clean copy of the engine, and we copy from pristine to Merge and then merge from Main down, before copying back to main, but i am not sure on this workflow
the process I did was have an //engine-unreal depot where the reconcile would happen with Epic's copy, I would create an engine upgrade stream for the project, merge to that, fix any conflicts and issues, merge back to main when ready
and that worked pretty seamlessly and wasn't destructive with engine modifications
and you did reconcile with -m ?
cause ofc lots of stuff gets added/removed during versions and perforce doesn't like that
Yes because I always performed the upgrade on the same machine
So it could use the modified time
Hey ya'll. I'm having a heck of a time getting UGS set up.
I thought I had everything set up correctly.
It's really fighting me
This is not a proper native build setup
Which is required for UGS
What's not proper about it?
The projects have to be under the engine root
Oooooh
The engine root is where the GenerateProjectFiles.bat file is
Right
So Engine/ and ProjectDir/ should be siblings in the directory tree
Man, is that somewhere in the documentation and I missed it?
Epic does mention native project vs foreign project vs installed build, but it's been a while since I looked at the docs
I deployed UGS about a year ago
At my previous studio
Is there is something like gitignore in p4v? I don't wanna send the ue logs and config files to the team
Or that's on the administrator
Oh it's in depot cool
How do I push all changes on my repo in perforce (? I have so many files changed thats not practical to go through each folder
Reconcile the base folder?
i have this setup in my stream
import Engine/... //UE5/Main/Engine/...
import Templates/... //UE5/Main/Templates/...
import FeaturePacks/... //UE5/Main/FeaturePacks/...
import GenerateProjectFiles.bat //UE5/Main/GenerateProjectFiles.bat
import RunUAT.bat //UE5/Main/RunUAT.bat
import Default.uprojectdirs //UE5/Main/Default.uprojectdirs
import cpp.hint //UE5/Main/cpp.hint```
but i want to block commits/changes being recognized in these imported folders
getting this in my changelist on my AresGame project
Ya doing it manually?
Enable vc integration in ue and mark auto check out and 1 file per actod
Learn how to use Perforce Helix Core source control in Unreal Engine 5 with this step-by-step tutorial from Jase Lindgren, Sales Engineer at Perforce. Source control is essential for teams using game engines, and Helix Core is designed to handle the many, large binary files that are involved in using a game engine.
This video covers:
00:00 - In...
You can use the ignore path in the stream spec. It's actually a better method to ignore Saved/Immediate/DerivedDataCache than a p4ignore. A p4ignore requires configs/extra steps. If you set it on the stream, it'll apply to everyone.
problem is im integrating engine into my stream
so my structure looks something like this
what you get when you sync the aresgame stream is
@stable tendon
There could be some stream mapping or ignores you're missing?
I don't have any imports here, but this is where you can ignore those DotNET folders.
yeah i just set those up
im using imports
import Engine/... //UE5/Main/Engine/...
import Templates/... //UE5/Main/Templates/...
import FeaturePacks/... //UE5/Main/FeaturePacks/...
import GenerateProjectFiles.bat //UE5/Main/GenerateProjectFiles.bat
import RunUAT.bat //UE5/Main/RunUAT.bat
import Default.uprojectdirs //UE5/Main/Default.uprojectdirs
import cpp.hint //UE5/Main/cpp.hint```
You can also exclude as well with the minus sign -. Let me grab a docs link...
Stream view configuration
Why when I revert a changelist nothing happens at all?
Is there an error? What does the P4V console log show?
thanks @stable tendon, one more thing, i am having a hard time managing engine merging between major versions, maybe my setup is wrong on how to update the engine, but i end up with a huge changelist and perforce just ends up going all wonky
YW. Yeah, managing versions of UE gets tricky. I haven't had to do that "yet", but a lot of other folks on here have great suggestions. Try out the search! 🙂
coming from plastic, which seemeds to handle changes pretty well (with the setup we had), perforce just seems to go a bit wonky, its def how i have things setup im sure
In UGS/ Unreal Game Sync/ If I want to zip up the Precompiled Binaries, do I just zip up everything inside Engine\Binaries\Win64 ?
or is there stuff outside that I need to include as well?
Hi all, I've been messing around with Unreal blueprints for a couple years now but haven't made a ton of progress.
This time I'm trying to set things up for C++ dev, coming from a scripting background.
What is the best method for having my code synced with a private GitHub repo? Do I create a local first, a remote first, or both and then somehow merge?
I know some answers will be "learn Git" or "learn C++" but for me this is part of that learning process.
Thanks!
I would personally recommend using perforce over Git. https://docs.unrealengine.com/5.2/en-US/using-perforce-as-source-control-for-unreal-engine/
Git doesn't handle large binary files very well
@stable tendon for adding a file I just drop it in and will be automatic checked out?
Marked for add I mean
Nope, if you add a file to the content drawer, you'll need to see if UE has picked it up as a new file. You can go to the pending changelist to see if it's there.
Since the file is new, it won't be checked out yet, because the server (commit) doesn't know about it yet.
Yep just figured it out its marked for add right off the bat automatically, thanks ryan
I tried perforce briefly the last time I attempted this, but got confused at some point.
I was going with Git because it's the one I see people using more. What are the benefits of perforce (aside from handling the binary files better)?
Perforce guarantees atomic submissions, ensuring that either all files in a changelist are submitted or none are. This means that you're less likely to end up in a state where only part of a change is submitted, potentially breaking the build.
Unreal Engine has built-in support for Perforce, a
Perforce handles large binary files (like textures, models, and audio files) more efficiently than Git. Git can become slow when repositories contain large binary assets, even with the use of extensions like Git LFS.
Perforce allows you to "lock" binary files, which means that when one developer is editing a binary asset, others can't overwrite those changes, ensuring that there aren't any merge conflicts with binary files.
The downsides are that it gets real expensive real quick if you go past 5 users.
But it's basicly the cadilac of source control
hi im using github for source control (UE 5.3 but this occurred in 5.1 too): deleted actors on one workspace, pushed all changes to the repo, then pulled on another workspace, then opened UE and the deleted actors have returned.
it's causing duplicate actors and other really annoying errors. having to delete the same thing 4 times
pretty sure i havent done anything weird with ignores/exceptions to the OFPA folders. the external actor folder
@wraith oracle killin' it
Git has atomic submissions? Git also has snapshot based revisions, vs. Perforce file centric changelists, so repository state at the time of a snapshot is guaranteed
Unreal Engine also has integrations for Git, through the built-in source control system
Git does not get slow with large files when you use Git LFS
Git LFS lets you lock binary files too
Anyone willing to share a .p4ignore for a source engine?
btw if you want a nice middle-ground, Subversion is the way to go 😌
perforce is a pain in the ass to setup and maintain imo
oh yeah and git is just really fking annoying for large files, lfs or not, if you want to commit to remote servers
especially if you want a secure https connection
I remember having really bad problems with a local bitbucket instance
Have you tried it lately? The ESP can get it done in a few clicks 😉
What's the ESP? 😮
I wrote a blog to help! https://www.perforce.com/blog/vcs/perforce-enhanced-studio-pack
Noice. I roll my own scm hosting locally with external access. VisualSVN Server makes it effortless to set up an https connection, admin doesn't really need to do anything at all to make it happen. That was one of my other problems with self-hosting p4, was trying to get that level of security out of the box
does reverting files its like uploading them? depends on internet? cuz i got like 4k and when i do revert notihng happen (bad internet)
we cant shelve in ddefualt right
Shelve to named changelists always yes
@stable tendon how can i see the logs or console or something that tells me what perforce is doing rn the loading bar thingy bottom right no very informative
doe the uproject i just disable read only ttribute right as im not gonna check it out
No joke, I ran into that issue last night uploading my UE files. I'll get back to you today. I need to know as well 😉
Sometimes, it's easier to chunk your submits.
Essentially, it releases the read-only flag on that file/folder to make it writeable.
Awesome, thank you. It sounds like it would be ideal for me as I'm a 1-person team.
Does it have integration with GitHub or does it use a proprietary cloud site for non-local stuff?
Realizing I could just Google this but I prefer the interactivity.
I have mine running on a Digital Ocean Droplet that costs me about $14 a month
Perforce version control — Helix Core — tracks and manages changes to your source code, digital assets, and large binary files. It creates a single source of truth and collaboration platform that helps teams move faster, even as they develop complex products with thousands of contributors.
And it handles my 7 person team just fine.
Hey I have digital ocean free for the github student pack, can I get perforce?
I have a user on my team that at one time (few months ago) could open our project from Perforce repo... i ONLY share the content/config/source/.uproject out.... He has VS2019 configured teh same as I do and he has LAUNCHER version of UE 5.2. This hasnt been a problem...
Recently he installed a new hard drive, we wiped the project from his hard drive, setup shop at the new drive location and pointed his workspace to this location. After grabbing all - he's getting the following error.... I"ve not made ANY changes to platforms/SDKs in the project at all... tbh not much has changed with the buildtargets/build.cs at all.... but he's getting the following error when trying to GENERATE VS PROJECT FILES on the UPROJECT file. Does anything in this generic error message stand out?
Running UnrealBuildTool: dotnet "....\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" -projectfiles -project="X:/GAMEPROJ/VIGame/VIGame.uproject" -game -rocket -progress -log="X:\GAMEPROJ\VIGame/Saved/Logs/UnrealVersionSelector-2023.08.24-21.02.31.log"
Log file: X:\GAMEPROJ\VIGame\Saved\Logs\UnrealVersionSelector-2023.08.24-21.02.31.log
Log file: C:\Users\NeverTilt3d\AppData\Local\UnrealBuildTool\Log_GPF.txt
Some Platforms were skipped due to invalid SDK setup: IOS, Android, Linux, LinuxArm64.
See the log file for detailed information
Generating VisualStudio project files:
Discovering modules, targets and source code for project...
Targets with a unique build environment cannot be built with an installed engine.```
The platform SDK setup is not the part that's an error
"Targets with a unique build environment cannot be built with an installed engine." is the part that stands out
i'm looking through the log
hmmm.... is there any documentation on SourceBuild sharing projecst with LauncherBuild ?
well usually you don't do that, you pick one
thast completely not true ... why would artists need source build engines?
well I hate to tell you but that's how it's usually done. artists get pre-built binaries from the source build
through UnrealGameSync or other means
ideally a CI server would do it, but pretty much
yah i dont have jenkisn setup atm
just us 2
will be a while before i setup that kinda CI/CD
Side question, why not set it up? CI/CD can build while you sleep to make sure it compiles on check in without causing day to day issues. I setup CI/CD on my own projects even though it's usually just me. That way it can compile/test/etc. while I'm doing other things.
i come from an IT background and my dayjob is software development. Trust me i understand the needs and benefits of CI/CD pipelines. I just havent put forth that effort on this project because its only the 2 of us and to be honest - hes typically part time at best... so its about 90% me.
If project/team grew - i of course would do it. Just a decision thats all :/
Totally get it! GL 🙂
well.... binaries wasnt it :/ Passed him the ones from my project i built from source ... still the same error message.
Getting him to get the source build on his machine.
one day i'll figure out UGS :/
Well if they're building locally then the engine source it is. A unique build environment is when the Target.cs makes configuration changes that require a source build
If they're an artist they can survive off the binaries, but then they wouldn't need to generate projects to begin with
I have setup UGS before if you need some guidance on it
it says righ toff the bat that the project cant open - try to build from source.... thast when i share hte binaries to him.
hi there wha'ts the best way of using source control in ue5 ?
there is a built in feature right ,
Couple Perforce/Compiling questions for the room:
1: I'm seeing an issue where submitting UnrealEditor.modules to P4 causes it to get marked as read-only and builds fail. Looking at the P4 typemap it's not listed. Is it correct to give it the same mapping as .exe?
2: Does anyone here have information on the correct way to integrate plugins into a Perforce depot to be shared with a team? I can't seem to locate any info on the P4 setup and also keep running into issues with files being locked etc.
@lilac comet
there are a few different ways to deal with this, here's a few general possibilities
- implement and use UGS
- just use a build server like teamcity or jenkins to build and submit binaries for you. use virtual streams for coders, which omits the binaries from their workspaces so they are always building their own DLLs and not worrying about others
- change the typemap of build files to make them always writeable (easy to do, but can make it a challenge to ensure you are keeping things up to date well enough for your team)
- rely on annoying manual checkout of build products all the time (you are currently here)
re. plugins... develop the plugin in a separate depot, import the stream of it into your project streams depot
This is great info thank you!
I'm a bit inexperienced with the process for developing a plugin in a seperate depot. Could you talk me through the high level of that?
e.g. if you're setting up or assuming ownership of a plugin, you can set up a totally separate UE project dedicated solely to that plugin and put it into its own depot, this is no diffferent than your game project. and then you can edit your game project streams to import+ the plugin folder from the plugin's depot. then you can modify the plugin from either project and everything about it becomes shared. this might all be good or bad, depending.
if i had a workspace and sownloaded the full depot and the workspace was deleted, when creating anew do i need to download all the stuff again or noi?
i pasted all the content from the prev folder to the current will they get synced?
p4
what bouta students also what happened with the thing to see whats p4v doing instea dof the progress bar hello ryan
The server tracks what files it has sent/syncd to each workspace. It will not use the files you just copy over.
There is a command to update/sync your workspace on the server side without affecting your local files, which would effectively result in what you're asking for. But I don't know how to do it by heart
p4 sync -k?
that rings a bit of a bell, probably
does p4v implement all commands of p4 visually? or its worth tehe time learning commands if using p4v
It doesn't have all of them.
Or it misses certain options from some of them.
Am I just missing it or does p4v not have the ability to let the user run p4 commands in a pre-setup environment? You have to open a command prompt manually and make sure it's configured?
if you open a command prompt in p4v, it's meant to be setup with the environment you had in p4v
I took the suggestion of someone here and setup Perforce. When I change an object in the Unreal Editor and submit the change, it reflects in P4V, but what is the general workflow between this and Visual Studio?
Not sure after compiling when the file or change should reflect in the UE editor.
This maybe not directly related tou SVC - but what VPN's out there do you guys use for telework across WAN? this'll be my first time setting up this infrastructure - so i just want to make the right decision .... i'm looking at a few services that offer "6 devices" but i fear that is on 1 IP/network .... do these services provide PointToPoint ?
i don't know if the question makes sense, maybe you're still learning what version control systems are and do?
I understand what version control is used for, but I am new to actually integrating it with my workflow.
If someone can outline their process to create, edit, and submit a file after Unreal, Perforce, and Visual studio are configured, it would be very helpful.
For VS, usually you checkout native code files for your unreal projects and in the editor, it manages mostly unreal .asset or .umap files.
So if you are asking if you changed your native file which is referenced by multiple blueprint classes and then yes, you have to figure out those files and submit after the c++ native code changes manually.
How do you open a command prompt in p4v? I must be blind, I haven't seen the option. 😦
Damn. Thanks!
You can also right click a folder and choose that option as well
hopefully ping's video helps, generally any decent professional tools such as VS or UE will have integrations for perforce. if you weren't using any integration, you would have to do things manually (mark new files for addition in P4V, check out existing files to edit them in P4V, delete obsolete files from within P4V instead of deleting on windows explorer, run reconcile offline work command to capture any changes made manually outside of P4V or any perforce integration)
JetBrains has an integration for Perforce in Rider as well, I'll speaking in October about it too 🙂
beware that VS's integration for perforce has historically sucked ass (was functionally fine, but was slow/annoying), and... yes, rider has one that works well 😄
Haha, yeah, the VS one was recently updated per community feedback 😉
by chance is it async/non-UI-blocking now? 😬
that would be incredible 😄
I think it was this release... https://github.com/perforce/P4VS/blob/master/RELEASENOTES.txt#L231-L235
hmm might be one thing. IIRC it was the checkouts etc. that were also very annoying... memory is fuzzy as I haven't used it for 2 or 3 years at this point
Take another stab at it, if you have any issues, it's officially supported via GitHub issues.
👍 noted, I just need Jetbrains to peeve me off enough with weird new UI decisions first (they're coming close sometimes with some of their newer releases... 😄 )
Haven't tried the new one yet, I'll check it out
did they fix the bug in P4VS where you set it to "lazy load" in the P4VS settings and then it changes to "do not optimize" when you re-open VS/the menu
😬 not sure, I wasn't the one to work on it. Release notes are in that link above, let me know if it's still a problem with the latest release.
which one is the appopriate to install? The one I have highlighted in this image seems it has better features (and finished/working).
Let me check, they recently updated it...
That's the right one!
I was thinking about the P4VS Visual Studio plugin, which was recently updated via P4VS on GH
I"m seeing some broke functionality here - or maybe not the way I would expect it to work....
I definitely have a positive connection - test to my P4 server and it tests good. I can add a DirectoryMapping here in this window - but it only allows one... why have hte + button if it doesnt allow more than 1 VCS ? I use both GIT & P4 for SVC - is this not acceptable behavior in the eyes of Jetbrains?
https://www.jetbrains.com/help/rider/Enabling_and_Configuring_Perforce_Integration.html
if i need to submit a bug somewhere - please let me know.
you want to run both git, and perforce, on your source code, for the same UE project, within rider?
this definitely requires some explanation
that dialog defintely permits you to punch in more than one entry, although i have never tried actually doing so to see if it works well that way
Hey guys, so recently we put Git LFS into our project as we had alot of files over 100mb, bought storage packs and pushed our project. Now, we cook our project and theres just an insane amount of issues, skyboxes broken, game not wanting to work with dedicated server, etc just a ton of issues. It seems as if LFS has borked things, is there a step we might be missing for GIT to tidy things up or fix this?
why no workspaces foudn?
because the directory your project is in is not under a workspace root
what can i do
put your project under the workspace you created?
root alr set
mean this?
yes, so the project would have to be under D:\s52
What does the log say?
well since you've provided little information, but if you've typed in the workspace, why do you need that dropdown anyway?
the log will tell you why it can't find it anyway
that is not the log
there's "revision control log" in that dialog and then the actual output log
You might need an ssl: before the IP address, maybe.
bruh
yeah but that should be the same as P4V
Very welcome, GL!
hey, I created a digitalocean perforce server, logged into it using p4v, created a workspace, mapped the server to my workspace (I think?), and created an unreal project in the workspace folder, but when trying to mark for add anything from it I get the "file(s) not in client view" error
any idea how to solve it?
I tried following Version Control Fundamentals but they for some reason skip the part where they actually add the new project to the workspace/depot
ok I think I ended up solving it by creating a stream depot with the name of my project folder
nevermind
if anyone knows a simple, straightforward, complete tutorial to creating a depot in an existing perforce server and adding an entirely new unreal project to that depot I am here for it
Is there any storage limit for perforce or just members?
Is there a way to delete files from perforce depot but keep the files locally on my machine? (to go back to "?" status)
I'd mark for delete, paste files elsewhere and commit
but I want to keep folder structure
it's marketplace pack assets that were submitted but not used now so I wanna remove them from server but keep them locally for future use
No limit on files/folders. We only license by # of active users. There are some free tier limits (over 5, 20 workspaces, 1000 files, etc.).
You could mark them as archived, or move them to an archive depot type?
https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_archive.html (the command)
https://www.perforce.com/manuals/p4sag/Content/P4SAG/archiving-files.html (the depot type)
We've been making and updating our YouTube videos, here's one to answer your question about streams and Unreal 🙂 https://www.youtube.com/watch?v=Hvmvv2MG-UE
Learn how to configure a new Perforce Helix Core server for use with game engines and avoid some common mistakes so you can set your team up for success.
Links below!
0:00 - Intro
1:01 - Creating a Depot
3:33 - Creating a TypeMap
13:05 - Creating the Mainline Stream
14:40 - Creating a Workspace
18:55 - Ignoring Files
26:34 - Adding Project Fil...
Haha, perfect! Glad our updated videos are helping out 😀 .
i have 200$ on digital ocean is that enough for 5 ppl?
sorry for the late reply - yes we do GIT for source code - its easier for repository of true-text source ... and merging/featurebranching are easier to be honest than P4.
Perforce we use specificially for SVC of Binary files - though we also include source there for developers to be able to build on their local end (we are 100% telework).
What other explenation would you need?
That'll easily pay for the year? $14/mo for 12 months is $168. If you use Digital Ocean (DO), there are two costs, infrastructure ($168 for the year) and then the license cost. In this case, license is free!
Perforce can also mirror/sync git repos using Helix4Git. So you can have your code live right next to your assets, so if you're building a UE project, you can map source and assets into the same build process, then you don't need two VCS systems. When you have a few, check out https://www.perforce.com/resources/vcs/what-helix4git.
DO error? Try again?
First... Are you using classic depots or streams for perforce?
Second... I mean, to me that just sounds like a pointless major overcomplication since you can't work on branched source code features without branching your content assets? Unless all of your feature branching work is explicitly only .cpp file edits, or explicitly only new entirely standalone features like plugins?
I totally get where you are coming from as far as branched source code + branched content assets... that completely makes sense. Right now i'm a sole programmer for our team - so its a bit under control - and I can see how that would get messy with the addition of other programmers.
To be honest - i dont have a grasp on P4 streams - i've looked it up ... briefly understand their use-case but havent implemented them. I take it that theyre the same as feature branching in a GIT workflow fashion?
My 9-5 job is a application developer..... GIT has been natural to me for many a year - hence why i use it for source-only SVC.
Well, streams are still a unique perforce only system but they're entirely different to work with than classic depots... And not in a bad way
Having said that I still hardly ever/never branch dev since it's such a chore to do it safely
i dont know how much application development experience you have - but this is a native functionality to us.
Not sure how that's relevant
I'm a mechanical engineer by day, I don't try to force AutoCAD into my game dev 
It's about what you're used to, though.
If AutoCAD were applicable to game dev, I'm sure you'd favour it over a slightly different program that filled a very similar slot.
Even if the other program was technically better.
is it possible to check out a file from blueprint? so like, if I have some blueprint editor tool that's going to modify some files and it's gonna take a while, it could check out those files automatically before doing anything
i did the thing\
I mean like, have a custom blueprint editor tool do that rather than require the tool user to manually check out every file it's gonna modify
Uh - save on compile - forces a save ... and saving prompts you to checkout the file if it isnt already. Thats ONLY if you're connected to perforce plugin inside of UE
Er, sorry?... You can make game models in AutoCAD... I just don't...
Anyway, point stands
any tutorials on how to make a server from the creating a droplet point
which should i choose?
that's afaik only gonna happen after the files are modified, not before
is there any good video or article on more advanced stuff ie best practices on how to set up streams, and automating things like building binaries when moving stuff from programmer stream to main stream etc?
Anyone know what causes these errors on some items saving with preforce? Error saving '../../../../../Perforce/perforce_main_WorldofThrae/Content/Viking/Mesh/SK_Viking_Skeleton.uasset'
Just its unlocked and not read only..
Just wont save, last time it was my actual map.
I remade everything but this time I am to deep to start over.
I am trying to save a relocated socket, simple as hell.
Super undetailed and not sure where else to look.
Never happened until using preforce tho.
UGS keeps deleting my Build.version file and spilling out errors. Anyone else experience this?
Hey guys if you were to host a Perforce server at home what would you use? Intel NUC?
i wanna open console lol
Use a streams depot! I usually call my mainline "mainline".
Scroll up a bit, I pasted a few good YouTube videos to get you started.
thank you
What file permissions does that file have? What's it's status in P4V?
when i turn off the computer do the droplet still alive or it turns off?\
Something that has enough disk space, CPU and RAM... It'll install onto almost anything (no ARM yet though 😉 )
If you turn off "your" computer, the droplet will still be online. That's the power of the cloud!
y like the admin
looking into some mini p like intel celeron n5105 it might do the job. I want something resilient
That'd be fine if you're not hammering it. p4d can get pretty cpu intense if processing a lot of submits/syncs.
you would go for a 8 core?
Yup
Try it out on hardware you have. And before upgrading hardware, tweak the threads/system configs p4 configure show will get you started
I have done on many hardware or cloud instances... I'm having a new space for my studio where I could host it so trying to find something not to pricy but perfect for the job where I will migrate all my cloud projects
AMD Ryzen 7 4800U something like this?
It should only modify that file
It's using the SetVersion UAT job
Should be ok... I've tested p4d on an AWS micro tier, which has less specs. (though you quickly run into limits on big submits)
running it on lightsail
Good to know. Restarting my computer seems to have fixed it for now.
Also, guessing that the UGS Metadata Server shouldn't be publicly on the internet.
How do you guy get the information to everyone? A centralized VPN?
well it needs to be reachable by everyone using UGS on your team
IP allowlist is another approach, but a kinda obscure URL also works but isn't the most secure
the data UGS has is mostly ephemeral anyway so I wasn't too worried about security
Fair enough, whitelisting IPs sounds like a nightmare tbh with how many devices and traveling happens
We do have a pretty lame URL 😂
Also, stupid question, but when compiling your version of USG MS for linux it still spits out DLLs. Guessing that is expected? Didn't think linux could run those.
yes? .NET on Linux produces and can load DLLs
Ok, makes sense
I probably did something stupid because it doesn't generate the .asax or .config files 😂
?
well if you're using the .NET Framework stuff that's in the engine distribution
a little bit, since you can configure with env vars instead
and the config file is json rather than xml
Interesting
Are there no folders? Just wanted to confirm I didn't screw something up
.Net 6 publish seems to put everything all together
Are you asking at a file explorer level? I ensured the entire main depot was unlocked, I checked the asset and read only is not on.
Also running into this when committing now.
Its my first Preforce setup but it was fine yesterday..
All I did was migrate other project components from my past unreal projects and it went to shit.
I do not want to develop or make changes until I fix the errors. I could start over but this is my 2nd time running into something not saving right.
do i need to create users in p4 admin for invite ppl?
b4 they join?
or cant they just set a connction
Yes @kindred spruce there is a video on preforce website for install/setup and adding users.
Very helpful as they have to do things on their end too
Though I have not had to add someone yet 😛
o i thought they just joined with the port and thats it
No they would need authentication and a user for authorization to SSH or whatever plan you have for them to access by port.
At least thats my understanding.
So they need added as a user I think.
But have not done it yet sorry.
Np, I try to at least point you to what I skimmed over haha
yea coz when setting up a connection it ask for user and thats needs to be valid
cool
Sounds right.
we could just create duplicated users for the other ppl with same acess and thats it
different worksapce name 4 idnetificatiob
perforce's user licenses are in fact per user (i.e. a seat). in other words, you should be careful what you speak of my friend
Yup! Usually that's the best way to scale Helix Core. You want a super fast SSD/NVMe for the metadata volume and a slower one would work well for the depot data.
but does the extra space gets added to the other space *(25gb) or how can i see it in helix core
mm volumes managed in the droplet console only\
how to migrate a live perforce server (hosted on aws) to a desktop linux ?
ok, so i managed to do that and there is a .git folder locally in my project itself.
so that's my git repository locally, i suppose?
What i had originally done was create the repo using other means and try to link it but UE5 hated it and gave me errors galore
debating having it on a separate drive now...
i just don't want to do anything related to online cloud stuff
and since I am doing a solo project, sharing isn't an issue
that looks like it's not using git lfs
@late thicket can i change the directory inside of unreal?
ah no i meant the source control directory
sec playing around
oh yeah i forgot about lfs
wut
well now i am stuck with no being able to accept the settings
how annoying...
@late thicket mind I dm you what I see? I don't want to post pictures of the paths on this server :/
that's fine, sec
so here, under the URL
wanting to keep your project entirely local is one heck of a choice imho
I should plug in my local path, right?
It's a solo project I had been playing with for years and I am not planning on sharing it or doing anything with it anyways. I just want to have a backup floating around.
yeah i mean if it's a throwaway it's a throwaway, sure
I have used GITHUB for group projects before, it's fun, but for this, I don't particularly need to; I am going to do a couple of "maybe it will break everything" changes and I need a backup for that
it doesnt really
I just don't feel like backing up 20 gb daily
theres been near 0 work on making binaries work better
none of that handles binary files
those are just large repo things
those are not things that target individual files
it's for large repos, ie, many files
there are 2 problems with git, one is managing large repos and one is managing large individual files
large repos is solved by what you mention
but the work for large files is still planned and hasn't really been undertaken
stuff like the diff algorithm, object storage, http transfer protocol
like you get issues even with transferring 1 or 2 large binary files sometimes
unpack failed, transfer errors, etc
because the protocol and data structures arent made for large binary files
does it matter locally though?
sparse checkout/partial clone of 1 file still fails
if it's just a local git repo
then it's probably fine though your history can get bloated
that's fine, 1 tb of space to waste
but LFS wouldnt help anyway
because LFS can only save space if you have a remote to push to
yeah, that's what I was thinking
i didnt read the full context
I wanted to make a local git for backup purposes
also i do recommend using https://github.com/ProjectBorealis/UEGitPlugin
disclaimer i wrote it
its a lot faster than the built in one
on my todo list
for gathering file status, committing,etc
i think when zanet keeps saying "backup purposes" zanet just means to say "the ability to revert my work back in time purposes"
yes!
but unlike other software, it may have bugs, im terrible, etc
what it do
based on the documentation, adds more functions in the editor to use with source control
Anyone know Preforce enough to explain to me why it keeps resaving non-edited files?
Suddenly I have 12k file changes and I made no changes to any of those files. It like because I checked out the main depo everything needs uploaded. I had to sit here and click upload one by one last time to clear the entire project.
But now its happening again and I have no idea why.
Ok, i am not understanding this. when using Github, i am about to make a change that affects 18 files, but i am only entering one message. is there a way on Github itself to change the commit notes? (not fully UE related, so ignore if you must)
i ended up just changing the commit and uploading one at a time
i've never used helix sync before but... is there an option to "revert unchanged" anywhere in this thing?
yes there's a Revert If Unchanged option
in p4v actually nvm
MAN UGS is really persnickity about precompiled binaries. I'll make a binary with the Build graph tool, and it'll get zipped and uploaded to perforce just fine, but it never shows up in UGS as a precompiled binary I can use.
is there a setting in a file somewhere that marks a checkin compatable with a particular binary?
I can sync with the whole code for the editor and build it, but I really need pre-compiled binaries to work for other people on my team.
From the documentation: " any changes that don't have matching binaries will be greyed out. "
which is what is happening. Do I need to recompile the engine every time I check somthing in? that seems insane to me...
What's a CL description?
Change list. Like a commit in git, I suppose?
I guess? I wonder if that's the reason my PCBs aren't showing up in UGS
Probably
Oh the CL# is the Change List Number of the last time you did a code change in your engine.
I still can't figure out why my PCBs aren't showing up in UGS.
what is this path
usually this tab just shows the uproject name (with extension) and that's it
did you actually setup the engine as a native build?
and what does your UnrealGameSync.ini look like? where is it located?
That's the path to the project file on disk. if I right click it I can have it show other stuff like the stream or workspace information.
I THINK I set up the engine as a native build. What does that mean? Building from source? If so, then yes.
"C:\LX\unreal\engine\5.2.0\Projects\InsightecUnreal\Build\UnrealGameSync.ini"
[//unreal/unreal/unreal_base/engine/5.2.0/Projects/InsightecUnreal/InsightecUnreal.uproject]
ZippedBinariesPath=//unreal/unreal/unreal_base/++unreal+unreal+unreal_base-UnrealEditor.zip
well these are some unnecessarily long paths. did you verify it was being submitted to that depot location and what is the changelist description the binaries were submitted under?
Build/UnrealGameSync.ini under the project root is correct
[CL 160476] Updated binaries
also a native build means
Engine/
MyProject/
Content
Config
Source
MyProject.uproject
GenerateProjectFiles.bat
though actually I think the INI sections are branches, but let me check one second
OH maybe I have the project in the wrong spot!
this is one directory level too deep unless you made a custom uprojectdirs file
yar
I"m going to try moving it, but I have like 170K other files I need to check into p4 first. so blerg. Thanks for the tip. I'll let you know how it works.
I wouldn't do that all at once. p4 will explode.
I do find this structure odd still, usually it's as simple as //projectname/ProjectFolder/Project.uproject
You can have a separate engine depot to store the "clean" engine
this is like doing classic depot management but with stream depots
Yeah, no. I'll do around 20K at a time.
In perforce using an import stream mapping still allows users to checkout imported files, even though they can't submit them. In P4V this doesn't cause any contention with other workspaces so isn't a problem, but unreals integration treats it as an exclusive lock.
Is there any way to completely prevent checking out an imported file?
For the UGS Metadata Server, it would appear that some files really should not be publically accessible
Like the MySqlConnection var
Is there some documentation on what to expose and what to not expose?
I'm not sure what "expose" means in this context
it's a web service and that's a config value
Right, I want to make sure config files (and thus their values) are not exposed to the web.
When publishing the project, I'm not exactly clear on what files are actually serving as the front for the web service
In your case, do you set the MetadataServer file to run every server startup?
Again ???
It's not like someone can go to yoursite/Web.config and see the values
Sorry, I'm talking about running dotnet MetadataServer.dll
Which makes sense
You're saying I don't even need to involve httpd
yes it has its own web server
you have an external one if you want to reverse proxy
If it's using kestrel it sure does. And even if it doesn't you'd generally run it behind a reverse proxy that does.
though it's targeting framework 4.6.2 so it might not be kestrel. Either way, if you're running behind IIS you can use https anyway.
it is possible to change the name of the server from master.1 to else?
also, is it possible to be the super user and a user of in p4v for changing files and managing in as 1 person or i need 2 users for that, one super and one write?
Anyone has tried to put a cloudflare domain for a perforce ?
Well you can do an A record like any other DNS provider, but you must not use Cloudflare's proxy on it
Super user has all capabilities
We need a dark mode for UGS lol my eyes are burning
I reverted, then the BP wouldn't compile - something in the self references passed to events screwed something up - I tried to recreate the events and now I see this - fix up redirectors did nothing
here is the problem - how do I delete this actor -
Extremely helpful... not even a hint as to what is wrong. 😑
Have you tried going to that url in your browser?
Why would UGS not show the changelists that are binary submittals?
Is it possible to mirror a helix core server onto goitjib and have them completely synced?
you probably need to include the port number
so like https://pluppen:453
simply putting https://pluppen/ would likely try to direct it to port 80
no, it's that I hadn't added any files to the repository... it's a decade old error message apparently 😩
now that I added files, I get the "not a working copy" error instead 😔
and the forum thread about that error message is also literally a decade old 🥳
Epic = progress 😬
You can manually do it, as a human... You could code automation tools to try and do it for you... (like epic has done somehow with unreal on github, at least one-way sync)
Otherwise no, these softwares aren't related to each other
They started tekenourjibs. So now they've goitjibs!
There's automatic git to p4 and p4 to git tools.
I should've known there would be some mad people already out there
Hey! Was wondering if anyone could help me with a UGS problem. I have built and installed UGS. I also created another stream to hold my binaries and have created the .ini to point toward that path in the depot. and yet, when I go in my UGS, I can't activate the option use precompiled binaries, it says it is not available for my project, I am unsure on what to do and there is little doc, forums post on those problems,
Wassup fellow Unreal Nerds; I'm doing some tinkering and noticed I haven't updated my perforce since 2020, is it worth updating? Any new features of any note? Everything seems to work just fine.
You'll be fine! We've added a ton, check out our release page for cool updates (scroll for bigger features) https://www.perforce.com/products/helix-core/whats-new-helix-core
I took a look, and there doesn't seem to be a UGS channel on this Discord. I think we might need one...
Damn a Helix homie! Thanks bud, I actually upgraded 'justincase' but good to know. Now I have the headache of trying to understand what the difference is between a 'classic' depot and a new 'streams depot'
it would be really interesting, considering the lack of of forum or general information online about it,although I was able to figure it out in the end, I had forgot a return line in my .ini text file... that was it haha.
Go Streams... it's the new (2014) hotness here's a link https://www.youtube.com/watch?v=HaRsCVLNoxA
(side note, we have a few more videos coming out this week, subscribe to our YouTube channel!)
well what did you put into UnrealGameSync.ini, what format did you use for the commit messages?
also did you use the included BuildGraph to prepare for UGS submission or roll your own thing?
Are their any full tutorials for a full perforce devops pipeline that include:
-Helix Swarm setup
-Perforce (P4D)
-Jenkins (or other CI/CD)
-Test automation
!Follow, a full CI/CD pipeline setup using perforce, unreal tests and automated deployment (e.g. automated server build and upload) would be SO GOOD
Sorry for the delay, it was simply doing a return line after the projet path between bracket [XXX/XXXX/.uprojet] since I copied it from the doc there was no return line. For the rest of your question, I simply used the default given by the doc once again.
Hey @scenic gale and @slender coyote ! I'm actually working on this right now! Trying to get the complete end to end workflow figured out so we can share it out and iterate on it.
@scenic gale In the mean time, we have the Enhanced Studio Pack for Helix Core which can setup p4d/swarm/hansoft and have them all integrated. We didn't add Jenkins/UGS/MUE as it would've been a bit heavy.
That’s awesome! I’ll try to keep an eye on this channel but if there is any other way to get notified when that is done let me know.
I saw that when I was researching I was going to check that out in AWS and cost assess vs Digital Ocean which I use now
We're using P4 and UGS on our team. For game 3 we were hoping to move back toward the launcher binary build just for ease over managing an engine build ourselves (easier install for non-techies and easier upgrade path).
One "problem" we've run into is how to handle "Engine " Plugins/Content. I was wondering if anyone has solved this problem in a clever way. Some solutions we plan to investigate:
-
Create like a .bat file that runs and detects changes to some folder in the project directory that copies and pastes plugins to individual users Engine/Plugins folders. (Pros: Guarantees people stay in sync Cons: PITA to maintain I bet)
-
Try to find out where the engine configures its plugin directory and change that to a folder in the project directory. (Pros: Easy Cons: Will break people's local engine if they uninstall the project)
-
Convert all engine plugins to project plugins. (Pros: Clean. Cons: We don't know how to do this or if its possible)
-
Say screw it and just suck it up and handle distributing and building the engine in source.
If anyone has other ideas or advisement it'd be much appreciated.
Does anyone know how to get workspace to show up using perforce? Right now my perforce just shows blue text Client@ on a checked out file instead of Client@Workspace.
of course installing plugins to project is possible
though I'm not sure for your reasoning about going back to the binary engine though
but just make sure you setup your depot so it's easier to convert to a source build later if you have to
What type of files in the binaries folder(s) would be safe to commit so non-programmers don't have to rebuild the project to open it?
@azure breach I haven't done that yet, but what I've heard around is that as soon as you start customizing UE/adding plugins, it'll be easier to build the engine via source, as it requires less scripts/hacks. But that might be a good question for another channel (not sure which one!).
Do you have a filter or bookmark set? Are you looking at the whole list of workspaces?
sorry if this is a noob question but i tried googling this and im still quite confused - when using perforce for version control, should i:
A) set my unreal project folder as "workspace root" in perforce
or B) make a new empty folder for it and "add" my project files to it in p4v
?
I would suggest to setup a workspace, create a new empty folder, and then add your UE project to that. That way it'll be in source control. Does that help?
okay, thank you
you probably want B anyway because it'll make transitioning to a source build later easier if you have to
both will technically work
@woven sluice still having issues updating engine versions
i just got fresh 5.3 from Epic P4
but i cant seem to get it to detect the changes in my pristine branch
Probably wrong ping, I don't have p4 access
no to my own perforce
on my own perforce i keep a copy of the engine in fresh pristine
its currently 5.2, i just got 5.3, and it wont detect the changes
you helped me a few weeks ago (well gave me suggestions)
nvm sorry was @pulsar parcel, my bad 😛
All I do is reconcile in the clean branch
Then perform a p4 merge to the target branch
yeah i did that, but it does nothing, tried command line and client
As long as you initially performed a p4 copy
In the merge window all I used was "specify source and target paths" not stream to stream
Yes, since that uses modified dates
Much quicker that way
You reconcile when you want to update your clean stream
right, not sure why this is not working then 😦
how about merging your changes to the engine?
i only have a few so doing it manually is no big deal
The project stream will have the modifications in it so when you merge from the clean engine branch you'll have merge conflicts generated from your own changes
@stable tendon I think the perforce template link is broken on AWS I tried to open the template from the email sign up
Oh i actually don't know what those are can you point me to a link? I am not sure if we are talking about the same thing, I hop around devices a lot in UE5 and sometime i forgot which device i had a file checked out. Each device has a unique workspace name.
Hello, anyone here knows why when Perforce Source Control is activated in UE5, the editor takes up to 20-30 seconds to do simple task like Ctrl Z to undo object or renaming BP, etc etc?
well what's going on in your editor log, anything weird?
it does take longer, not 20-30 seconds though
Yeah, I can send you the log on a PM
just here
yeah thought that might be it, you committed temp folders to source control
diud you set up an ignore file?
Nope, No idea what that is.
every version control system has different ways to tell it what stuff it should not track. usually called an ignore file or something like that.
you'll need to research how to use it, set one up for your repo, and then you'll need to manually delete and commit the deletion of any temp files that should have been ignored
Epic has docs on this with suggestions on what to ignore, and of course perforce will have docs somewhere on how to use their software. and you can find sample ignore files here or on github through searching
Ah, Ok I think I kinda of am able to wrap my head around it. I'll look into it.
sidenote, perforce has two different kinds of depots... Classic and Streams. the ideal process for setting up ignores can be a bit different for each, although an old fashioned manual ignore file works the same for both
Can you set UGS to open rider instead of VS?
When you rebase from 5.2 to 5.3 successfully 
Screenshots or it didn't happen... jk, grats! 🤘
Yeah, AWS decided to turn off their multi-AMI solutions across the AWS marketplace with a week notice, sorry about that!
Here's the new link: https://us-east-1.console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/quickcreate?templateURL=https://perforce-cf-templates.s3.amazonaws.com/releases/enhanced-studio-pack-latest.yaml
And the associated instructions: https://www.perforce.com/products/helix-core/install-enhanced-studio-pack-aws
If you use streams (which you prob should), you can setup your ignore folders in your stream spec. Instead of using a file like p4ignore.txt, I setup my UE project w/stream ignores. Here's a pic and snippet.
/DeriveDataCache/...
/Intermediate/...
/Saved/...
I still don't understand quite how paths and components are different
Paths are how a stream is laid out, kind of like a folder path. Components are a new feature that allow you to bring in other streams in a modular way. If you've ever done Javascript coding, it's like how NPM imports lots of packages (libraries) for you to use in your code. And without it modifying the upstream.
Stream components could work well with maybe some UE engine plugins, where the main stream is UE source, and you can reference other components.
Here's a link! https://www.perforce.com/manuals/p4v/Content/P4V/stream-components.html
Can’t paths import from other streams though?
The reason I ask is because Perforce recommended me to use components but because components require that they be placed in a subdirectory (they can’t be in the root) it breaks how I would need the project setup to be “native” and work with unreal out-of-the-box so to speak
My understanding is that paths can map to the root of a stream
Great question, let me dive in on my side and get back to you!
But I’m not sure what limitations I run into using a path over a component
Awesome. Thank you
@remote bobcat Alrighty, here's what I got. Paths work fine, but where streams using components shine is the ability to update the local paths based on the upstream stream component. Paths are more hardcoded, where as stream components are more dynamic. So if you referenced ComponentA in StreamX... //stream-x//component-a/... all the component-a sub folders/paths will automatically update based on the upstream component.
Caveat, the local component-a path can be locked into a specific revision, thus not getting any latest updates. That would be good if you need to lock to a specific version to prevent surprise updates.
I hope that helps! Here's another link to components with more examples: https://www.perforce.com/manuals/p4guide/Content/P4Guide/stream-components.html#Stream_Components
where streams using components shine is the ability to update the local paths based on the upstream stream component
So basically component paths get propagated downstream?
all of component-a's sub folders/paths will automatically update based on the upstream component.
Would this not be true for paths? If a path is importing from another stream, and that steam has files/folders updated, do they not sync to the stream that is importing the path?
Correct x 2. Paths don't get updated. Paths within a component do.
Got it. Thanks for the help and clarification!
NP! Go get it!
@stable tendon i added xml as text+w in typemaps
but for somereason its still text
is there a way i can fix this in all depots?
i see p4 retype
do i then need to reconcile to make it update?
Anyone have any thoughts on what I could check on if my Config\DefaultEditor.ini file is constaly changing for every computer using it, meaning it's always checking itself out and always needing to be merged? Not sure if I've got a blueprint or something messing with it on accident, or if there is something more obvious I should look at first.
How do you push stuff into a release stream? It only merges down, it's not bidirectional