#source-control
1 messages · Page 66 of 1
Hm, ok, yeah.
I´ll need to think a bit more on how to proceed.
Gotta move one of the workstation out of the office temporarily, so it won´t have access to the office server anywayys.
So I´ll need to create a new temp workspace and sync everything to it and then create a new temp workplace.
Once its back and I just wanna switch between workstations for rendering, I can use the above approach to use the same user with the same workspace from different workstations.
Just one more quick question...
Can I just copy over the whole folder from the server to the workstations local drive and set up the mapping, WITHOUT then having to sync the whole depot again?
Copying is obviously a lot faster than syncing from the cloud storage, where we keep the depot.
HA!
Found it.
After copying all the files, right click on the Workspace root directory in p4v client, pick "open command line here", type p4 flush and enter.
That just updates the "have list" on your workspace, without syncing all the files.
I just got git integration setup with my project, and when my partners pulled the project and initialized it with git, there's no .sln, how can we fix this?
you generate it from the uproject
you're not supposed to submit the sln or any of the other visual studio project files
Thank you 🙂
Merging changes from 4.26 to 4.27 is a no go right?
what do you mean? You can always upgrade project "relatively" effortlessly
downgrading would be a lot more annoying
all branches
yes it can lock, you need a custom plugin for it
Thx mate!
Do you guys recommend digital Ocean as a perforce host or are there better options?
To clarify, I have a branch that's upgraded to 4.27 and I'm checking it to see if anything broke. My colleagues are still working on the 4.26 version.
I'm wondering if alterations, aside C++ Code, can be merged
Hello, is someone using perforce? I have a few questions
Just ask!
I have used perforce before just as an user to submit etc, but now I had to set it up myself and Im learning most of the basics. For example how can I check how much server space i have on the depot left?
There should be a separate program called P4Admin
yes I have it, but it can't seem to find where it shows
No, don't submit assets you changed with UE4.27, they won't be able to open them in UE4.26
And vice versa?
All buttons are greyed out except users and groups
are you logged in as admin?
are you logged in as super?
No problem since you are able to open the project from 4.26 in 4.27 obviously (and beyond).
I don't think so, im trying to log out, but when I close and open it it's just logged in
Thanks and that does make sense! When upgrading. only the uproject file is chagned and nothing else
this is what i see here
Windows 10
oh ffs lol
I had to refresh it
lol
it works now
Here is one more thing I don't understand. in perforce admin I have this tab depots and I have some old project in it. Why are they here ? In P4V Depot there is nothing
In p4v it's probably not mapped in your workspace. Modify your workspace and you can probably reveal them. In p4admin everything is visible, there is no workspace mapping
I just obliterated them from p4admin, but the disk in use and remaining space didn't change?
No idea. Never had the balls to obliterate anything. P4 is like this black hole that sucks in everything and nothing ever leaves it for me lol
Wait till you do a Get Latest Revision with the Force Operation on
And find out you deleted a file locally and forgot to designate it as deleted on P4
I'm just getting into source control and was wondering how like the change logs work I'm sure they aren't full project files but if I need to roll back to say 3 changes logs previous how is that data stored is it just a massive file is it a snapshot of the project?
I feel like my project is gonna be a real mess with perforce lol
it was without until now
how to connect to multi user source control
it always lands this error upon connection
you probably shouldn't use classic depots though, streams are generally used now
If I want to roll back a few changelists, do I do that sequentiually? I get an error on the first one (most recent one) that says the item is opened on the client (though I've have exited Unreal)
Unreal (wont?) release or change the status of an item on exit. You'll need to use p4v.
can u setup local perforce server on your pc as your unreal engine source control?\
i dont have money to put my perforce server on the cloud atm
and im working alone as now so i dont think i need a cloud perforce server
tag me btw
that's where I was working - WHAT symbol is that?
Yes you totally can, though you can get a server for like 9 bucks a month if you can swing that
i really wanna do that but im super tight on money right now 😦
thanks for the information btw
one more question,other than epic documentation on source control,is there any resources that people here use to setup perforce
nvm just found my answer on pinned comment from dimy
I have no idea! Anybody else?
Some type of branch
"Branched" in the Perforce linguo, meaning renamed, moved or copied
https://github.com/PlasticSCM/UE4PlasticPlugin#status-icons
I just realized you mention how to setup blueprint diffing with plastic. Nice! Will try out as soon as I'm on the computer
what is stream?
Why can I not seem to push my changelists from p4v? It shows zero files pending - but I can push from Unreal just fine, so I know it's connection
I figured out what it was - somehow I logged into a different user on this workspace and all the files are on that pending
need to figure out how to change the ownership of htem
It won't let me "see" the changes on the other users (User A can see User B's pending changelist) but I need to be able to see User A's FROM User B, because I want this CL pushed from User B)
All users have Super access per P4A
my only guess at this point is that somehow the connection in Unreal was made to one user, but not the one I want, and P4V doesn't connect the two
I'm not sure how you could be connected to Perforce in Unreal but not connected to the same user you logged in as
Yeah, that was it
anyone know what the default storage amount for a repo using git lfs is? can't find a straight answer online some say 1gb 2gb 10 idk
Depends who your host is
Git lfs itself doesn't specify repo size limits. GitHub and gitlab as hosts do though
Gitlab, even self hosted has limits too afaik
if talking about github, it says on top of this page https://docs.github.com/en/repositories/working-with-files/managing-large-files/about-storage-and-bandwidth-usage
yeah on Github itself its 2GB so i've invested in a data pack
Hi Im new to perforce. Is there anyone in here, that I could pay $20-40 just to walk me thru how to import an existing project into perforce and a few things?
I already have perforce up and running, hosted on a GCP server.
Just wanting to have a good setup to start with
anyone having issues with checking out files on ue5 with perforce
go to your project file location- right click copy the entire folder- then right click paste it into the p4v workplace file
go to p4v and hit refresh top left- then right click your file and mark for add (on workplace)
then doubble click the red thing on the right- add
as well still having issues of changing something and ue5 not checking out the files
I have been using Perforce for years, but I have always updated Unreal Engine source code from Github, esp for the ability to open Pull Requests from our own changes.
Do some of you know if it's possible to upgrade the Engine directly from Epic Games Perforce servers when you have UDN access?
I guess you have to start from scratch from one of their stream and only then add your own game dir alongside the Engine dir in the repository
Is there some public docs on how to setup that? (now that I don't have UDN access 😉 )
The official documentation on how to "Downloading Unreal Engine with Perforce" is good enough to know how to connect to Epic Games' Perforce repository
https://docs.unrealengine.com/4.26/en-US/ProgrammingAndScripting/UsingPerforce/Basics/ (I have been using this)
But this doesn't tell me if it's possible to, basically, merge from Epic Game Perforce repo to another one
Instructions for downloading Unreal Engine source code with Perforce.
I guess I can rephrase the question into: is it possible to merge from one perforce repo to another one?
I don't think so, but the complete history is usually not particularly useful unless you're keeping a live mirror of //UE5/Main or something
usually the process was to p4 sync from Epic's P4, copy it over whatever is already there and reconcile
pretty much the same process as if you were pulling from the github, with the extra step of running GitDependencies.exe
Yes, thanks, it's what everyone does to my knowledge
Albeit some from Github like I said
But I have someone else telling me that it should be better than that since it's both Perforce,
So I was considering that, perhaps, I missed a sort of "distributed" model for Perforce: I couldn't find anything like that using google & Perforce official docs
I'm sure there is a distributed/clustering model since I'm sure that's what Epic does for their worldwide team, but that's when it's the same set of depots and the servers trust each other
you can use https://github.com/perforce/p4transfer if you want a mirror with complete history but there isn't a magic way to clone built into p4(d)
If you have a 2015.1 or greater Helix Core server then you can use the Helix native DVCS commands (p4 clone/p4 fetch/p4 push). If you have a pre-2015.1 version of Helix Core (or very large repository sizes to be transferred), then P4Transfer.py may be your best option! See next section for guidance.
hmmmm
Mirroring I was aware of
p4transfer is community based, not supported, but very interesting nonetheless!
it's worked on by someone who works on p4's consulting team
I'll have to wrap my head around their DVCS model; I cannot find useful info in if it's possible to use this with Epic Games' repo, or if it need a specific setup
Does anyone know why the Perforce plugin is not in my friend's list of available plugins - UE4? Does he have to download any Perforce software first?
Thanks!
DVCS isn't enabled with the epicgames repo perforce endpoint atm.
then you'll probably have to use that python script then if you want a copy with history
DVCS is kind of weird, and has a couple different usage scenarios. it's really only useful imo if you're using it to mirror from one server path to another (where there aren't conflicts)
Okay, thanks; it seems they are not even using the same terms; "depots" vs "repots"
Is repots even a word? It should be repos!
well p4 had branches but they were slow, and streams replaced the
it's what you do to plants that have outgrown their temporary home
so when people say branches now in p4 land they actually mean streams
Okay, so it's a verb, but not a noun!
sh*t, I am uncovered ;p
I was actually mixing with P4 Git
https://www.perforce.com/manuals//helix-for-git/Content/Helix4Git/chapter.depots-and-repos.html
All versioned files that users work with reside in a shared repository called a depot. By default, a depot named depot of type local is created in the Helix Core server (the Helix server ) when the server starts up. This kind of depot is also referred to as a classic Closed. In addition, the Helix server installation creates a default graph depotClosed named repo. A graph depot is a depot of type graph that serves as a container for Git repos.
I've used Subversion professionally for decades on a variety of projects, and for Unreal for the last six.
It works well, and I'm not sure why there's so much dismissal for it.
We chose it because we were a small company and didn't have the time or money to bring in Perforce. i.e. we aren't big enough to want to have a "Perforce Expert" on staff, which seems to be required to use it well.
Subversion supports central locking (required for uassets and source assets), works on a regular-old linux server (we actually have our running on a Synology), and backs up with normal backup systems.
It handles very large binary files (required for uassets, sources) as well as code. (We put both kinds of data in the same repo.) Git's large file solution(s) are still not ready for primetime, IMO, and need a completely secondary filesystem that you have to also manage.
We couple it with BeyondCompare for code commits.
Art and content teams usually commit from inside Unreal.
We also use TortoiseSVN (as we do all dev on Windows boxes).
Unreal's Subversion plugin does have some performance problems. The main one being that asking for the status on individual files is much slower than getting the status on the entire repo (once you ask for more than like three files).
We made a local change to the plugin so that it just does a full-repo status update instead, and then the standard Unreal revcontrol caching kicks in.
Sadly, OFPA isn't supported on anything but Perforce as this point, and I haven't heard any promises for the other systems yet. Nor is there any real docs about the Interfaces implemented for Revision Control, so it's hard to tell what needs to be implemented for them to work.
[Edit 4/27/2022: I was mistaken: UE5 handles OFPA in editor with Subversion just fine. Changelists don't work, but everything else does. (Hooray!)]
Forgot to say: we've launched and maintained a live game using Unreal + Subversion.
Is there any issues with submitting a changelist to the perforce server and working on the project at the same time? I assume it should be fine if it's on the local and not connected to source control?
Just don't
this feels like one of those "probably best not to" situations
i've always avoided it incase i change the file that is about to be submitted and then my commit is not what i wanted it to be
your commits SHOULDN'T take too long if local, go grab a coffee or something. IF your commits are taking that long, i'd probably look at your workflow to reduce commit size. commit early, commit often as they say. And ofcourse limit commits to specific pieces of work, not monolithic commits of hundreds of changes
Awesome, that makes a lot of sense. I gave it a go which seemed to work without issue, but I believe I didn't touch any commits being sent through at the time. Thank you for the detailed answer much appreciated 🙂
Does Perforce P4V add the Perforce plugin to UE4, or do you need to also install P4 and P4D? I've setup the server on my local pc but my friend needs to access it so we can both make changes.
Thanks
I think you still need to install p4v to setup your workspace at the very least. And then ue4 just provides some automatic functions and editor integration
so yes, pretty sure you need P4V. You don't need P4D
not just for another users machine anyway
Thanks Boris.
Hi, I have a perforce server with two computers connected (PC and Mac), but when I edit a file from mac, with some special character in it (like 'ñ', 'á'...), on Windows it loses all the references of that file. That didn't happen with Git server, so I think this is something about the character encoding on the perforce server setup. Does anyone know about this?
In the file contents or file name?
the file name
like, all textures inside a folder that has an 'á', or a static mesh with an 'ñ', in the name. All those files gets lost if are referenced in the level or inside a blueprint
but only if I modify them from mac and download them on windows
I have my pc set up as a Perforce server. When my friend installs P4V, does he need to choose Remote Server to be able to connect to mine in order to use Multi-User Editingf in UE4?
I found loads of videos on how to setup the first pc, but not how a second pc can link to it in UE4
OFPA works perfectly with plastic in UE 4.27, 5.0 and 5.0EA also using the official plugins. Perfectly means, it works, but not fast, but SRombauts is actively working on it. The current version of the plastic plugin should improve performance a lot
The thing that's officially only supported with perforce is changelists
I have started adding support for warning if changes are made to an asset on another branch
And the weeks after it will be about implementing the support for changelists 🙂
I'll see if it make sense to release partial support for earlier adopters or go straight for the full blown integral support at once (depends on the amounts of time and issues I encounter)
I love that! I follow your commits on the github repo and love the activity. In our case we run the latest version of the plugin, directly from the master branch, and as long as the base features work without issues there is no reason for us to change that. I plan to update the plugin in our repo regularly so we get the improvements. Since we have a cpp project it doesn't matter anyways
Btw I assumed the current implementation notices that the assets changed on any branch? Most users will likely have a single-branch-for-assets workflow so it doesn't matter too much. The persons working on branches are very few in our case, and we work closely together
(btw I hope you don't have to work ok saturdays?)
Nice!
I should be doing all the important changes on branches as PR for external reviews and validation
But I am still doing some boring cleanup and refractor on main directly when I feel like moving faster and it isn't risky
I am not really working, I'll enjoy the weekend don't worry!
Ok 🙂
Imo it's fine to do smaller and not risky stuff directly on main. I personally really like that you develop features on branches. I know many smaller projects that just have their commits on main directly and rarely branch, but most of these projects are very distributed (as in: receive "pull requests" as patches per mail for peer review)
Eg, the whole OS I'm using in private as a hobby is maintained on one branch, basically
(ok they used hg before, and before that they had their own update mechanism called replica, which was essentially copying source files from a shared directory based on changes)
(the default trunk branch name there is btw "front", although it's a git repo 😂)
You know what would be great? If codice had some public repos users could include as xlink (or at least pull from directly)
At least it would be interesting
I am running into an issue using UE5 and Git with LFS. I am using LFS for my .umap files and when I pull them they show up empty. The file loads properly but it shows up as if it was an empty world with not actors in it at all. Has anyone experienced this or knows what to do?
External actors? Did you commit the external actors, too?
(just an idea. I'm not a git user with Unreal)
The folder that is __?
Should be directly inside Content
Might be default on world partition maps
Each actor has it's own file, basically, which is great
So I have problems with performing large Engine Code operations with Perforce and have for a couple of years that I still don't know how to resolve.
Any time I build and upload an Unreal Engine Source build to Perforce I've always had to do any "Reconcile Offline Changes" tasks in small batches and similarly break down large Perforce CL of about 60K+ files into smaller chunks in order to shelve or submit them. If we ever fail to do this, the Perforce server always locks up
(I know it locks at a certain point because at the point where it locks up, 'p4 monitor show' will alway show a 95%+ CPU usage and it will remain running for more weeks if left to run.) As a result, if that happens, I generally terminate it.
This is a real pain when trying to update our local engine source with what is on the UnrealEngine GitHub, as we can't just Reconcile Offline and Submit all at once. Whenever I try the server inevitably locks up and doesn't work, even after just letting it run for a few days.
We currently run P4 on a 4 vCPU Hyper-V VM with 32GB of Memory. Surely this is an overkill hardware config for hosting an Unreal Engine Helix Core installation? Does hosting a large centralized UE perforce installation require more compute than we're using?
We enabled parallel sync, submit and shelve a few months ago, this raised the capacity of files before lockup, but doesn't completely fix the issue.
Anyone know what could cause this, and/or we could do to address it?
Hey, I didn't handle the administration of our Perforce server, but I helped set it early;
it was running on an old 2x2cpu with something like 8GB and it was far from enough as soon as the project started growing (also, we had disk corruption)
We switched to a dedicated server with something more like 8 or 16 cpu and 64GB or RAM and dual giga ethernet IIRC; we asked an external company to spec it and install it.
It was night and day; my understanding is that Perforce server is really hardware hungry
(remember that it's just one experience, not serious science there 😉 )
My recommendation would be that you try to up it to 8vCPU and see if it help, and if it does but is not enough, go above
I would say that you also need at least 2GB RAM per vCPU as a rule of thumb in a lot of case with server & build machines (but often more than that with database servers)
So think that right now your setup should be very good with memory, cpu limited, if you double vCPU I think it would be enough, but beyond that beware / track the peak memory usages
And as a last bit of experience: when p4d got stuck at 100%cpu it often get stuck forever, at least if some other people keep trying using it
Thanks for the input. I was basing my understanding on the Helix Core Server Administrators guide, which IIRC seems to indicate less is needed, but both of your statements of experience seem consistent with what I have experienced.
Mind if I capture your response to use for later reference?
If you're using reconcile specifically, it may be failing because it's doing a really stupid line-by-line comparison to detect if something is a rename or an add, check this article https://p1community.force.com/Community2/s/article/15277
"p4 configure set dm.status.matchlines=0" dramatically sped up my p4 server when I was doing engine merges before
I am starting to learn Unreal Engine should I start learning version 4 or version 5?
This is not the proper channel for that question
Sorry didn't see I was source control?
also don't know why I phrased that as a question. Have a good one.
hello can someone explain me how to connect to my friend's perforce server? he did install the helix core p4d server and after the helix p4d and i dont know if he did good for me to join (we are not in lan)
He should setup server with proper internet settings (having white IP, ports open and so on) and you should connect to it via his set up address. Its a lot to write, basically you can found this info in YT or in text by googling.
I'm a newbie to this, I'd like to setup a perforce server for my team. Which would be simpler to start and maintain, digitalocean or amazon aws? Or does it not matter?
DigitalOcean
has someone setup perforce for ue 5? I think I did everything right, but It can't find my workspace
I did, and it wasn't any different than for ue4.
You might want to start by double checking everything, look at names, paths etc
oh damn
I Forgot to add ssl:
in front of the ip
lol
but anyway, can you give me some tips or something about using perforce with unreal ? Because I haven't used it before
I would say, make sure you have read the official doc;
https://docs.unrealengine.com/5.0/en-US/using-perforce-as-source-control-for-unreal-engine/
https://docs.unrealengine.com/5.0/en-US/using-source-control-in-the-unreal-editor/
but then, if it's not your style, or not enough, watch a youtube tutorial, Helix own official docs & tutorials... plenty of materials here since it's basically the default source control for most big game studios
thanks
Hey, sorry, I swear I did write an answer to let you know I don't mind, but somehow I didn't send it
I also wanted to double check with official docs;
But all what they say is that you could do it with a couple GB RAM for a million file, and 2CPU should be enough up to 100 users!
https://www.perforce.com/manuals/teamhub-admin/Content/HTH-Admin/hardware.html
https://p1community.force.com/Community2/s/article/2957
My experience comes from a 20-30 users team, but also 5-6 build machines, some devs at the office and others remote, with multiple workspaces each (up to 3-4 in the tech team)
I didn't investigate/profile the cases of "server locks" and I know there are a lot of factors, as well as a lot of settings to help improve performances... but as a rule of thumbs, my experience with Perforce is that it requires more than is recommended to work comfortably.
What is a white ip?
Whitelisted, as in only allow connections from pre-approved IPs
How do i do that
So Im trying to upload my project
but when I submit this changelist nothing happens
there is nothing in the depot
but in unreal editor my files have a red + sign
Hey guys... new to Perforce. I have a clean install of it. I already uploaded my project files to the depot. But I just read I needed to put a 'typemap'
Anyone familiar with that?
Try right clicking on the pending changelist and clicking submit
this is what im doing
In command prompt type "p4 typemap" and it will open notepad with a text file. Make your changes and save. Closing notepad will apply any changes
The unreal docs have an example typemap iirc
Is there a standard typemap i can use? Could i just copy the UE docs one?
That has a decent starting point for one
thanks man... should I delete the current typemap thats in there and replace with the unreal example?
I replaced it, but if you want you could just append to the list under typemap:
If you are only working in unreal, just replacing is fine
I went ahead and appended to it just in case i use other files later.
what should it mean "files not on client" ?
shame it doesn't link to any of the UGS stuff
Once I have the files in a depot, what should I do to load the files to a new client? Does the new client just create a workspace and open the UE project from p4v?
I need some help with setting perforce up. Any dev ops wizards around?
ok what the hell im doing wrong. I submit a changelist with 6500 files, it loads for like 30 minutes
and I still have nothing in the depot
wtf
Try one file to start with just to test
this bar here is loading
but I had a separate bar in the middle of the screen that was showing the submitting files and it's gone
and Idk if I should wait now or not
I would revert , delete your changelist and then just try one file and make sure it transfers
I didn't get any errors, i will wait a bit more
and now this appeared
how the hell I have remaining 2 gb, when Im using 50 gb space and my project is 15 gb
what the hell
it says that I have remaining 2 gb
and used 48
but what is it used by when my depot is empty?
whatever the /hxdepots mount point (if it's Linux) points to needs at least 2GB free and P4 is configured to have a minimum amount of available space to prevent data corruption
I don't get what is taking up my space ? my depot is empty
are there any hidden files ? How do I delete what is there
well I know literally nothing about your server and how you've configured it
p4 diskspace will tell you what's free/used
Probably need to just redo your sever - I had to do the same thing after getting errors with uploading my project files to it
Im not familiar at all, I just followed a tutorial
Clean install
that's kinda bad advice
though on AWS I was able to expand the drive space of the depots volume without a restart
He’s got some issue that’s eating up 40gb and it’s a new install anyways - I’d just clean it up first. Also make sure you do your typemap before u transfer files.
anyone can help ?
Guys, is there any way to build a custom Engine from Git that is small in size? My engine takes up 150gb of space.
I only use it to compile projects on the Nintendo switch.
This is consistent with my experience as well. I have read through all of the official docs, and it seems to contradict my experience when working specifically with full engine builds of 200K+ files.
Thank you so much for you insight!
Lockup happens during reconcile, but also occurs when trying to submit more than about 70K-90k-ish files at once. Has happened on my own setup and for another small studio I've worked with before.
Have set this param on our server to see if it helps. Thanks
@radiant musk Well known and respected tutorial here:https://allarsblog.com/2014/09/25/setup-perforce-digital/
Steps are the same for UE5 for getting set up. If you have any specific questions during setup, feel free to shoot me a DM,
A common question with Unreal Engine 4 (UE4) is "how do you set up version control?" I think this is a very important question and if you have never used version control for your projects you are crippling yourself from the start. I won't go into details about
allar's blog article is nearly a decade old and will be grossly out of date, you could read it for some bits of info but find and use official P4 docs instead
"yes just run this script from this random URL as root"
and it downloads r18.1 which is ...old
Note to @radiant musk: My bad -- I just reviewed this and Hojo is right... It's a lot more dated than I remember. Nowadays Perforce has their own packages for installation.
This will be your friend:https://www.perforce.com/manuals/p4sag/Content/P4SAG/chapter.install.html
sudo rm -rf / (This is a joke, definitely don't run this)
Hello boys, i'm using P4V.
I try to rollback to an X revision.
So i already get the revision, and everything is fine, now i want to push the revision X to became the latest revision, how i can proceed ? ofc as always documentation is blurry as fuck with helix.
Okay, i just realise helix just never update their doc correctly.
it's not "rollback" but "undo" now.
I found it (Undo to... command)
You can make it smaller, it will be around 60gb installed size for artists but you can compress it by 80-90% before you send to them
Use buildgraph to MakeInstallBuild
please SSH into the droplet and check if webserver services are running. What should this mean?
Oh! Interesting. Maybe I can reverse engineer what needs to be implemented for SVN from the Plastic and Perforce impls.
I doubt there's so much to reverse engineer, really. I think they are just packages?
if in doubt, SRombauts is on this discord
iirc I was able to use the "older" plastic plugin back in UE5.0 EA and also 4.27 with external actors activated. So there's a high chance it just werks, but within limitations
OFPA files are indeed just normal uasset packages. I think the speed just comes down to there being so many files and the plugin not originally being designed with that in mind.
Yeah. Afaik plastic plugin batched files inside a directory into one program call, but with OFPA you have hundreds of directories with just one or two files each
Oh, yeah, there's nothing special as far as I know with the assets themselves. There must be some interface in the SVN plugin which isn't implemented which allows it to work with the special OFPA commit dialog box.
I also haven't checked in the most recent UE 5 update to see if it suddenly started working.
So Ive got my project loaded to a Depot... I wanted to have a new user open the files. Once they log into P4V client they can see the depot with the files. Do they just open the project and it will download the files they need? Or do they need to download all the files to their workspace first
What? You make a workspace and then you sync to it
Hopefully it’s actually a stream depot too
are these commands are enough to activate LFS? doesnt seems working
git lfs install is enough
you just need to have the .gitattributes specifying what files should go in lfs
also note, if files existed not in lfs, and then you add lfs, those files will still be tracked in non-lfs
@pearl tusk
I was mistaken: UE5 handles OFPA in editor with Subversion just fine. Changelists don't work, but everything else does. (Hooray!)
With ofpa I started to love the "choose files to save" option
Is there anybody who used both Plastic scm and Perforce as version control and could give opinion about which is more convenient to use?
@reef oriole (though he may be biased)
but he's the only person that comes to my mind, at least. I can imagine many people who use perforce will continue using it. Plastic is often a cheaper alternative (that's why we use it too)
especially in Unreal context. Unreal is pretty perforce-focused with UGS, changelists and more
I know quite a few people that switched to PlasticSCM in order to not have to deal with complex administration and setup; even people from Epic Games using is for side projects 😊
In my opinion, Git without LFS is still the simplest way to handle a single person hobby project because there is nearly no setup, no actual server, admin, authentication etc
But for any team project, or as soon as you use PlasticSCM and have it setup, it's the easiest option to create a new workspace, repository etc
It's a breath compared to perforce, though there are still ways to improve in this area
Though, for advanced user, there are more powerful setup with Perforce, more tools and options (like virtual steams, UnrealGameSync, )
About the GUI/CLI; Perforce doesn't track changes made out of perforce, you have to manually ask for a "reconcile" for it to detect all local modifications (eg if working disconnected, marking files writable locally) and it takes a looong time on big projects
PlasticSCM does just like Git, telling you all pending changes as you make them, with or without proper tools
Reconcile isn't so bad if you limit the scope.
But with UE I've had to wait hours for a clean and sync using p4v.
Perforce command line tool is a monstrosity I could never really master nor like in years of using it profesionnaly. Documentation is often bad
PlasticSCM cli is far from perfect, still missing docs and examples sometimes, but at least it makes sense most of the time and I like it more
I setup a command line tool to complete it in about 30m.
Yes, I have had the same experience with Perforce, going back to the command line when I couldn't get a huge merge from the GUI
But this shouldn't be needed!
PlasticSCM can also handle branches and merges efficiently, and don't take time to switch your workspace; with Perforce we learned to limit the number of streams, because of the heavy setup, cost to switch and often issues around that
Even if most Unreal game projects keep mainly one main branch, in order to not merge assets, it's good to be able to create branches for code, tools etc
what I really love about Plastic SCM is, server-side merge. No need to download all stuff from the art branch just to do the merge and upload it again.
(we have /main, /main/ART and /main/whatever-we-are-coding-ticket)
はろ
Anyone ever setup Perforce on their QNAP? I have 872XT so it's Intel processor and 16GB RAM. I've never setup Perforce on anything but just thought maybe having it on the NAS is better than just on the computer that I'm using for UE
mm, I would love to understand a bit more the workflow, esp the roles of /main vs /main/ART (it's not for the FBX source files, right?)
meh we tried Plastic a while ago at my old job and it was a pretty grim experience, buggy and crash prone server, buggy client, artists not knowing wtf to do with merge conflicts
we switched back to P4 within 3 months of trying to be patient with it
We have two separate repositories. One for every art related work files (maya files and stuff), that's the preparation repo. Then we have the game repo with the fbx files and the unreal project. We (the coders) ignore the source directory there using the cloaked.conf file
Since we managed to develop our core functionality in a separate plugin we plan to migrate that to a separate repo and xlink that into the game project
Interesting, we used to have the fbx on the preparation repo too
I wanted the game repo somewhat self-contained, so that we can always reimport the same version of the fbx
Since partial xlinks aren't well supported (and we don't have nice namespaces as in plan 9) there are not many options
It would be nice if it worked though
cloacking the directory with the fbx prevents it to be updated when you update your workspace?
Cloaking a directory completely ignores anything about it. That's checkin and also download
So you can cloak the dir and it won't download the files and also won't detect any changes
Ignore only ignores the changes
We basically have cloaked.conf inside our ignore.conf to prevent users from accidentally checking in their own cloaked.conf
Artists don't need this, they work with gluon on the art branch only and the preparation repo (which has no branches)
It's super cool, as it is the answer for a lot of things then; somehow I though it was just hiding your changes
It's the way for programmers to cloack all dll & pdb so that they don't get overwritten by the one submitted by the build machine for instance (instead of having a virtual stream for programmers)
Sad to hear that; when was that?
Was the support reactive to your tickets?
we don't have binaries in source control
they're retrieved by UGS
I suppose it's technically in source control but way easier
also the cloaking was also buggy
Yes UGS is nice
what? "interesting"...
we ran into a weird race condition on multiple machines with it
In the meantime, I released a maintenance version of the plugin
I am finishing the implementation of warning users if assets are changed in another branch
(useful for team using task branch or release branches)
https://github.com/PlasticSCM/UE4PlasticPlugin/releases/tag/1.4.13
We don't check in pdb files currently, only dlls. Pdbs are quite big for source control, so I personally would like to not check them in at all (also not the dlls, if possible)
I really wish there was some UGS plastic solution and I can't wait to hear about that. It would be great if the binaries are just always latest version and never version controlled. I mean, it's source control, not artifact control.
Yes, there should be an option for some binary files to only retain the last N version(s)
More than one so you can still revert or do some bisection can be useful
Then it's good to submit even the symbols if you don't have a better solution like a symbol server
That would be best, if that's possible. Please bring that into plastic
The only other nice way I see is, create an xlink repo with only the binaries and delete it every n checkins
(it's also impossible to completely remove files in plastic
It's on the roadmap, I just have no idea when it will land
Seems like the most important thing to me, I'll ask again if they have an eta
If that's a thing in the future I'll happily checkin pdbs
Would be nice to hear
Do they have a public roadmap?
Anyone ever setup Perforce on their QNAP? I have 872XT so it's Intel processor and 16GB RAM. I've never setup Perforce on anything but just thought maybe having it on the NAS is better than just on the computer that I'm using for UE
I run mine in a docker container on my synology
works alright
just used a bind mount to a folder on the synology to preserve repo data outside of the container
It's using some custom Linux system right? What steps do you take to install it? Manually compile and install step by step? Or are you running some virtual machine there?
docker is available as a package on the synology store, so no custom work was needed on the synology itself
infact i used docker deliberately to avoid doing anything on the main NAS OS
I'd like to utilize the main NAS space for the actual versioning, but I'm just bit lost on the actual install process. I guess I should check QNAP store what apps they have there
Because I don't want to corrupt the whole NAS over some failed install attempts
docker or similar container tech is good because it compartmentalises the software, and you can use a bind mount to utilise the main NAS storage
check if qnap has docker, it probably does
Did you follow the manual install process for Perforce? I see in their docs they have different packages for ubuntu and such, but I'm guessing those won't work
i scripted it through a docker image
this appears to be a decent rundown of what the process looks like
Awesome. Just cause I'm new and dumb, so does this docker technically allow me to install VM version of linux of my choice also?
conceptually you can kind of think of a container as a lightweight vm. Technically it's different, but just to wrap your head around it initially, it's helpful to think of it like that
so it has it's own os, own filesystem, etc.
you shouldn't need to ever log into the docker container, because you script an image, and it just starts up and does it's thing
so it's sort of independent replica of what you have and limited to the replicant so anything done on it will keep the main system clean?
you mount your data outside of teh container using bind mounts or volumes, and you can destroy the container and start a new one up if you wish
yes, the main system remains clean except for docker itself ofcourse
Thank you so much. I'll look into these
Hi
Can someone share best practices using git (Github, Gitlab) and Unreal for project development in team/collaborative work (merge commits, develop scenes, version control, binary files...)?
new at this source control thing, trying to package windows version of project, getting about visual studio which I
'll fix eventually, anyway , file in question says, currently checked out, under editor settings, will that prevent it from being read for packaging ?
-=-to make changes so UE5 can , see, visual studio2022 ?
Source control multi-user editing question - how am I supposed to 'lock' landscape for editing. It doesn't have 'browse to asset' option in World Outliner so I can't find it in a folder to lock it
Hi, me again. What's the difference between Persist session changes, Checkout modified files and Submit to source control? Doesn't Checking out a file, persist it anyway, and persist means save the changes to source control?
I have a question on collaborating between developers who are using a Mac and a PC. I'm on a PC and my friend is on a Mac. When she tries to open our project up she gets a missing module error and is unable to open the project. The project has a Source code folder which opens up fine on my PC and I'm able to build but when she tries to open it on her mac she cannot open it in Xcode.
Any ideas how to fix the missing module error? I've been grasping at straws since this is unfamiliar territory for me.
Missing module sounds like recompile. Is it a game module or an engine module?
I've setup a Helix Core server on my home pc which sees changes I make in UE4, but I don't understand what Server name my friend has to input in P4V to remote connect to the server. Is it simply my PC's name? Thanks for any help!
We can see each other in a multi-user editing session, but that doesn't save his changes. Also we currently have Hamachi LogMeIn vpn running if that makes any difference?
ps the server name I used following the tutorial was localhost:1666 but surely that's just a generic thing
Should he use my external IP address?
(as the server name?)
I've read tons of Perforce guides / watched lots of videos, but none offer any help
Thanks again in advance
+1, wanted to ask the same thing rn but saw that u did already
He tried my external IP as the server name and he could access the server, but not the Workspace 😦 It said the only user that could use the Workspace was me (the admin) so still frustrated!
You don't share workspaces.
Every user should have their own workspace on each pc they use.
One workspace is a specific mapping of files from a server to a specific PC and user
If they can connect to the server then they need to create a workspace themselves in the location they want the files to be on their PC.
There's a reason there's a "new" button next to workspace in P4V
He set his own Workspace but he couldn't 'Switch' to my Workspace to retrieve the project from my pc
That's not how perforce works.
You have to submit files to the depot.
He then pulls files from the depot into your workspace.
You should never have to interact with other people's workspaces.
Ok, thanks, so how does he access my depot that holds the project so he can DL it to his pc? Or is that all done in UE4 mnulti-user editing?
The depot is on the perforce server.
and did you submit files to it?
you cannot just drop files into a directory and use that as a depot
you have to make a local workspace, add files to a changelist, and submit the changelist.
Yeah, I can make changes in UE4 and can see them in P4V
But did you submit the changelist
Yeah, 768 files
Then they need to simply go to the depot tab of P4V with their workspace active, right click whatever the root folder is, and hit "get latest revision"
should Plugins/Developer folder be in source control? I use RiderLink and I feel like it shouldn't be included but I'm new to Unreal git version control
Where do you people keep your personal free projects?
I'm curious. I would use GitLab but they only give 10gb if I am not mistaken, and that is not enough anymore 😄 .
Right now I am considering renting a server to host git.
But I'd like to hear a bit more how others usually have it set up!
Azure has a huge limit to their git site . Plus LFS has no transaction limit as far as I know
Hi, does anyone know what 'exclusive checkout' means in Perforce, with a padlock icon, please?
I've looked it up in the P4V guide, but it just says what I can see, without explaining it 😄
It means only one person can check out that file at a time
Ah that's fine then lol. Next problem is the error I get in UE4 when I try to submit the change to Source Control...
Can't check out file 'filename' from source control when persisting sandbox state
ps thanks HoJo
Sounds like a weird error from multi user editing or something?
so are there features you can add with the source code and not a plugin ?
within the engine
I don't think the question makes sense
i do actuallly
Ok. Then the answer is yesn't
hehe
I'm not sure what cleared the error, but there was a blue tick on the asset at the time. I tried locking / unlocking / re-checking out and finally the tick disappeared, then there was a red tick, and the asset went through to the server.
Next question... when we start the next multi-user session, will Perforce automatically sync the project that's on the server with the remote pcs that are working in UE4, or do we have to Get latest revision every time?
https://unity.com/roadmap/devops
Trimming for Plastic SCM Cloud Edition
You can "vote" for most important/critical features for your team 🙂
'You can "vote" for most important/critical features for your team' - More pay, less hours 😉
thank you for the link 🙂
Hey guys, I set up git source control before the weekend and everything was working fine until now. Recently when I try to Submit Content in UE5 it just says "No assets to check in", when there clearly are changed files in the project. They appear on GitHub Desktop and I can commit them there, but it annoys the heck out of me that it no longer works in-editor. Anyone know what might be up? Everything looks like it should in the Source Control settings etc with no apparent reasons why it wouldn't work
Tried doing a quick search in the channel because it seems like a simple problem, but no results 😦
Oh and I can select each individual file in the editor and "Source Control -> Check in" to commit them one by one, but its not exactly practical, but at least that works, so it doesnt make sense why I get "No assets to check in" when trying to Submit all of them
thanks SRombauts, I voted and gave another idea
Do you see anything in the logs?
Only this, not sure if relevant
Anyone else have trouble with Perforce freezing on submit? I managed to get the project no problem, but for some reason the editor depot will not submit. I get about 5-7% complete and it freezes. I know it's no longer actually doing anything because I can watch the performance monitor in digitalocean and there's no more I/O
Today it worked again all of a sudden. Im able to Submit all changed files and do not get "No assets to check in" anymore.
One possible explanation for the fix is that the Epic Games Launcher was not seeing my project. To fix it, after some googling I found out I simply had to create a new project in the same directory and then delete it in order to get the launcher to establish a path to the directory. From there the Launcher could see my project and Git Source Control was fixed to work as normal. (Might not be related at all, but that is all I did yesterday and today it worked)
Hello, good people. Hope this question falls under source control.
I'm trying to understand the best way to have several sub contractors work on minor levels individually, but from the same starter content. And then merge that work into a master project.
I mean, why do you need to do anything for this? Just have a single repo and allow subcontractors access to it?
I suppose. If I were to have a look at user restrictions in UE5, are there any specific topics I might read up on?
(is there such a thing)
Well, that'd be based on your source control, not UE.
So perhaps each level could be under a specific directory, and the user permission would be limited to that + asset folders?
Don't use git, its user control is basically non-existent as far as I know (you either have fulll access to everything or nothing) and it's bad at large assets anyway.
Look into perforce permissions... and using perforce.
Currently battling perforce setup final boss
You could have a separate directory for each subcontractor, sure, or just let them work on assets in a single folder.
Depends how much extra work you want to do...
Cool, this seems like the way forward. Coming from traditional 3D work, seperate scenes/levels seemed most logical, but I totally get it isn't.
What are these scenes/levels going to be used for? Not content-wise, but just how are they put together? If at all?
There would be a main menu for opening each level, basically.
And the levels themselves don't really interact?
Nope, not apart from sharing assets
Fair enough.
It's for an online digital catalogue, each level is an entry.
Just have them all work in the appropriate directory for your project, having subcontractor names in your repo isn't the best!
Yep, I think that's be best option. Thank you so much for the input.
hey guys I've been using git for my project and my teammate (we are two) but I've had some bad experiences with git due to some issues with large files and binary files. I currently am looking to use perforce or plastic scm and I would also need a server in the coming 6 months to host a server.
Which one should I use as I have a budget of 20€ per month and we are actually 2 people not wanting to go higher anytime soon but maybe in the far future.... but then maybe 1 or two people more. Which one should I choose?
We are using Unreal engine 5 if that helps.... thank you very much
git with large files should use git LFS btw if you didn't do that yet
You don't wanna do that.
if you ask anyone who currently uses any of Git, Perforce, Plastic, or maybe even SVN, you will find someone recommending you to use Git, Perforce, Plastic, or maybe even SVN.
I'm curious what were your bad experiences with large file and binary files? just to make sure you're not jumping to another VCS to solve a problem that it won't solve, for example
I used git lfs and problems with that where that they had problems to upload correctly despite having an optimal connection and also merging problems with blueprints and merging problems in general
upload problems were not likely the fault of the VCS, unless it was running on a (very) poor box
merging blueprint problems will not be magically solved by switching VCS either (perforce does have first-rate locking features to prevent issues, but the solution remains the same: don't let two people work on the same files)
and for code merges, git should be very good at it, probably user error
Anyone else have issues with riderlink uploading a file called FileSystemMappings.ini no matter what I add to my gitignore it doesnt ignore this file and sometimes even breaks my other gitignores depending on what I try to do in order to ignore it.
Well riderlink doesn’t upload files, git does. Probably the reason why it’s not ignoring it is because you already uploaded it once to your repository and it’s still being tracked. If you want git to ignore it from not on but not touch the file on your local computer, you need to remove it from tracking.
git rm —cached filepath/FileSystemMappings.ini
Yeah sorry was a miswording the file was originally not tracked via git and wouldnt even let me ignore it before it was originally pushed to my repo. Either way its the only file ive had any issue with so im not too concerned.
Fixed it ez pz.
Hi guys, Perforce question:
I would like to create 2 depots
- the 1st is my UE Main project, we will say: UE_Project_v01
- the 2nd is just a plugin that will go in the UE_Project Plugin directory: PluginA_v01
Why? because I have UE_Project, which can totally change every 2 days, and I would like P4 users who work on plugins to be able to update the UE_Project (from a V1 to a V2 for example) in 1 click without having to break all his PluginA repository.
It seems to me that with Clone it's possible, and/or depot stream, the problem is that the Perforce docs are VERY VERY tech, so heeeelp I would to know the exact workflow to do that (feel free to PM me if I'm not connected)
this is the idea :
this is almost easy when using streams depots. you just import your plugin depot to your project stream. the thing I usually struggle with is deciding how to build a barrier between the two - does it make sense if you update the plugin's mainline that the changes should instantly propagate into your project? or do you want to put a gate between them where you can choose when to update the version used in that project? depends how big the team is and how complex things are
first: thanks a lot for your answer, because it's very cool that it will be possible.
Second, the rest of folders of UE4_project won't change, only work on the Plugin will ( I don't know if this is a expected answer )
read this a few times and see if you can find any other sources of info on it. it's a bit complex to learn if you've never used streams depots before https://www.perforce.com/manuals/p4guide/Content/P4Guide/streams.paths.html
ok, to be clear : UE_Project_v03 don't change ( need to be lock ? )
is just usefull to launch Unreal with the good version for the plugin
is not possible to do this kind of management with P4V ? we need commands ?
let me figure out more what you're trying to do... you said you have a UE project that can change frequently and you want plugin developers to be able to get updates to the UE project without breaking their plugin repository. is your question focused on development of the game project or is it focused on development of the plugin?
what exact purpose does the "UE_Project" serve then? it's just the development project in which you're going to build samples and tests for the plugin? you want to work in and use this project to build this plugin and maybe others?
it's a main release ( only one dev works on it, and he is not on Perforce )
yeah, that's right, exactly
PluginA : 2 devs
PluginB : maybe 3
etc.
so I search the correct way to make something solid and quick for plugins dev
( and maybe the dev not on Perforce will come to P4 a day )
this diagram may not mean a lot to you until you watch some videos on streams. in this example I created both the UE/game project mainline and the plugin mainline in the same depot so that I could sketch them together on the same screenshot, but it would work similar if they were in entirely separate depots.
the plugindepot in this case might just include whatever would normally be inside something like GameProjectA\Plugins\MyPlugin\ including the .uplugin file and Source folder
I don't know what you want to do though if some of your devs aren't on perforce...
if you wanted to dev the plugin on different versions of the engine then you could adapt the above idea and have a 4.26 UE project, 4.27 UE project, 5.00 UE project which all import the raw plugin mainline stream - they would all get all updates to the plugin code and you'd be able to dev and check them all easily
just 1 dev are not, he send me his project on a .zip ...
...
so my idea, is to avoid 3 ... 4 ... 10 devs to download this .zip ... ( and the .zip can be change from a day to another day so ... )
my idea, is to convaince the dev out ouf Perforce now to submit only his release version to a locked depot ( kind of "first step" )
it will be a big step 🙂
is this dev avoiding getting involved properly due to license limits, or because they're lazy?
have to ask
because he has been problems with versioning on a lot of files on UE ( so I presume a not really good experience with versioning and Unreal )
in that case, this must be said:
tell them to get their shit together and learn the team's chosen tools properly, or get lost. game dev is hard enough without boat anchors on your team
yep ... but for now ... I need to find positive solution for the team
even if I need to update the .zip to a version of a depot by myself
is this dev building the UE project in which all of the plugins are developed, or are they building one of the specific plugins?
the UE project is pretty basic ... I mean this dev building his own plugin too, that's right
Basic UE folders
|
Plugins/
| THEdevMainPlugin
| PluginA
| PluginB
| etc
so it's something like: they're sending you a .zip of a UE project and of a plugin, and you are going to extract those zips into a project depot and into a plugin depot and commit the file changes for both... and then the other team members will get those updates and use that updated UE project to keep working on their own PluginA and PluginB?
TBH you could just do all of this in one depot, one project
I don't see any reason to break it all up and make it all complex yet
I tried to, but ... when I copy paste all files from the .zip on a perforce depot, it don't really understand what is changed or not ( we talk about a lot of files : 20GB )
20 GB isn't very big. how long have you been using perforce? do you know how to use "reconcile offline work" command in P4V (might translate differently depending on your language) ?
So, my solution was to backup the plugin from the depot UE_PROJECT_AND_PLUGINS
delete it
keep only PLUGINS devs
Unzip the .zip on a new UE_PROJECT_AND_PLUGINS
Copy paste the backuped PLUGINS dev on UE_PROJECT_AND_PLUGINS with the good version of the main project
but it's crazy
nop
I know SVN pretty well, but Perforce is new for me
if you edit files without checking them out (such as by manually dumping/overwriting the files with new ones from a .zip) then perforce has no idea you did any of that. the reconcile offline work command looks at every file in the folder and compares it to the server
reiterating: "tell them to get their shit together and learn the team's chosen tools properly"
I will try
so your advice, is to have one depot ... not at all "stream", but "local"
- copy paste sometimes the .zip on it,
- make a "reconcile offline work",
- submit it
and maybe we need a Perforce guy from the Perforce team to convaince THE dev that P4 is not the enemy 🙂
but it will be more efficient to have a depot with the equivalent of the .zip no ?
it will be most efficient if you and all of your team members spend a few hours watching perforce tutorials, plus get a team member to spend much more time studying how to administrate perforce (or any other VCS, whatever you end up using). this stuff is complex, and anyone who brushes it off because they're lazy is dead weight
Have you thought about going to this? https://www.perforce.com/resources/events/vcs/helix-core-huddle
Hey, anyone here have experiencing with setting up Git and LFS on a private Linux server? We're having some issues with Apache configuration
hey guys i finished setup my local perforce server on my pc and i successfully connect with UE but whenever i open VS,i cant build at all
i got this
1>------ Build started: Project: AsrentRPG, Configuration: Development_Editor x64 ------
1>Failed to write to log file "E:\Perforce\CreationArtStudios_Asrent\AsrentRPG\Intermediate\Build\Unused\AsrentRPG.log". Access to the path 'E:\Perforce\CreationArtStudios_Asrent\AsrentRPG\Intermediate\Build\Unused\AsrentRPG.log' is denied.
1>Failed to write to log file "E:\Perforce\CreationArtStudios_Asrent\AsrentRPG\Intermediate\Build\Unused\AsrentRPG.log". Access to the path 'E:\Perforce\CreationArtStudios_Asrent\AsrentRPG\Intermediate\Build\Unused\AsrentRPG.log' is denied.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========```
any ideas?i never encountered this before
answer: you need to check the last 2 on file options and on submit:set it to revert unchanged files and client type to be writtable
@low tangle set up your ignores properly, delete temp files such as logs from your repository, and then use a plugin to check out files that you're editing instead of that ugly hack of using a writable workspace
Is that possible to enable file locking features with git (gitlab/github) as versionning software?
Git LFS has Locking support
this is my firsty time using perforce so im new to this
so i just put.p4ignore on workspace?
Plan to spend several hours learning how to use perforce... Do lots of googling and reading on everything
I have released a new version of the Plastic SCM plugin for Unreal, it is now looking for changes in other branches!
https://github.com/PlasticSCM/UE4PlasticPlugin/releases/tag/1.5.0
I have bumped its version to 1.5.0 in preparation for a Pull Request to Epic Games so it could make it to the next release of Unreal 5 :
https://github.com/EpicGames/UnrealEngine/pull/9156 Update PlasticSCM Plugin from 1.4.6 to 1.5.0 for UE5 #9156
Hi, im trying to set up source control on my project, but github's LFS has a 2GB limit per file, it also doesn't tell me exactly which file it is so i cant easily find it to exclude it from the commit, although I prolly do want those large files added to the repo, does anyone know if there is a way around this 2GB limit? or if there is a way to identify the files it wont push to the master? or if there is other source control platforms that i would be able to commit large files like this?
You should really double check all you files on your project
I have a hard time figuring what could need 2GB except for a movie, and in this case you should evaluate if you really want to ship something that big to your players (assuming it's for a game, if not might be different)
Use something like https://windirstat.net/ (more modern options exists, but I stuck with this one)
Thanks mate, thats really helpful, looks like a couple zip files managed to get into the content folder that were over 2GB
You could also try a custom script git hook to check file sizes before a commit or push https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks
Working in blueprints, my Diff against Depot is showing changes, but my file isn't changed
I also haven't committed anything on this file on this branch.
Has anyone seen this before?
Do you know if UE4 editor is able to "automatically lock blueprints that you start editing" ?
I don't really use git but yeah I think so. There's a git plugin frequently mentioned in this channel that lots of people use instead of the built in one, might also be worth a shot.
Lookin for some P4 help, if a new teammate needs to get a copy of the project, should they Clone the depot similar to Git or does Clone do something weird and different in P4?
Cloning is throwing a lot of errors and asking for remote mappings and stuff going to keep digging.
Edit: Think I figured it out, think cloning is only for copying a depot to another server.
Is the .idea folder something that should be added to an ignore? I know .vc isn't needed
yep, cloning is not the same in p4. You just create a new workspace and "Get Latest Revision"
probably yeah add to ignore unless you have an actual need to check it in, say if you have some team specific standards configured in the IDE settings.
Awesome ty!
What source control provider are you using?
Hey, do you know if there is a source control Editor Blueprint / python scripting API ?
I though I saw one recently but cannot find it on Google
(not in front of a computer right now)
I'd like to do some automation / tests
Like spawn assets on a map and submit
The reason would be that someone else submitted a newer version to the depot so it shows you the difference between your local old version compared to the new one on the depot
@reef oriole I'm using git. I re-pulled the main branch several times, and open and recompiled my files and still got this :/
"Diff against Depot" is the built-in Unreal/git integration for examining BPs
@reef oriole blutilities have some source control functions for checking out at least. There are functions. Not sure if it's all there what you need, but you can take a look at it. It also shouldn't be too hard creating a test for that in C++
(which would nicely integrate into the automation tool)
Can I add a specific plugin to a .p4ignore file?
Just ignore the plugin folder?
For multiuser editing, the button to create a sesion is grayed out and its just constantly looking for multi user servers. Any way to fix tihs?
yes it's in editor preferences, check out automatically on modification or something like that
Hey, on Github when using LFS you have to buy a data pack which gives you 50GB bandwidth a month and 50GB storage, can anyone tell me exactly what that bandwidth is? i only set up the repo today, uploaded my project into it and its used about half of the 50GB Storage but im somehow over the bandwidth allowance, ive made like 8 commits today because ive been testing it with another computer to make sure i can collaborate properly and its only been small changes like creating an empty actor BP then committing, how is that using up all the bandwidth already?
I also, so far, can still make changes, commit, push and pull from the master even tho the bandwidth is showing as going over?
Bandwidth is how much data you can transfer. With 50gb storage and 50gb bandwidth per month you can pull down, or upload that entire repo exactly once. Or a 5gb portion 10 times.
Typically after first upload, and first clone of new team members your bandwidth requirements drop from the initial month
My source control seems to be checking out engine files, even though i'm not actually editing them (I did copy some, so maybe it detected a change somehow?). Then it says my changelist is invalidated and won't let me submit my changes. I can check them in through perforce and everything seems to work fine, but it's still saying I can't check-in through unreal. Any idea? Thanks in advance!
Ignore the above. Seems i just needed to exit the editor, which seems to have saved some files that don't save during "save all"? Reloading the project allowed for a validated changelist and submit.
anybody know how to deal with perforce blocking compilation if you dont checkout?
in your typemap change your .dll, .pdb files etc to +W, and do it manually for already existing files. Right click -> Change filetype, check the +w option
@wooden orchid
Hello, I don't know why but I have a lot of issues with git and my unreal project, for example sometimes I have files that disappear, when I check in the file explorer on windows the file is there but not in unreal engine, is there some configuration I need to do ?
Greetings. Just getting back into UE4 now. Is Git+LFS a viable alternative to Perforce or SVN? Cheers! ❤️
We've been using it fine :)
Thank you. I remember the early days of UE4, when many people were not happy with git+lfs, but I think things may have changed now
hey guys i could need some help with a (as i thought...) simple topic.
u know my contributors can read AND write to my repo so they can do merges by their own ?!
i dont know why this happens and i dont know how to fix that... i was reading the docs and even after 2 hours of going through the github community and alot of google stuff i still dont know how i can change the permissions for the contributors 🤷♂️
i thought it would be in the settings tab at Collaborators but well... cant fint anything for that ^^
Hey would anyone know the answer to my issue? In Perforce I grabbed the latest project from the depot. But it did not grab all the folders from the UE content folder, it's still missing a few that are in the depot but for some reason won't download to my local workspace.
I've checked the mappings and sync of the files and I tried ways to bring it over but no luck.
I haven't had this issue with any project previously in any of the other depots
Did you try Get Revision and tick Force Operation?
I did Get Revision but I don't think I checked Force Operation, i'll give that a go thank you for your help :)
you have to make your branch protected and change the protections to require a review
@quaint obsidian thx for ur reply dude. so i will try to fix it thx 🙂
Anyone know how to workaround the P4 integration failing to connect due to the client workspace importing a graph repo (leveraging Helix4Git)?
When configuring my stream paths for //UE5/Main with:
share ...
import Projects/Game1/Repos/game-1-server/... //repo/game1/game-1-server.git/...@master```
The P4 integration will fail to connect with:
```SourceControl: Error: CommandMessage Command: Connect, Error: Client 'username_desktop' requires an application that can fully support graph clients.```
I feel like the P4 integration shouldn't prevent connecting just because it contains a project from a graph depot...or at the very least, silently ignore files in that path.
Hey does anyone know how to change the version control that Rider is using? I accidentally clicked the wrong one from the list and can't seem to find where to change it ...
nevermind found where I can disable the one I accidentally selected... not quite what I was trying to do but it works
It's Settings > Version Control > Directory Mappings
trying to set up a git repo in my project but getting an error every time i push that says git lfs failed, push was rejected due to missing or corrupt local objects. It has this error for every single .uasset and .umap in my content folder, but all of those files are there and work fine in editor. any ideas what would cause this?
ah, well it appears that i have somehow managed to corrupt every single uasset and umap in my project while trying to figure out how to get git lfs set up
cool
Doesn't git with lfs store metadata at the original file locations inside the repo that refer to their lfs files? Possible that you have the metadata files instead of the lfs files then? Possible I'm very wrong, I only used lfs once many years ago
Hi. Im doing a group project with 4 people. What source control would everyone reccomend?
Do you want simplicity? Would you be ready to pay for it? It all depends on your criteria
but it's asked a lot on the channel, so you could even have a look
eg Perforce is the de facto standard, but it can be expansive
though it's free up to 5 person so it could be good
but be prepared to invest into learning how to set it up, how to use it, and teach others
Git LFS is another option that could potentially cost not much, but you have to also setup a lot like the right plugin, the right server
It's going to be a student project so I don't think we have money to shell out (unless it's a small amount)
Perforce is free for 5 people
But server space is gonna cost pretty much where ever and whatever you choose
But I have heard azure does free git lfs hosting. Look into that maybe
isn't plastic free for open source projects or something?
(not sure, we don't do open source (yet))
Hello. I have a small team. Which VCS better git or perforce? Has a perforce features that make him much better than git? And what is the price difference between git and perforce for a team with > 5 people?
Many people report using git lfs fine, but it's undeniable that perforce is the only one with first class citizen support from epic. One file per actor only supports perforce ATM iirc
There are some upgraded plugins on GitHub that improve git lfs support I think
It's not that git is bad, it's just p4 is what epic uses internally and gets the most love
Yes, git plugin forked from my own, by ProjectBorealis, by someone often here, a certain mcoms
I am currently working on the Plastic SCM plugin to make it first class 🙂
I can already tell you that, even for small size project, just using the Quixel Bridge and Megascans assets in your levels justify to move beyond Git LFS, to Perforce or Plastic SCM
the speed of a 171MB asset is much more enjoyable with the laters 🙂
Based on my current testing of UE5.0 with Open World & One File Per Actor
Helix P4v question - does P4v store any files inside an Unreal project, similar to how a GitHub project creates a .git directory with files?
I've been advised to never duplicate an Unreal project using P4v (always migrate), but I'm a little unclear why, because I've been unable to find any files that store Perforce data in there, or much documentation on the matter. Or have I missed any documentation regarding this?
No P4 won't have a local copy like .git or .svn
Asking because I'm now kind of after the fact trying to troubleshoot why someone's project is having issues after they duplicated an existing project on P4V without migrating, and are trying to push it as a new project.
Okay, thanks. Nothing at all - no ignore files or anything? Is there any problem then with duplicating a project, if it doesn't contain any p4v files?
Honestly I have never tried exactly that, but it should be a problem since there is no specific files on your disk
Okay thanks. For some reason yeah our team's workflow has been to always migrate to a new project, never duplicate, but I've never been quite sure why.
But indeed I don't see anything indicating there are any p4v files getting stored that could confuse it.
Mm, Migrate, if working as expected and performant enough , could be a good idea to only carry over the asset used/referenced in maps
Out of date files must be resolved or reverted.
Submit failed -- fix problems above then use 'p4 submit -c 112'.
How can I know what files are they? 🤔
you usually can tell from the submit window because they have a yellow triangle on the icon
ork
Hi! I've installed self hosted Gitlab and OpenVPN server, i have domen address (lets say blabla.com). How can i make site available only via VPN? My current vpn setup works but cannot access localhost.
i dont really understand git lfs
do i need to make it track all .uasset files?
since there aren't really file types in the content folder other than .uasset
will it then only track large uassets or all uassets?
also what exactly does lfs do? does it still upload the large files to github?
I can't see any yellow triangles
In P4V viewing the submit window for the CL?
Might need to refresh the view, P4V is weird about it sometimes. Press F5.
Yes
Nothing changed. Is it could be because I have 12k files in the CL?
( UE5 migration submit ) + (sending a screenshot now)
yes, that'd be why
p4v stops showing you everything if you have too many files, otherwise it kills performance
the easy solution here is to just sync and then resolve.
Yep, though that could’ve been the path of least resistance to start with
Also //depot/ yikes, you can make an actual depot named after your project and get to use streams and such
itll track all .uassets. there are other content types, like umap, and if you use localization, locres and locmeta. theres also steam audio files if you use those.
LFS makes it so instead of storing the file in git history, it stores a pointer to that file. an object ID hash and size info.
so it minimizes space in the git history itself which is entirely linear
and instead, it uploads these objects to a separate data store, like a cloud object store (AWS, GCP or some other file server)
when git encounters one of these pointer files, it asks LFS to do its thing and download the actual files, which LFS swaps in
when i dont want to push lfs stuff, what folders should i backup myself?
the .git/lfs folder?
actually kinda sucks that basically all files in /content are .uasset
so it basically ignores everything
even small blueprints
Frankly, it doesn't matter. All uasset files, regardless of size, are binary files that get basically no benefit from being tracked normally in git. Meanwhile LFS at least has support for locking.
Not sure what you mean by "backup" though - why would you not want to push LFS content if you're using LFS?
Sync == Get Revision
Right?
get latest revision, yes
But depot has UE4 version
Wouldnt that override my current files
This just came to my mind after pressing get latest revision btw, I hope I didnt lost any data 
You won't.
I see bazillions of is opened for add and can't be replaced
Uh, you're adding files that already exist in the depot...?
honestly, I'd copy your files somewhere else, revert everything, get latest, copy your files back, then reconcile offline work (which will take quite a long time for that many files...)
because your workspace is all kinds of screwy if you're adding files that already exist
I'm not sure how you even managed to do that
I have two workspaces, one of them is UE4 version of the project
On another workspace, I upgraded to 5, made some changes, made the project compatible with 5
And added some BP files and uassets
And when I reconciled my offline work it listed 25k files
13 of them was Intermediate and Binaeries, cleared them
12k left
Since they are saved on 5, they are on the list probably
Many of the .uassets seems to be in their places, I either lost some data or didnt lost anything at all. Not sure why engine is not compiling anymore after trying to get revision though
When we cancel operation, do P4V save the thing it does or reverts everything?
1 error reported
Operation cancelled by user.
Because if it didn't revert that means I lost data
Okay that was a quite tense panick period for me. I didn't lose data but it added things I removed from UE4 version workspace back
I got away by deleting them again
No idea why this is happened but if it wasn't happened I would lose data
you wouldn't have
it would have asked you to resolve conflicts which gives you the choice between merging, taking the incoming change, or using your change.
I had lose some serious data with Git last year, couldn't resist the PTSD 😄
I have a source control question. With perforce you have to pay for a server to send your files to?
Or set up a pc as a server?
How would I restore a project from github once its been set up?
Like if I lost the project folder all together
how do i set the remote origin for git? when i try to change settings for source control, i don't get the option to
just make a clone from the repo?
first topic
oh idk through unreal
but if you just open command line in your project directory you can do it
ok
never used the git UI inside the editor myself
but @ SRombauts might know
he wrote some plugin stuff
question about collaboration. if me and my colleague work on the same level but i push first, then they push, will my work be gone
thanks mate its downloading now so I will let you know how it goes. Its 44gb so will be a while before I know if it worked.
and since levels are a binary file the only way to resolve really is take one or the other
but ue5 has some new thing one file per actor which might make editing the maps better in collaboration
haven't used it myself though
@rotund bobcat That was exactly what I needed. Thanks mate
I'm trying to use perforce for source control, and it's just, unbelievably slow to upload, like, multiple hours
it is a big project dont get me wrong abt 20 gigs, but with 100mb upload I would expect it to be like an hour tops
I have compression and only submit changed files enabled
so what gives
Hey so if i want to keep my source control local, but do not want to ppush to my githum (i am solo onmy project)
i just do not publish to github correct?
partially asking because the remote disconnects whenever i try to publish
i am attmepting this on a test project that is 2gb so i do not break my main project
just a note, you can lock any file, not just LFS files, with LFS
I actually wasn't aware of that. But I'd still say there's very little benefit to trying to separate out different types of uassets - really just sounds like a waste of time to me.
Yep yep
enable parallel sync on the server settings #source-control message
Oh ok, dope, thank you
I set up source using github and everything works perfectly. The only issue I am now having is that in my main level (not the menu but the one the game is played in). The persistent main now only saves when I do an exit save (by closing the editor or loading another umap). And for some reason every time I load it, it needs resaving.
Hi all, i am really fighting to get Perforce set up, I have it all set up on DigitalOcean but having issues even getting P4Admin (Windows) to connect and hoped someone could help as its driving me crazy
Curious what others do, especially if you work at a studio with multiple projects: How do you store raw source assets for your game?
- Do you have a dedicated depot for the assets or do you store them in the same depot as the project somewhere?
- If you have a dedicated depot, do you have one per project or a single large depot for all projects?
- What about streams? Just a single stream?
dedicated depot, not using streams
whereas the game does use streams
Thanks for the response! Do you have multiple projects? If so, is it one depot per game or a shared depot for all raw assets?
at my previous company we had multiple projects, and every project had its own dedicated game stream depot and a dedicated source art classic depot
since with classic depots, the artist will just make a workspace that just has their area in it and not download gigs and gigs of useless stuff
That makes sense!
I realized what's wrong today
I shouldn't have create a new workspace
P4 couldnt track the file history with the new workspace
I pasted UE5 files to my first UE4 workspace and it seems to be worked now
Hey people. How can I apply the same ignore rules for plugins inside Plugins/Developer and Plugins/GameFeature? This is a quick snapshot of what's going on
I tried something like this in gitignore file based on other examples, but it seems like it's not working.
Plugins/Developer/RiderLink/Binaries/*
Plugins/Developer/*/Intermediate/*
Learned the sad truth. If the first gitignore do not have those settings then it simply doesn't work. I created a new repo and added my gitignore along with my files and everything is ignored succesfully. But that means I have to upload all those things again with my slow internet.
? Every VCS out there only applies the ignore system when looking for new files that it is supposed to add to the repository. Think about it this way: If the files are already in the repo what is the ignore file supposed to do? Delete the files and commit their deletion and the ignore file should stop them from being readded if it works
I realized those files being updated after couple of commits, but what you say makes sense. Will do this next time.
Thanks!
You can obliterate files using P4A, just be careful, no undo
If the question was "can I delete P4ROOT" the answer is hell no, that's where the perforce server stores all your files. Deleting that would completely ruin every depot in that root.
If the question was "how can I free up space on the perforce server" then you have HoJo's answer.
lmao, I never even thought of doing that 
yeah, because generally deleting the entire set of storage and configuration data from a service you're actively using isn't something that would cross your mind
One day i deleted P4ROOT. And since then, I became happier than ever and moved on to other VCSes.
Sorry - I might as well ask - what do you mean by "next time" ? You didn't create a new repo to fix this already did you? 
Yeah but it's not that bad, I created the previous repo today, so it's not like leaving all that commit history behind for some simple misunderstanding. 😄
Oh haha 👍
though for saving space on a p4 server, you might want to consider only storing n revisions of say the _BuiltData file for each map
make sure you have parallel upload/download enabled
but otherwise it takes whatever time it takes
Hi, Anybody know how to unlock a umap file? It doesn't show in Content Browser so doesn't have any right-click menu options.
Solved! I found the unlock option in Perforce P4V, under Actions. Thought this might be useful to someone else with the same problem...
You may want to look into why they're not showing up in your Content Browser. They've always shown up in mine just fine.
But, checking things out directly in P4 shouldn't cause any real problems except possible workflow issues going back and forth between tools.
Hi Ramius, Which folder is the umap in?
Uh, whichever one you put it in. I don't think there's any requirement about folder beyond being in /Content, but the editor shouldn't be letting you create content like maps outside that directory anyway.
It's in Content, thanks, but there's no 'Lock' option so not sure how it was locked when I got that message lol
Do you get source control options for other files in the Content Browser? you might just not have the source control integration turned on in the Editor.
Perforce will lock files when they're checked in regardless of anything the Editor does.
Can't figure out why with perforce when we update DefaultGame.ini parameters, even when clicking "check out" in project settings, when we go to submit, it shows it is updating "none" and does not update the file to source control. I double checked our .p4ignore but not seeing anything that would conflict this. Any ideas?
In the unreal engine folder I have a Projects/ folder. I would like UnrealEngine's source control to fully ignore it and all it's contents, but I'd rather not modify the .gitignore directly (I don't want to modify the contents of the repository). From what I've read on https://git-scm.com/docs/gitignore the way to do this is using the .git/info/exclude file.
A challenge with this is Unreal whitelists all directories with !*/ and whitelists a bunch of file types. so adding /Projects/ or /Projects/** to the .git/info/exclude file doesn't work.
for example I have a directory tree like this
UE5/
├─ Projects/UGCExample/...
├─ Source/...
├─ Binaries/...
├─ .../
and my .git/info/exclude looks like this
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
/Projects/**
@manic gazelle glimmer me and ill tell you :)
maybe something that will work is
/Projects/**/*.*
/Projects/*.*
Hard support reporting in. 🤸♂️
Thanks I gave it a shot. No cigar 🥲
Update: As far as I can tell the only way to "un-whitelist" a file is to ignore it's parent directory. This can't be done in the Unreal Engine's repo (without modifying the .gitignore) because it's git ignore white lists all directories -- and a directory cannot be "un-whitelisted."
Only documentation I could find on "un-whitelisting" files:
It is not possible to re-include a file if a parent directory of that file is excluded.
https://git-scm.com/docs/gitignore#_pattern_format
Hi! I remember I was able to merge blueprints before, but now it seems I'm not able to do so.. When Blueprint is in conflict, Content Browser does not even show it.
Is it something to do with latest UE versions (I use 4.26) or just git/lfs things?
New Digital Ocean pricing starting July 1st, new $4 droplet (1 vCPU, 512MB memory, 500GB bandwidth, and a 10GB SSD)
https://www.digitalocean.com/try/new-pricing
has anyone seen UnrealGameSync just silently quit every few minutes? I tried attaching a debugger to it and there's nothing in the output log, no exceptions or anything, just
The program '[29880] UnrealGameSync.exe' has exited with code 0 (0x0).
What should I do about the ExternalActors directory? It keeps trying to add it to my git repo, but when i try to commit it says the files do not exist (for example Content/ExternalActors/ThirdPerson/Maps/ThirdPersonMap/6/CZ/ )
Is it safe to just add this to gitignore?
When using one file per actor, the packages in ExternalActors are the actual content of your map, one for each actor
so you can't just ignore them, not sure RE: the error about the file not existing tho
you should be locking binary assets instead of trying to merge them.
is it "safe" to continue working on a project while perforce uploads your progress?
like does perforce cache your changes so that modifying them while it uploads will end up ok?
How does one collaborate with someone else on the same project. We've been trying to use github, but are having trouble because of merge conflicts when working at the same time. How do "normal" teams collaborate with eachother? 😅
They make branches using Git. When some feature is done, it gets merged into main branch. Project Managers or team leads often manages features, so they do not get many conflicts.
Code conflicts are not an issue, btw. Only assets. Simply do not work on same assets, or be ready to merge them.
For maps, it is generally a good idea to split them into sublevels, so everyone can work on their part of the level.
You can merge blueprints, but for some reason they do not get merged lately. But @limpid obsidian gave an advise for it. But have'not tried it yet, and I'm not really sure what he means though. I guess he is talking about locking files for all contributors while someone is using it, but that's not a solution to my question.
Couple of versions ago I was able to merge blueprints without any issues
Okay thanks, I'll take a look into that. Its been a struggle so far for sure
Adding on that about collaborating with maps, ue5 introduces world partitions which are actually separate files that built up the same level, so as long as two people aren't working on the same partitions at the same time multiple people can collaborate on the same level
Use LFS locking
Also, seems like GitHub is planning to move to pay for what you use instead of pre-paid for LFS
Oh good, the data pack stuff never made much sense...
I guess downside is it's harder to predict your bill, though if they let you set manual limits that wouldn't be an issue.
how much is github + lfs monthly? is it cheaper than the $4 dollar droplet posted earlier?
External actors also work with normal levels, even in 4.27 (but within limitations that were fixed in 5.0)
I'm specifically talking about the world partitions added in ue5, that split the terrain itself into actors
Ah, that. Yeah, that's new
Iirc it was possible with world composition, but that was hacky
Why is git in UE5 so slow? git commit on command line is instant, but submit files in the UE5 menu takes like 30 seconds just to bring up the commit dialog?
are you using the plugin?
I'm just using it out of the box in UE5
this one works pretty good I heard https://github.com/ProjectBorealis/UEGitPlugin
SRombauts in this chat knows more about it, he created the original thing that this is based on
All source control providers are slower than the command line when you hit submit; they run a full "status" operation to let you pick files that are changed, so it takes some time
The ProjectBorealis fork of my plugin is indeed much better if you use LFS (and perhaps even with raw git)
Can i just use command line instead (for commits)....?
Or will this create problems?
Does anyone store their project code on GitHub and and everything else on perforce? Or just put the code on perforce too?
I have always put everything on Git/Git LFS, than on Perforce, and now on Plastic SCM
Though with Perforce, I know that quite some people hate it for code because of the lack of cheap branch&merges so some studio use git for the game source code
Same sort of separation sometime with the Engine vs the Game Project, either all in one, or in multiple repository. It's a matter of finding the workflow that suits you best, but keep in mind that added complexity makes it harder for everyone imo
Yeah makes sense
Thanks for the info
We currently have everything in perforce but working in git is much easier from a code perspective
I wonder how good git LFS is
I like the idea of code on git and assets on p4, but I can't wrap my head around a workflow that isn't problematic considering the interplay of c++ and blueprints
As a result I have always work with everything as one repo
I agree with you, but some studio enforce very strict policies like, don't mix code and assets in one review, and each shelved review need to compile & pass some test before integration into the mainline (which is kind of good in big teams I think)
In this case you can develop the code, keeping full backward compatibility (that is not removing deprecated things, just adding more) and only when it is integrated, and built by the build system, launch the resulting editor to make the assets
It's slower and cumbersome perhaps, but it probably help a lot with stability
Interesting. I get the point, but it'd certainly hamper refactors. You can use core redirects, sure but, some uassets ARE code.
Isn't plastic more like a combination of git and perforce
I would rather say that it's more like a more modern Perforce, with ideas from other VCS: faster, leaner, cheaper and especially far easier to setup and use (but bear in mind that I work for them, integrating Plastic SCM in Unreal Engine 5 🤩 😉 )
It's a challenger, including the downsides of being less widespread, though it's now really the defacto for Unity development
yeah cause unity bought them
I definitely wanna try it out at some point
but I don't really work with other people on projects outside of work, so no great testing setup for vcs 😄
Actually, it's the reverse; Unity bought Codice Software because Plastic SCM was getting traction while their internal Collaborate solution was not good enough
What do you use in this case, out of curiosity?
I'm not working in unreal anymore, we just do code, no large assets, so git + lfs
for free time stuff also just git cause I'm used to it
not that I code that much in my free time anyway
As a plastic user (and repo maintainer) I can really say it's a great tool. definitely worth trying out. Before I only worked with git, so no perforce/svn experience
I don't recommend using git but you can try speeding it up with this:
git update-index --split-index git update-index --test-untracked-cache <- if returns OK run next command git update-index --untracked-cache
Because git plugin is programmed in a very ineffective way.
Hello everyone! I work in a small team. We are trying to improve our workflow with a revision system. We chose to use svn because it is free. I installed a server in a nas. I use source control and tortoise svn. It works very well when I work alone. But problems occur when trying to use the system with several people. Some files are locked without wanting to. Most commits fail for various reasons (e.g. moving files). Large amounts of unnecessary assets have to be downloaded every time someone wants to try a package. We end up wasting too much time using source control. Does anyone have any advice for me? A procedure to follow for optimal teamwork?
Well, if you don't implement (I'm not aware there exists (free?) solutions for it) a system that downloads your assets on demand, I don't think you come along without syncing properly.
What you could try is a different version control system(VCS). A common one would be P4V (Perforce) that is also somewhat friendly to use for designers. Its free for small teams with IIRC 5 ppl max. It also has an integration into Unreal Engine, never used it but I'd assume it's usable enough.
A more complicated one than svn would be git, good thing on git it wouldn't lock your files locally^^ Downside, way more complicated to use, especially for ppl not exp with VCS and also the support for binary files is, well not that good, even if there exists git lfs (large file system). We use it on our project and it works good for us but we have programmers with exp in git that help the others, so also only a solution for small projects with no time pressure.
I can recommend plastic, which is cheaper for few people and free for open source projects, iirc (check their website). P4V should work quite well out of the box since epic uses it. You can also use gamesync and other epic tools with p4v
Ok but why change ? svn works fine. The problems come rather from the side of ue4 with its source control bug
Whether it is svn perforce or plastic the principle remains the same, am I wrong?
I have already found some techniques to facilitate teamwork, especially the sub-levels for working whitout locks problems
I am curious to know how big teams manage to work together in an optimal way
We are currently debating what to use with a small team too. We are groing beyond the point that P4 might ask first borns in terms of payment.
Used Plastic in the past, but really not happy (especially that you can't obliberate old files.. wtf).
Not sure about SVN.
Think atm we might go with some Git provider, may it be Gitlab or whatever.
Used Plastic in the past, but really not happy (especially that you can't obliberate old files.. wtf).
you can actually archive manually (or script) some changesets, not exactly the same but can be effective
and the equivalent of Perforce "keep only N last version of some binary files" is on the public roadmap (I posted the link above recently, can find it)
Yeah the last time I googled for "How can I get rid of this part of the depot?" was answered with "you gotta trash it completely and reupload it"
At which point I lost interest
Well, it might have been the case some time ago, at least on Cloud, see this release;
https://www.plasticscm.com/download/releasenotes/10.0.16.6241 Archiving revisions is now available in Cloud!
You can reduce the size (and the costs :)) of your cloud repositories by archiving revisions to an external storage.
Check the whole archive documentation here: https://www.plasticscm.com/documentation/administration/plastic-scm-version-control-administrator-guide#Chapter10:Archivingrevisions.
also super interesting scripting tips like
- How can I archive all the revisions bigger than 10 MB?
- How can I archive all the revisions of the file '/arch.zip' file?
- How can I archive all the revisions except the last one loaded in br:/main?
We are proud to share our continuous improvement with all humankind!
This document shows how to configure and administrate Plastic SCM version control
hm
The roadmap for Plastic SCM says: https://unity.com/roadmap/devops
In Progress:
- We [are] bringing full support for Plastic SCM in Unreal Engine 5 [changelists].
Planned:- We are working on a trimming tool for Plastic SCM Cloud Edition so that you can manage your repository storage. This will allow you to purge old revisions for selected file types and only keep the last N revisions.
So SCM isn't supported in UE5 yet?
It is, only the new Changelists are not implemented on anything other than Perforce
Right, okay.
And Epic Games already merged a new shiny version of the plugin in ue5-main 🙂
https://github.com/EpicGames/UnrealEngine/pull/9156 Update PlasticSCM Plugin from 1.4.6 to 1.5.0 for UE5
Means 5.1., right?
Yes! (will double triple check what they said on another PR of mine)
but you can already get the same version of the plugin in UE5.0 since I release binary versions on Github
Anyway I would love to get you to try again, would be nice to have you onboard 🙂
Don't hesitate to contact me in PM, we know each others already 😉
do you get paid to recruit people on this server 😄
He literally works for them :D
I know
I can understand that he pushes for it
P4 needs to be replaced eventually
As much as I like using it
Actually, I don't get paid to spend time on forums or Discords!
But I want to make the product better, not only the Unreal plugin (which was in a sad state honestly)
I am spending a huge amount of time collecting feedback, but also posting them internally with context and details on how others are doing it
That fair, :P just keep your work/life balance in check
Does Plastic support self hosting? Are there licence models for small teams (up to lets say 10 ppl) which includes self hosting? What about free models for projects that won't be released commercially but are not opensource?^^
(We currenlty host our own gitlab and thus just need to pay for our server)
You could just check the pricing page
Plastic SCM offers different licensing and pricing options: free editions and commercial editions (for teams of any size, including ones that do not need on-premises servers)
Up to 3 Users Cloud is free.
Then there is a Cloud Version, and an Enterprise version, which allows self-hosting
So you would need Enterprise for self-hosting, but Cloud would work if you don't need that
Yeah, did that, didn't see the self host on the enterprise edition.... ^^ thx. Hm ok, that's too expensive for not generating any income^^ nvm then
That's totally fair. No income is a tricky situation :P
All those germans using spanish products 😂😂😂
I really like plastic and can't wait for their improvements they have planned on their roadmap
Why is perforce command not working numberical user client ? is there why to change typemap file manualy going to directory something like that need Help.😢
Set p4user=your user
Your windows username does not match your p4 username
Running the above command will override it
new to perforce vC, what is p4 set?
I'd write the command like that:
p4 set P4USER=sebastien.rombauts
just did in image
no, not the same 😉
not the one from windows
set
but the one from Perforce
p4 set
"set" from windows will list, get or set an environment variable
"p4 set" does exactly the same, but limited to Perforce
it's more convenient imo
yes, same, it's normal
but now your problem is that you don't want to provide your windows user name 99026 but your p4 user
same result
set or p4 set
someone should have attributed a username & password to the server, with an associated license
not a problem here, it worked on his screenshot
err, sorry, seems wrong
Clear show it has set user to 99026 but p4 status or p4 typemap not working
but there is something strange still
the windows users seems to be
99026
the perforce user seems to be
990269
P4v works I take it?
let me do set again
the spaces are the issue here I confirm, sorry that I messed up 😉
same error
The last error is about purely numeric usernames
It needs a letter it seems. Does p4v work?
accidentaly set user name 99026 laptop to while window install
I think it is spaces in your command as srombats confirmed
Looking at your screenshot it’s not using your desired username
Type exactly:
set p4user=username
No spaces
Ok, at least now it is reporting the correct username in the error message
So now it’s complaining about only numbers in the username
Does p4v work?
yes
Strange
Well it doesn’t like number only usernames apparently, that’s what the error is
That screenshot shows your username as Amir….
You are using the wrong username
No, p4v is using the right username
Set p4user on command line to amir
If you want to change your username you’ll need to do it hrough p4admin
Thanks guys finally work
Fwiw the easiest way to use p4 CMD for quick jobs is to use p4v.
Right click any folder and choose Command window here.
All the username etc is set for you already.
Nice. is it like Git click in folder. but not displaying for me.
Nope, it's completely the opposite. They suggest you clicking on folders in p4v.
So, "the easiest way to use perforce from commandline is using perforce gui client".
Do I need to include binaries in the depot for both the project and the source version of the engine? I keep getting compiling errors and having to checkout the whole binaries folder on my project when working in cpp. Idk how that is going to work with another team mate
your project binaries don't need to be checked in
cause you team mate will get them if they compile the project
and you can force compilation on startup
You can do it in your typemap for all new dlls and pdbs, and manually in p4v for existing ones. Change the filetype to +w, which will leave those files writable on disk
Or, as dieter said just don't check in binaries, but if you have a non-programmer on the team that is a problem
Under what conditions does github list author/commit separate if it's the same person?
@rotund bobcat @vale basin Ty! I'll just keep them ignored for now then, we only have two programmers right now so we're both capable of compiling it easily, if that's what you mean by non-programmers having some issues with it.
Maybe email address mismatch?
Yeah I wouldn't expect non programmers to compile, but it's a non issue for you, so safe to just not check in binaries
This is the case if you edit your commit: it has an author with authoring date (the creation of the commit), and then a commiter with a separate commit date (the latest change to the commit)
It will display both names if the dates are different (a bit silly here)
btw great work on the latest UE4 plastic plugin version. I can't wait to try out the new features 🙂
Thanks @storm sleet
I have been very feedback driven recently, trying to focus on "user pains" and quick fixes, but also documentation and cross links for better visibility.
I have also been working a bit more with Epic Games 🙂 Now I need to go back to more real programming 😉
still, very great results. I really appreciate them, and nice to hear that you're doing well with Epic 🙂
anyone have experience with perforce? I have setup a workspace as a localhost, i'm wondering how I can get my friend to be able to join the perforce server over the internet
hi all, I shelved some files to backup my work, but did not revert them on shelving and continued working on them
now I'd like to submit those files but I am asked to unshelve or delete the shelved files first
how do I keep whatever is in my workspace now?
and submit that
delete the shelf and submit
How well does perforce server work in docker?
I haven't run it at large scale but I've been running it for 2 years in docker
Works fine
Depends more on the underlying storage, processor and memory I'd say
Ah OK. Did you use a particular image or did you make your own? I think I've seen some websites that explain how to make the image yourself?
I have multiple workspaces and I want to remove all of them and leave only single one. If I revert the changelists in them, is there any possibility they can override anything that modified after added to those changelists?
Revert unchanged files does not revert anything so probably it will override?
Also, what happens if I remove the workspace without reverting files?
p4 revert -k -c default //... seems to done what I wanted
I know in ue4 you could pull from git right in unreal, but the git integration in ue5 seems a little lackluster? it doesn't seem to support pulling, or auto tracking additions, am I doing something wrong here?
anyone know why my p4 keeps downlaoding the same files
every time I press get latest it downloads these 2000 files
Not enough info to help out.
I get latest from depot, it downloads the files. Try again and it downloads the files again.
I cant see which files its downloading p4 doesnt do that, so thats all the info available
for verbose output of downloaded files, use this
as for your problem, maybe p4v metadata is out of sync? i would try a p4 flush from the command line
how do you remove stuff from depot in perforce ?
you can mark files for delete
it doesn't permanently delete them...you can always go back in time and retrieve them. deleted files are just filtered from view
if you want to permanently delete them and the entire history you can use obliterate from p4admin
hi, I'm trying to research how to use Perforce for a small team and want to clarify something
the computer on which "helix core server" is installed becomes the central source of truth, meaning that's where the files are hosted, correct?
and all other users will use P4V and Unreal source control plugins to pull, lock/unlock, and push their changes
but the Helix Core computer itself must be backed up periodically, because if it fails, the whole project goes with it
(as opposed to GitHub, which is cloud hosting so provides a safety net against hardware failure)
is that about right?
Mostly correct. Github is not backup, though.
All it takes is someone force-pushing your repository to wipe out any "backup" you had on github.
Anyway, not relevant to backing up a perforce server. Yes, you need to backup the server directory (and potentially need to create a checkpoint first). You may want the occasional backup of the project files themselves as well if you're serious about being safe.
Github and other cloud providers DO experience occasional data loss and downtime, and also have other potential issues like a project or user getting banned for any number of reasons. Backups are needed whatever you choose
Source control in general isn't backup in and of itself. Backing up whatever your "source of truth" for the repository is (whether that be whatever is pushed to github or a perforce server directory or whatever).
appreciate your reply, thank you
Yes, UE5 broke many things in all source control providers except Perforce, so Git, Subversion and Plastic SCM had some important regressions all around.
I have been taking care of the Plastic SCM so it should be already order of magnitude better in UE 5.1.
I will also probably take some time one day to fixup the Git plugin since it was my baby 🙂
Any idea why a file appears in the workspace, but not in the content browser ?
what kind of file
Could be a redirector?
Run fixup redirectors and see if it goes
Also I think in content browser you can get it to show redirectors, but I forget how
also how can 2 people work on the same project, because when I try to open the project it wants me to check out the uproject file and then it locks it for the other person?
If your team members have files checked out it shouldn't prevent you opening them, only saving them. So it shouldn't block progress
If when you open a project it updates the uproject file, then your uproject file isn't properly up to date. It's either changing engine association or enabling a plugin. You should check that whatever is being changed should be submitted
Opening a project with the correct engine version should not attempt to checkout that uproject
hmm ill see
Has anyone setup plastic SCM for unreal engine 5 that could direct me to some documentation or vids that would help?
haha thank you, hopefully hes around 🙂
Righty i have managed to get it connected and a friend on, once they attempt to boot the file they get the error of "could not be complied try rebuilding from source manually" ive had this before on perforce but unsure of what i did to fix it. (also does anyone have a UE5 .ignore file they use, i guess maybe @reef oriole if you're around 🙂
that error has nothing to do with source control (unless it's been caused because you didn't commit enough project source files to source control and the other teammate is missing stuff), that error means exactly what it says, compiling DLLs failed... is your friend an artist, do they have visual studio installed?
Yeah my project works fine, and i have got them to join the source control and download the project, once they attempt to start it throws the above error. they're not an artist and yes they have VS 🙂
you'll probably want get them to open the .sln file up in VS, hit build, and give you their build output log so you can figure out what went wrong
gotcha
Hello all. I have a question. I've downloaded the Unreal Engine source and Pushed it in Perforce with it built. I'm Trying to get another programmer to use it as well be he is have Issues with building a project with it. Does anyone have a solution for it?
I personally also ignore all DebugGame binaries and *.pdb instead of binaries directory, but we distribute our binaries to designers that way
Also hello fellow plastic user 😉
@storm sleet trying to get the ropes of it now but not have loads of luck, not sure of the normal work flow for pushing and pulling changes and we seem to be running into issues
I would say */Intermediate/*
So you automatically ignore plugin ones too
Same goes for Saved, etc.
Basically every directory you listed.
Would anyone be able to drop there ignore file so i can see how they;re normally written, additionally, when i check something out shouldn't the team member be able to see a live view that i have checked out an asset as i cannot get it to work. unsure if we're correctly pulling/pushing ect. @teal bone @storm sleet
Live view as in symbols on assets? That's what the plastic plugin and the workspace view does. You need to properly configure file locking for this to work
