#source-control
1 messages ยท Page 65 of 1
Yeah if they are already currently present in your git then your .gitignore wont remove them and will just keep getting updated.
@ebon mauve
it fixed thank you
What do ppl here use for version control, we have been testing out Assembla and Perforce but it does not seem very good. We are using assembla so we dont have to worry about managing it but it does not let us use Helix Swarm for merge requests and instead have to use Assemblas own Merge tool which seems to be problematic, cant solve conflicts in any acceptable manner
Perforce at work, perforce at other work. Seems to work ok for large projects and our large teams. ๐คท
Define "can't solve conflicts in any acceptable manner". If you're talking about assets (uassets/umaps) then you won't find a tool out there that solves conflicts for those, regardless of host or source control system.
The solution is generally file locking to prevent multiple people from checking out the same file in the first place.
*technically there's a blueprint merge tool, but it requires you to resolve merges locally and it's a manual 3-way merge which is not the greatest experience. It also only works with normal blueprints, not UMG/animbps/level blueprints/etc.
If you're talking about code... I've never used assembla's service so I can't really speak to that.
What could cause me to not be able to connect to a Perforce server? The server has been up and running fine for 3 years. I did do a windows update on my computer recently
Does anyone have a good method in maintaining and distributing internal plugins?
We have several projects that require the same functionality so I created a plug-in to handle that. Now if I adjusted something in the plug-in, my teammates currently have to delete the old version and copy-paste the new one in.
For each project. Is there a good way of making sure everyone has the latest version? Or is this going to be something I as maintainer will have to keep an eye out. Like if I update the plug-in, I need to make sure it's updated in all project's source control
I'd usually recommend each maintainer responsible for pulling any updates. Otherwise you run the risk of breaking projects accidentally by changing the shared plugin.
for shared components in general, it's usually safer to let each user of the component pull in new versions as and when they're ready, rather than any mechanism that pushes it on them
this might mean that some people end up sticking with an older version for some length of time, so as the maintainer it's your job to either chase them to update and find ways to help them do so smoothly, or to try to build things so that you can tolerate a little version drift here and there
pragmatically speaking, you tend to end up with a little of both tbh
Thanks for the tips, so basically I need to assume responsibility and do my due diligence
it's not uncommon to have rules like "no merging to the main branch with out-of-date versions of X"
which might even be automatically checked and enforced by your source control or CI build or whatever
And make sure no one mucks around in it
which means that sub-teams can work on something while sticking with one version so that the goalposts don't move on them, and then when it's done, they can commit their work to a branch and then work on updating all the things
if you're the maintainer of the shared component then it's probably worth spending a little time making yourself aware of all the ways you might be able to change the innards of your component without breaking anything externally-visible so that your updates can be as low-impact as possible
there will be breaking changes here and there, but a little forward thinking can help to avoid at least some of them
Thanks!
no problem
handling shared components like this is actually something I've done a lot of, just not in a games-dev context
I'm a software engineer but I work on business and industrial software, not games
and I've been responsible for shared code libraries a number of times
And how many grey hairs did that give you? ๐
after I figured out some practices to streamline it, way less ๐
- proper architecture with a focus on encapsulation to maximise how much you can change in the shared code without consuming code having to know, which means fewer breaking changes
- when you have to make a breaking change, try to add the new thing separately and deprecate the old thing, so that users get friendly warnings (which you can detect in builds) and update as and when they're able, and then you can remove the old thing a couple of updates later
- allow users to pull new versions in when they want, rather than pushing them out
- use a versioning system that makes it clear to users whether the update they're about to pull in is a small low-impact on, or a big breaking change (eg. SemVer)
- have a mechanism to clean up anything that's stuck on super-old versions, whether that's a rule that says "nothing older than X in main branch" or a policy that says "every two months we will go through and update the things"
- automate as much of the process as possible (automated builds, automated checks, nice simple tool for users to get updated versions, etc)
If you have to use VPN to connect to this server, that could be a symptom of something wrong with your VPN connection. Beyond that, there's not much to go off of- https://community.perforce.com/s/article/2960
Hello
Does anybody here use git kraken?
I wanna move my project folder to an other location but im scared ill fuck up something so I need assistance
For Plastic SCM, our main branch's tracking all the binaries so that our non-devs can work on the project. Is there anyway I can ignore all those generated binaries locally on my branch?
ah man
I got so many horror stories with plastic scm
Im not the right person to help you because I used to always struggle with it
I had to re-enable my perforce service on my server pc may be a similar situation
not sure what that has to do with gk, but basically easy way is one of:
-push all changres to remote and fresh clone
-clone the local repo to new path, then set origin
I've deleted a source engine directory that had several git stashes in it - is there any way to recover them?
I cant find the project I created on github
I created it at the school but on my home computer I cant see it
how come this file is not downloading whenever I hit Get Latest?
and why does it say "marked for integrate" what does that mean?
actually, it doesnt download even if I go back and try downloading the entire project folder from the initial commit either(it was around at the beginning too) I dont get it
see?
Limiting tools that you can use to only those who are aware of P4 is not a better workflow.
Are you just trying to start arguments about things from days ago? I'm trying to help someone using p4, we all know you have a hate boner for it but this is uncalled for.
I didn't even say anything to compare it to git - I was letting them know what the intended workflow was for p4.
Hey, i said nothing about git!
I'd kindly ask that you stop trolling days-old replies just to stir things up. Have a nice night.
And you're right - I'm assuming you were referring to git when talking about "limiting tools to those aware of P4" and I guess I was wrong. But the ideal workflow is that with p4, at least in the unreal world. Most common tools for p4 unreal have official integrations on one side or another.
me sittin here..
Looks like this was never shared in this channel. We've developed a thing: https://github.com/git-as-svn/git-as-svn
It sits on top of Git repo and allows users to talk to it as if it was a Subversion repo. Primary audience: content makers who don't want to switch branches, but just need a simplest "update, hack, commit, repeat" development cycle, while more tech-savvy users continue to have all the benefits of Git. This is close to SubGit, but in git-as-svn case, there's a single source of truth (Git), so it can't out of sync.
We happily use git-as-svn since its inception, currently at a game studio of 400 people and there are indications that it is also used in the wild.
perforce is the preferred source control for unreal as far as I know btw, my two cents
assuming thats what yall are talking about
It's epic's preferred VCS, yes. It isn't the only option though.
"preferred" is a subjective term. Preferred by whom?
yea
As for your problem, "marked for integrate" means you have the file checked out in a changelist already, likely being moved to a new location. Look at the pending changelist tab
The reason "get latest" isn't doing anything is because you already have the latest revision
If you want to undo your unsubmitted work, right click the file (in the depot/workspace browser or in the pending changelist) and hit revert.
Ah, an undo operation.
Unless you explicitly tell it to, "undo" doesn't actually submit the undone files for you
but that revision does show up in the history tab
Yes, you're not supposed to delete revisions entirely
You just undo them and submit that as a new revision
oh
It's technically possible to obliterate things but that's generally not the right thing to do - what if you want to go back to that revision later?
So instead you undo, say, revision 15 and submit that as revision 16.
Most source control systems work like this in some respect - you generally want to keep the history of files even if that includes undone work.
You didn't submit the changelist containing the undo
oh!
Just make sure it did what you want first
The files have been undone locally, just not submitted to the server yet.
I already submitted a bunch of changelists after I thought it undid
now its just not downloading that file from the server
idk if its too late to try and submit that now
It isnt
or if it would break everything
Just make sure your project is in a good state locally
its not rn lol
since its missing that file
its the main character, so there's a bunch of dependency stuff happening
You can revert the pending changelist and try to setup the undo again if you still need to.
Or, to be even safer, right click the changelist and hit shelve
ah
Shelving saves the state of the files to the server without submitting them. It lets you "set aside" work
You can unshelve them if you find you need them after all, or delete the shelf if you don't.
Yep. Make sure you revert when doing so (it's an option when shelving, or revert after the fact by right clicking the changelist)
Worst case scenario you can unshelve the files to get back to their current state
if I want to redo the undo, right? that's what you mean?
Heh yeah
actually, before I try anything
If reverting breaks things further somehow. I'm only suggesting the use of a shelf because I don't know everything you've done so better safe than sorry
Im noticing that all the files in this undo are files that are missing from my workspace
so if I shelve this, these files will all return to my project?
Odd that they're missing... But if the undo caused that then yes
ah, ok
If this doesn't bring them back, make sure everything is reverted and then you can force sync the latest revision which will download a new copy regardless of whether p4 thinks you have it already
Reverting is right clicking on a file or changelist and hitting revert. It syncs back to the revision you started from and removes it from your pending changelist.
I think I might have deleted the files from local computer since I've submitted the undo a while ago, is it trying to pull them from my disk?
or did I need to uncheck revert?
So the files are already gone, you might as well revert. They were deleted at some point so it can't shelve what isn't there.
Just right click the changelist and hit revert.
If the files still don't show up after reverting, right click a file or folder in the depot, hit "get revision..." instead of "get latest revision..." And then check the box that says "force sync"
ah, ill try that
hey guys
In git kraken lets say I commit my changes do I have to pull before doing push ?
or pull before commiting changes
got kraken subscription includes email support. Why don't you just use it?
On the free front, there's https://git-scm.com/book/en/v2 book that contains answers to almost every question a fresh Git user might have.
anybody ever deal with Chinese filenames being submitted to a non-unicode server on Perforce?
apparently the bytes stored in the filename are unchanged. Perforce just won't translate them from server to client
for the people who submitted the files it's not a problem, as they use a Chinese version of Windows. for us, it is a problem as the filenames look like gibberish
and they don't want to enable unicode, so i will need a local solution ๐ค
I tired enabling the Chinese language pack on Windows but no luck
also tried all the p4 charset vars but for any subsequent p4 operation I keep getting "Unicode clients require a unicode enabled server"
Enabling Unicode on server looks like the only sane solution. Another one: just don't use non-ASCII filenames.
was also looking into tools like convmv which can translate filename encodings...no luck yet though
So my file / project is fine but when I go to do diff (using Git btw) I get the warning in log "contains unrecognizable data, check that it is of the expected type." and nothing happens. For some reason some files have an issue being diffed while others do not (in regards to BP uassets which are being tracked by Git LFS).
Hello, I'm trying to setup a NAS at home to store git repos of Unreal projects... I have a Raspberry pi but I cannot enable Git LFS on it... anyone knows how to do it? is it even possible?
Or any recommendations for buying a "proper" NAS for this usage?
Is there anyone using perforce for version control. I am running into a few hickups with p4 locking out write access when trying to build my project and was wondering if anyone uses it wouldn't mind giving me a few pointers.
To resolve some of these I basically just put +w on every file in the Binaries folder. You can set that through p4v, or on the commandline you can type p4 typemap and change it for certain filetypes
TypeMap:
text+w //....cpp
text+w //....cs
text+w //....h
text+w //....txt
text+w //....log
text+w //....modules
text+w //....target
binary+w //....dll
binary+w //....pdb
binary+wx //....exe
binary+w //....exp
binary+S1 //โฆ/*_BuiltData.uasset
that's my typemap. +w on any files that are easily diffable, or binary files produced entirely by a process with no human intervention. Resolves most hiccups for me
+w means that the file will be writable on disk always. But to submit it you'll still need to check out the files
Thanks much
@vale basin do you have a firm P4 knowledge im haveing a hard time getting it set up.
I want to set up 2 seperate depos but i keep getting out side client view
Not really sure mate, sorry. I know bits and pieces
sdthanks
Hey guys. Which one is better for source control, github or perforce ? Right now im trying to setup perforce, but im having a hard time. Can someone help me, I will really appreciate that. Thanks
Im willing even to pay, if needed. We are a small team and we just need to setup perforce or github for source control, but we don't know how to do it correctly.
I think this is the best tutorial I have seen on the subject for a beginner: https://www.youtube.com/watch?v=GsdS71tdGj8
if you're cloud hosting, and happy to use Digital Ocean I believe there's even a built in app now (I never used it tho).
https://www.perforce.com/products/helix-core/install-helix-core-digitalocean-server
Learn how to setup Helix Core on Digital Ocean in just a few clicks. Get your DigitalOcean server up and running fast.
Once you have a perforce host setup there's a couple of things you need to do, namely setup an Unreal typemap - ping a question back in this channel once you get to that stage if you need help.
Do you need LAN or VPN to use Multi-User Editor in UE5? I mean can you do it using a server on your own computer?
Or is there any other way to edit the same project from two different locations on earth?
I will DM you, so i don't need to spam here
if you message in here then you have way more people looking at it, I'm not always available ๐
well if someone else can help, it will be nice
I cannot seem to get rid of the files not in client view. I have a didigtal ocean server set up but cannt not add any files as I get this ever any time I try and add files to the depot.
What have you tried so far?
I think I managed to make perforce work
but I do this all for the first time and I still have some questions
Ask away
RIght now im having an issue with connecting to the digital ocean server
it looks like im hosting locally even after im connected to the digital ocean IP
maybe im doing something wrong
At the top of the window bar in P4V, it should show the digital ocean address and your username
yes that is it
but when I write in console p4 diskspace, it shows me my local disk size and not the size of the server on digital ocean?
yeah, so in console you'll need to update your P4PORT setting. do p4 set P4PORT=ssl:digital_ocean_address:1666
might need to set your username correctly as well
p4 set P4USER=username (whatever it is on digital ocean)
p4 set will show all your environment configurables.
the other option is from P4V, to right click any folder and choose "open command window here" - and it'll start a cmd prompt window with all the right variables set
it's still not working
okay, try the P4V -> open command window here method.
and be sure you're logged in with the superuser account if you're trying to do p4 diskspace
I open it
to verify, you can try opening P4Admin with the same address/credentials and see if it renders there correctly
uhh im not sure with which account im logged in
are you connected?
yes
did you create users already on the digital ocean P4?
are you connected to the right server?
cool.
maybe shutdown your other P4 server so that you can be sure.
you should get a connection error anywhere else - be it through command line, P4V, UEditor, etc
im not really shure how to shut down the other servers? First time im doing this
where's the other server?
I think I have just this server on digital ocean, but the files were stored locally
oh, i thought you had a server running locally or something.
sorry, im not even exactly sure what im really talking about lol
so I can't explain things properly
That's okay. the more you can sort of explain how you started, what you've tried, what you're trying to accomplish - the more it's possible to guide you.
Digital Ocean link: https://m.do.co/c/9c32421cec91
Perforce docs: https://www.perforce.com/manuals/p4sag/Content/P4SAG/install.linux.packages.install.html?fbclid=IwAR0meqmgIgK4Ic3eewVv-vpm7EQGJl0uKTNQmDc99Jx9s0wTQ12ByiYvRkY
Try my C++ Survival Game Course:
http://bit.ly/unrealsurvival
Discord:
https://discord.gg/meFRZfm
Business Email: contac...
I followed this video
how can I check that is working properly?
Because right now im submitting some thing and so, but I don't know if I do it the right way
hmm, i would probably recommend setting up Perforce via these instructions: https://www.perforce.com/products/helix-core/install-helix-core-digitalocean-server#tab-panel-74879
Learn how to setup Helix Core on Digital Ocean in just a few clicks. Get your DigitalOcean server up and running fast.
his method does the vanilla installation via Perforce's package manager, which is okay - i guess, for testing. but the documented version above has a better setup process overall and uses a managed system image
but I already have it set up
at least for the first half of the video - you can probably use his instructions for connecting Unreal editor to Perforce and pushing your content up.
up to you.
btw how do I remove content from the depot?
if it's submitted, you can delete it - and it'll just update the latest revision to delete. if you want to nuke it completely as if it was never submitted, then you're looking for p4 obliterate //path/to/file or p4 obliterate -y //... which deletes everything.
I submitted some things just as a test and now I want to remove them
do they don't take up space
sure, go ahead and obliterate it then.
Im getting this like every 3 minutes
you may need to do the obliteration as the perforceadmin user, unless you elevated the permissions of your own user account.
(guessing that's your name)
ok, but I don't understand one thing. The depot is basicaly the server on digial ocean right?
also, in that window in p4admin - totally guessing (without being able to see the permission table), but you may have needed to add your own user account into the Dev group.
yup
then Why when I click show in explorer, it opens my local folders ?
in P4V, after you make a workspace - you need to take your own content, select some or all of it, mark for add, and then submit it. once submitted, you'll basically be between the depot view and workspace view
the depot view represents what's on the server, and the workspace view is what's on your disk
explorer is the program in windows for browsing your hard drive, folders, etc.
ok I see
now another person can connect to your server (after you make them an account, and add them to the Dev group), make a workspace, and sync down whatever you've submitted.
and then also make changes
Ill go to bed now ,cos im too tired and tomorrow ill redo everything properly and see if everything works
chances are you probably just need to set the source control options in Unreal Editor to point to your DO P4 server. UE is pretty good about handling most things once you've got the server setup and it configured to point to it.
Hi, why is it showing that there is space used here?
when in the depot i have nothing?
Does anyone have any recommendations for version control that will actually cope with GitHub? Git LFS is quite painful.
I assume I should exclude enc_temp_folder from my repository?
I used UE source control button to create the git (and thus gitignore) so I'm a bit confused why it isnt in there already
yeah that default gitignore in there is outdated
its for edit and continue in visual studio
probably because the server only uses one disk volume for everything - so that 2.7GB is including space allocated to the OS, the database, log/journal, and other stuff required to run a server - besides just the depot files.
general recommended best practice for operating P4 is to use a separate disk for the database, logs/journals, depot files - and then enable configurables that halt the server before any of those volumes fill up so you minimize the chance of database corruption with a server filling up (of course, basic monitoring as well to respond before this fail safe happens)
Hi again
so we made it work
me and my team mate are trying to share content
but we get it in different folders?
how can we make the changes go to the same project/folder
hmm.. windows isn't a case sensitive OS - do you see those two folders in Explorer?
your perforce server might be set to case sensitive (or rather, it's not been set to case-insensitive)
anyone knows how i can change my defaults on perforce inside ue4? for instance i was using an online host, but now im using a local server, and i need to input all my settings everytime for my local one since it kept the old ones stored
what does p4 -ztag -F "%caseHandling%" info show?
sensitive
Also what happens when we have same project name , but different folders and content inside?
anyone have idea?
on a case sensitive server (as it is now), Perforce_Project != perforce_project. so, if both of those exist on the server, and you sync to windows - only one of those will exist.
so if they both have the exactly same name, they will merge?
Ideally, per UE4's documentation, you should run case-insensitive. But if you don't want to change that, then you'd probably need to make sure your teammate deletes their local project, deletes their p4 workspace and create it, and then only sync the correct project folder
not on the server side
your workspace will only write whatever's locally later in the list of files. it's kind of contrite to explain
yeah, first time im doing this and Im not sure how to set it up properly
what we have right now is 2 projects with different content and changes
and we want to merge those into 1 and then whenever one of us does changes, the other gets them
yeah, so one person should do that work
of merging
as in have both copies separately, in two different workspaces
locally on your machine
and do the laborious task of merging what's necessary into one folder
and then submitting that into a perforce server
and then the other person should erase (or backup) what they have, and sync from perforce what you've merged locally.
ok I think I get your idea
one of us has to merge all into 1 project, submit it to the server and then the other one gets it ?
and we both work on the same
yup
yeah
if you know git, you've basically both been deviating your work in separate branches/forks/etc - the longer you work separately and not merge work back, the harder it is going to be to merge your work together into a single project.
i haven't used git, but I have used perforce in the past
but only used it to already set up project
and now I have to do the setting up by my self
Since I started using Perforce it has always asked if I want to check out the current BP I'm working on when I save, but recently it stopped doing it so I need to manually check them out, does someone know how to fix this? I'm not sure if I have accidentally disabled it somehow
is there a p4 ignore file someone has that excludes like all the binary / intermediate directories that p4 shouldn't have. If I accidentally check in a file it freaks out because of the read only it puts on it
This is a stripped down version of the one I use - https://gist.github.com/redxdev/28080e2bd3e19542383a3436b08faa1b
are engine/binaries okay to add to p4?
if you want to distribute binaries that way
k, but that shouldn't cause the thing to not build because of the read only stuff right?
at the point where im adding folders to p4 and its been 2 weeks of trial and error haha
you can mark those files as always writeable with the p4 typemap
oh?
attempting to build those files otherwise absolutely will fail if they're checked in
yeah thats the problem i had
there's an example typemap on this page - https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/SourceControl/Perforce/
if the files are already added to perforce you either need to remove them and re-add or manually go in and change their types.
yeah.. i blew the whole thing away hours ago
starting from scratch again
thx man
saved the typemap.. now to try to add things
Fwiw you can run 'p4 edit -t auto ...' to apply an updated typemap to existing files.
hey all, is it normal that this message takes a very long time to complete? (We are using plastic btw)
Hello, it is certainly not normal, but it's not the first time this has been reported!
Do you have more context? Could you perhaps share some logs / contact plastic support or post on the Github issue tracker?
I have tried to get a look at it but never got to repro it / no access to a repo where it happen
(I am the author of the PlasticSCM plugin for Unreal ๐ )
ah, it's you! I didn't know you are here...
(I know you from the first plugin versions we had to install manually)
I didn't do a proper report yet, but if it's really an issue I can try to write some report if you want
It is noticeable when checking out multiple assets, which is often the case with the new One File Per Actor feature
btw it's also funny to see when it updates the status: when saving, when looking for changed assets for checkin, and after checkin
one of our artists sometimes had to wait for half an hour until the engine crashed. I told her to disable the plugin when this happens. It's not an optimal solution, but a workaround, at least
ah and when saving it's updating two times: one to see the state, then the check out while saving.
OK, a few info I will need to broadcast;
- Unreal Engine 5 is not well supported yet (but this is coming)
- the plugin integrated in Unreal is quite outdated, it's not easy to get fixes and improvements merge: keep an eye for updates on https://github.com/PlasticSCM/UE4PlasticPlugin/releases
- There is a series of more or less known issues there https://github.com/SRombauts/UE4PlasticPlugin/issues
the Unreal Editor is a "bitch", trying to update status of all files before and after every sort of operations....
sometime even more than once before (like for a rename)
but I'll tame it someday, to have the plugin skip on some of these redundant calls!
thank you so much so far. Not only providing the plugin, but also helping with issues
I'll try with an updated plugin version. Sad that the Unreal version is so outdated
providing the plugin
I was paid by the awesome folks at Codicesoftware, even tho I did some of the support for free ๐
Sad that the Unreal version is so outdated
yes, that's partly on me; I wasn't able to do freelancing any more in the past couple of years, I was lead in a small gamedev studio + a baby at home
Full disclaimer: I have now been hired by Unity to help improve PlasticSCM and the Unreal Engine plugin (for UE5 esp)
https://twitter.com/SRombauts/status/1496159161775763471 ๐
Hey, I have started working at @Unity!
Part of my job will be to improve @PlasticSCM support in @UnrealEngine ;)
Nice, right?
oh, I didn't know that
congrats to both ๐
interesting. And do you like Plastic?
Thank you. At this time, it didn't paid the bill but I did it for the awesome fun
I like their support. They sometimes ask if we are happy and if they could help us. I remember we scheduled a call some time at night until they realised that we are in a similar time zone ๐
PlasticSCM is very good at some specific, it's incredibly performant compared to Perforce in some area
but not closely integrated in tooling, not as well supported
and some "user pain" here and there that I am pushing to fix
There support is definitely very good, very responsive at least (but sometime they can't help if the feature is missing)
in any case, right now I am supposed to do some support with customers, so here I am ๐
I'd really love to have some unversioned file support, eg for binaries. It would be great to have some UGS similar tool for Unreal
that's funny. Nice to have you here
UGS similar tool for Unreal
this: I was hired with the idea that we should try to provide exactly that (no promise yet)
that's even more funny ha ha ๐
btw I can imagine the new Virtual Assets feature will need source control support. I don't know any details about it other than there is some UI stuff in Preview 2...
I have no idea (yet ๐ )
I don't want to take all your time, but perhaps could you send me some logs of a quick & clean Unreal session showing a single slow operation? On pm if you prefer, or use official support site
yeah, I'm in the middle of preparing that
I have a log of the "older" plugin from the standard Unreal launcher installation, and I do the same now with the current git state
oh, great.
I am going to release a new version of the plugin pretty soon, but if you are compiling it from source it's good as it is
and we have good quality practice here to ensure master is stable at all time now ๐
I'm one of the programmers in our team, I almost always work with debug binaries, so it doesn't really matter
compilation went without issues btw
@reef oriole I love your work with the LFS2 plugin, ended up using a fork someone made (because the one you had kept crashing after we updated), but it's been life saving. Especially without access to P4
Thanks
I have been loosely in contact with the Project Borealis fork,
If I can manage I should merge back their work, and perhaps upstream into Unreal
Sweet! I am looking forward for the next integrations once we move forward to UE5, also congrats on the PlasticSCM job!
We've been looking into it and p4 as options to ditch git for UE projects
My project crashed, Lost everything. I did upload stuff to source control. Can i download them from source control?
(Git)
As long as source control wasn't your machine or something. Git, as in github.com?
possibly
not a whole lot to go on here
yeah...
Hi,
I just posted an article on how we at GOALS use Plastic SCM to manage our UE based game, including how to import releases from git to plastic. Thought it could be interesting to this crowd.
https://dev.to/goals/working-with-unreal-engine-source-releases-in-plastic-scm-ihf
Along with this we have open sourced a tool to help us do these imports. I hope it can prove useful for someone else out there.
https://github.com/goalsgame/ueimporter
Did you tweet about it by any chance? (or other media ?)
No, I just published it, this is the first place I have shared it actually ๐
It's out there, if you feel like sharing you would make me very happy ๐
https://twitter.com/derwiath/status/1509453828734832647?s=20&t=_beWqYDlkM0tXk7NO5KCrw
Hi,
I just posted an article on how we at @PlayGOALS use @PlasticSCM to manage our Unreal Engine based game. Including how to import releases from git to plastic.
We are also open-sourcing a tool called "ueimporter" I wrote to help us do this.
Yes I did! It was the reason for my question in the first place ๐
Did you by any chance tried to Plastic Plugin in Unreal?
If yes, don't use the one in-Engine, the version we maintain https://github.com/PlasticSCM/UE4PlasticPlugin/releases got some important fixes and is going to support UE5 much better in the coming weeks, before we will have a chance to get the fixes upstreams to Epic Games
Thanks for the heads up ๐
I used the built in one for UE4, but haven't tried it after we moved to UE5 recently
@deep ravine thanks for sharing. It's nice to see other studios using Plastic with Unreal and sharing stuff.
btw it's funny to read about the .gitignore of Unreal source code. Exceptions for exceptions....
btw for an experiment I started replicating the UE4 plastic plugin in our plastic repository server, made a branch for compiling the binaries, and xlinked it into the /Plugins/UE4PlasticPlugin directory of a game repository
GitSync is incredible
I haven't looked into GitSync at all, will have to read up on it.
Do you think it would be capable of syncing with such a heavy repo as UEs? Not sure one wants all individual commits to the engine, but still interesting to know
That's awesome!
(Just need a blog post to share the setup ๐ )
I wouldn't use it for Unreal source, tbh. It would work, but it would take a very long time and it's likely not worth it
Someone once asked me if it was possible to have a public Plastic repo for the plugin, but that's a good proxy
I'd share it in a blog post, sure, but our company doesn't have a blog currently and it's not my job to write blog posts. I can do it as a private person
Understandable!
Perhaps could you just send me a few notes on how you set it up, to be added to the plugin README for instance?
I'd love if we could host some users' blog post in the Plastic SCM blog, could be a nice showcase ๐
Thanks ๐
I've talked to others that passed on storing the engine inside of plastic due to that the built in git import feature didn't work well for them. Perhaps GitSync is what they referred to.
Well, there's the plastic forum. I'm not very active there, but it exists
Somewhat lost, trying to ignore intermediate files from plugins but git seems hellbent on not caring.
Intermediate/*
Plugins/**/Intermediate/*
Plugins/Developer
/Plugins/AdvancedSessions/AdvancedSessions/Intermediate/
/Plugins/AdvancedSessions/AdvancedSteamSessions/Intermediate/
whole gitignore https://gdl.space/yahahefivi.shell
I can't for the life of me figure out why it's not being ignored
could it be because the files are already committed into git and it refuse to ignore modifications to those?
Yes, exactly!
Some research has led me to believe it's related to git lfs
I've reset hard and also tried deleting the project and repulling then rebuilding
no dice
some google answers related to gitattributes also did not appear to have any results
the modified: in your dump suggests that a file that git already knew about has been touched, as opposed to added
UnrealBuildTool writes a gazzilion files to Intermediate folders when you build, rarely should any of them be committed into git.
And if any of them is commited into git anyway it will show up as changed every time you build, even though you try to ignore it in your .gitignore
Yes I concur, you should really ignore all the Intermediate folder and not submit them; you should remove the one you have already in source control
they're indeed copies currently commited, how can I fix this?
Perhaps git rm (-r?) <your plugin folders>/Intermediate would do it?
git rm -r Intermediate
edit: ah you beat me ๐
๐ perfect, I've been fighting this all day and that definitely did the trick
cheers gentlemen
Anybody know how to set Perforce to let .cpp and .h be readwrite without checking out, I set typemap to this, but doesn't seem to work:
TypeMap:
binary+l //....bmp
binary+l //....fbx
binary+l //....mp4
binary+l //....png
binary+l //....svg
binary+l //....uasset
binary+l //....umap
binary+l //....wmv
binary+w //....app
binary+w //....dll
binary+w //....dylib
binary+w //....exe
binary+w //....lib
binary+w //....ipa
binary+w //....stub
binary+Sw //....pdb
text //....c
text //....config
text //....cpp
text //....cs
text //....ini
text //....json
text //....h
text //....m
text //....mm
text //....py
text+w //....DotSettings
text+w //....modules
text+w //....target
text+w //....uatbuildrecord
text+w //....version
btw I just noticed I can't "pull" anymore via GitSync since I have a local branch in our plastic repo. It tries to sync that branch back to git, which obviously doesn't work without credentials. I'd need to fork the original repo on git, which is not what I want
TL;DR: I can't GitSync a single branch only
first i would really want to ask why though? checking out a code file to touch it doesn't really have any implications for anyone and makes it easy to manage the file (i.e. either submit it or revert it)
but btw, similar to the ignore file, the typemap is only used when processing/adding new files to the repo... it isn't processed or used for existing files
ah shit, is there a way to reprocess all of the files in the repo already?
unfortunately i haven't had to do that yet, i'm certain there's some way to do it but IDK
Does anyone have any recommendations regarding whether it's better to submit the dependencies from Setup.bat into P4, or to instead require all users to run that themselves locally?
well I guess it's mainly just a massive workflow slowdown, especially for devs not using an IDE, everytime we need to edit a C++ file you have to manually go check out
when realistically we just wanna edit the files, reconcile on the source folder and submit
wtf?
it's unnecessary to check them out is the point, yeah we could deal with it but if you're moving around the source, stopping to check something out everytime really sucks
why is this even a problem?
wdym?
what tools are you using that don't do everything for you except the final submit (or revert)?
some of our devs use 4coder or 10x editor
fire them
why?
because they're causing you annoying problems ๐
fix your team, don't break things more
It's only just become a problem, this isn't a problem on Plastic or Git
this is a problem exclusive to perforce
well I guess I can't disagree with that
I don't support this advice, but you might be able to process this manually somewhat easily
something like right clicking on Source folders and checking out everything into a changelist, remove/revert some files you don't want to touch, and then right click on all the files in the changelist and choose Change Filetype, if these options are all available (all in P4V)
and turning on +w
also just realized you didn't actually add +w to the text specifier in your typemap so you'd want that too, I guess
yeah just did that, thx
So wait is it just normal for everytime I wanna edit a .cpp or .h I have to click checkout here?
yes
damn ok
that's going to take some adjustment god damn that sucks ahaha
why doesn't it just automatically check out if you try to save the file that's so weird
because it doesn't know what changelist you want to save it to
you can tell it to always use the active changelist
I just want to go to default
then click the "don't show this dialog again" checkbox at the bottom
I juggle lots of changelists so I find that more annoying than useful, but it depends on your workflow.
Yeah I realized I was asking a bit of an XY question, I just didn't want to worry about doing steps everytime I save a source file
tyvm for the help
Can anyone please for the love of God tell me why when I try to download my zip project from git, the archive has ~200kb? ๐ญ
everything is pushed, uploaded... It's the third time I start from scratch pushing my project to git - I want to have someone else get it through git.
Ehm, if everything is pushed, then it should be there. are you sure your gitignore is not maybe ignoring uasset files or something?
Or maybe you are downloading a different branch
Nope, the repository says 733mb - i hit download zip and it's ~200kb
I just set it up, I have no branch, pushed the project up, initial commit, uploaded it, waited for to upload, I tried to get the zip (just to see if it's ok) and it's 200kb
yikes, never had that before. sorry.
๐ญ so frustrated now... Made changes for someone in a project for 3hrs and I'm clocking in 3+ to upload like 700mb
so i'm up to 6hrs on it, 1/2 off the clock lol ๐คฆโโ๏ธ
Where do you see the repo size?
@gleaming hill
there... on the other hand, it shows something else in repositories - there, it says 0 bytes ๐ I just don't get git man
ehm, i wonder if its not git lfs doing something
cant you try cloning in stead?
then zipping from your drive
try cloning to a new drive, then zip. and see
idk how to clone but i'll find my way around it and do it - i feel like git is a lot like steam for devs - hard to find accurate and up-to-date info. I'll try. Thanks! @gleaming hill
just go into cmd line, cd to somewhere sane, like c:\temp or something, then hit git clone https://blabla.repo.git
xD I thought they got rid of console dependency since the git desktop app lol
if that is still empty, then its def empty. heh.
you can probably clone via the desktop app too, i dont use gui so wouldnt know
I think before long ima just snap, get some cloud storage somewhere and get back to my perforce ๐
amen to that
๐ฎ but peeps love git - hence I said "wth" i'll try it too - stuck at the simplest of things lol
github or something else? i don't use git much but isn't it basically standard process that the archive zip download of github doesn't get associated LFS files, you have to clone?
Do you use LFS? GitHub zip export probably doesn't handle those.
@long hulloh, forgot to mention here - I've "fixed" it. Just disabled LFS altogether and everything worked like a charm. Thanks! ๐
I can't even
Hey
"Mark for add" doesn't work in UE4, but it works in Perforce. Did anyone had this problem?
FYI: I did this tutorial https://www.youtube.com/watch?v=7eVO0qXC3nk (Simple Perforce Setup on AWS EC2 From Windows).
This is just a quick video to go over the first time setup for getting a Perforce Helix server going on an Amazon Web Services EC2 instance.
Introduction and Downloads
Amazon Web Services - https://aws.amazon.com/
Perforce Helix Core (P4D) - https://www.perforce.com/downloads/helix-core-p4d
Perforce Helix Visual Client (P4V) - https://www.perfo...
I am trying to ignore several folders in Perforce. That seems to be working. But those folders then show up in the project with question marks. Adding them won't do anything, but they are annoying because there are a bunch of them and I want to filter them out as they aren't even addable. Is there a way to do this within UE4?
I've ignored the weapon folder inside my .p4ignore but it is still being detected by the P4V client in unreal
aaaaa is there a way to make P4VS faster? It's soooooooooooooooo slow
@pure epoch if you arent going to have them on the perforce server, wouldnt it be better to just move them away from the project on your local disk and keep them outside the workspace
And then you pull them in as you need them
You can right click your workspace root and do reconcile offline work to catch whats not synced against your depot, or just manually delete them from your local workspace if you know all the files
We have a similar issue but with all the gitdependencies that are pulled from Setup.bat. I think there is some bug with the engines P4 integration that doesn't properly respect the .p4ignore.
use rider 
in all seriousness, it's because P4VS does all of its operations on the main thread and blocks the UI from doing anything until it finishes... there are some alternative extensions available by third parties that make it more of a manual process but don't have that issue, can probably find them by searching for perforce on the VS marketplace.
But seriously, P4VS is one of the reasons I ended up moving to rider in the first place.
dammit lol
p4vs is open source on GitHub now
Do you guys maintain separate repositories for iOS and android versions or have just one that has code with platform based nodes?
yeah, the p4 plugin doesn't respect P4IGNORE, I guess Epic Games doesn't ignore anything from the Content folder
neither do I, but some studios like to ignore the Developers or the Collections for instance
@reef oriole That makes me wonder if it's more "correct" to submit the git dependencies (everything downloaded from Setup.bat) into P4?
I have literally every file (even game assets like static meshes) pushed in source control - which means If upgrade in place, perforce "should" detect changes to the files that have been changed as part of upgrading to a newer version ... so I can convert project in-place to newer version safely then, as long as my perforce is setup correctly
right?
Yes correct, I used to do exactly that
Clean git repo, setup.bat, reconcile and submit
(don't mess with the Editor before submitting else your are going to submit ddc caches, config files, temp, logs etc)
Upgrade in place is fine, but I wouldn't do on your regular workspace ; better to have a clean one to sont he upgrade
(except if you are very careful with ignore rules, or don't care ๐)
What's the difference? when I went from 4.25 to 4.26, I don't think even 100 files changed - why are they not "clean?"
Hey guys, we're trying to use GitHub on our project (35GB project size), and when I try to commit it says "The following files are over 100MB. If you commit these files, you will no longer be able to commit this reposotory to GitHub." What can I do to prevent this? Will going to the Pro version solve this problem? Are the files commited limited by a size limit? What to do if a level is... say, 2GB?
I tought GitHub was standard for UE4, but is there other options that work better for our usecase? We've setup Azure Devops aswell, but no clue how to integrate that
just upgrade in place. don't upgrade unless your workspace matches the server (no work in progress, everything has been submitted or reverted)
if you're in a big company on a big project then there should be a lot more of a process involved in doing an upgrade and checking things but i doubt this should be you
i don't use Git but my understanding is that you really must turn on and use LFS
yeah basically solo, the other versions have pulled the initial revision and passed some files back and forth but my current machine is the main one and I'm still in the process of onboarding someone else ]
I've run the LFS commands, so its strange that its "ignoring" that. Might be its because Im using the free version, but yeah...
Sorry, what?
Such an Engine upgrade is ont the 10th of thousands of file changes
By not clean I mean that you might end up submitting additional files you don't want like I listed above
Correct, but then the official got plugin is not compatible with git LFS
If you're using a launcher engine or otherwise not including engine files in source control an engine upgrade is generally a single file change (the uproject file), code fixes notwithstanding.
You are right, I went straight to the heavy "upgrade Enfin from source" for no reason other than that's what I have ๐
Oh. Right. ๐
Sorry ; then I totally agree, upgrade in place is easy and safe in my experience
which commands have you run? have you LFS tracked the asset files and migrated them to LFS
Oh, I just ran the git lfs install command in the cmd prompt from Gitbash. Was following a tutorial and that's as much as he covered
Oh, the tutorial didnt even cover how to use Git LFS haha. Watching another one now ๐
Hmm, another question from a newly started source-control user - if I'm using Git LFS to increase our package size, does every member of the project need the package subscriptions, or is it only for the one who made the repo?
If you're asking about github's pricing, see https://docs.github.com/en/billing/managing-billing-for-git-large-file-storage/about-billing-for-git-large-file-storage
I have a master in git and 2 branches. One for android and one for iOS. If I have changes in iOS branch and Iโve committed the changes but did not push to master, will I have problems packaging the iOS version?
Or the android version
You might ask whatโs the point of the master branch.. answer is that I did not plan this for 2 platforms at first. I only had one master for the android version when I started
So when I package Iโll have no problems then?
I always thought the files in the branches were a reference to the files in master with the changes
Whatever branch you currently have checked out will be the one that gets packaged.
If you're maintaining 2 branches for different OSes, you should merge master into those branches frequently (rather than merging those branches back into master)
I think you're going to have headaches, though.
does p4v have a thing like git diff where it will just show me all the files ive changed? right now i feel like i have to manually track the files i edit, hunt them down in the workspace and manually add them to a changelist
You should be adding the files to a changelist before editing anyway.
P4VS can prompt you for this in Visual Studio, or you can use Rider's built-in perforce integration.
But yes, you can have perforce find files after the fact. It's just slow and bad if you're doing it for lockable files.
Right click a directory in P4V and hit "reconcile offline work". Ideally only do this from a subdirectory as it's slow for large amounts of files.
ye im definitely not using p4v properly then. i just edit the files as i go making them writable then doing p4v stuff later on
Yeah, you should be checking files out rather than just marking them writeable.
i see. well i guess ill reconcile this time and next time ill check them out before i write them
is there a way to remove a file from the pending list but keep its changes? the uproject file is in there but its changes are just because im using 4.27 from the launcher but the committed file is using a source build
or is this "just do it properly so you dont have this issue" territory?
Using Perforce, and I have several plugins in my Plugins folder (imported manually, not through the marketplace). Which files do I mark for add and submit? Same as normal -- i.e., everything in the plugin's Source folder, but Ignore Binaries and Intermediate? How about the Resources sub-folder within the plugin?
Yes ignore ue4 build products. some plugins ship some libraries or third party binaries in the Binaries folder. Also keep Resources.
@quaint obsidian Thank you.
Hello, I'm looking for advice about IP addresses and Perforce.
I recently learned that external IP addresses sometimes change during a DHCP lease renewal. If this is the case, how does one deal with a server's IP address changing? Can it be avoided somehow or must one always keep their contributors up to date on the latest IP?
Any advice would be appreciated.
Cheers.
you either need a static ip or to use a dynamic dns service
look at noip.com or other ddns servers, I used noip for free for several years, just gotta go to the ddns settings in your routers
does anyone know how to solve a problem i have I have been following a youtube tutorial on setting up github( I'm new) with unreal engine 4 and for some reason my unreal engine save comes up as an iclone 7 save and i don't know how to change that
im completely new to setting up github and trying to make it possible so me and my friend can start collaborating with unreal engine 4
@ me for a response
Hey guys, noob source controller here. Can I make changes to my level (for example) while I'm committing my project? It's closing up to 100GB now so it's taking a while to commit๐
i would just not... for a major VCS shift, best to run the commit overnight and/or split it up into chunks IMO
GitHub question - this is the first time I'm taking an existing repository that was offline and archived on a drive, and uploading the archived repository to a new remote GitHub repo using GitHub desktop.
How long should it take for the "Refreshing repository" message to be on screen before I should be concerned? It's been going for a decent amount of time, and hasn't actually shown any signs of uploading any data to the remote repo yet.
I kept the original .git directory, which has about 30GB of commits still stored. Is it better to clear the .git folder when uploading to a new remote repo?
if you want to get rid of all your history, you can delete it. but i personally value history a lot so i would just upload it as is
Okay thanks. I was asking more because it is taking a very long time on the "Refreshing repository" status, so wanted to make sure it was setup properly. Is that normal for it to take a long time? I'm using a slower drive than before so it's okay if it's slower, but it has been potentially hours.
The drive is definitely active, though, I can see the status blinking and the hear the drive working.
So, I've run into a shitty situation... I switched my source control to Git in the project. I found a path to it, put it in and then my project crashed
Now, everytime I open it, it crashes because of the source control change. Is there a way to reset it outside the editor?
I am using a custom engine build btw
I think thatโs saved in the configs in the saved directory. Rename saved/configs and try launching
Hey, if I hook my project up to github, commit it and then royally screw up my entire project, from textures to code, will I be able to roll it back? sorry if dumb question.
If you've set it up correctly. That's literally the point of source control.
Ah ok, thanks! @cyan jay
Any recommendations for free basic source control for sharing an unreal project between a few people?
Github. Otherwise anything you can selfhost
We did that but having to use LFS didn't work and it seemed to just not carry some things over
I don't have a lot of experience with lfs so I can't offer any help. Any chance of one of the team members hosting a repo?
I'll look into that thanks
Perforce is free for <=5 users, but you need somewhere to host it
whats not being carried over? and what wasn't working about LFS?
hey we are using perforce as source control and everything work fine, today we deciced with the other programmer to make a new branch only for us so we can push some updates and when its ready we can push them in main
although i dont know a lot how to make a new branch
do i need to branch all the project ?
this will take a lot of space which is a big problem for now
@sacred fjord it's important to realise that branching will not take up extra space on the server, unless you change something.
You can switch your local workspace to a different branch, but it can take a long time to check each file if it needs to be changed. Or you can create a second workspace on your local machine and work in that when you want to change the branch.
In my opinion, branches in Perforce are not great and can often cause more problems (what happens if a binary asset like BP is modified in both branches - how do you merge back).
I'd recommend sticking to a mainline Trunk based development methodology, especially if you only have a small team.
Azure repos, free up to 5 users and no repo limit even for lfs files
@cyan jay sure thanks for info
Agreed on Azure - works well as a free option.
Has anyone come across an issue where someone pushes a series of files accidentally on Perforce, and afterwards it can affect project stability?
As in they pushed a series of files that weren't really changed, but they weren't paying attention and checked out a bunch of files when prompted to, and pushed them.
As a result, now the project will intermittently crash, but there is no obvious cause of why that is.
Revert the change and see if it fixes it.
Sorry - I oversimplified. There were a number of pushes and pulls over a day with that mixed in - no one noticed so it's now also just determining when the project was last stable, since different people have been using it while this has been happening.
Hmm I went back pretty far - back to when it was working at the time for me personally - and I just got a crash.
Is the crash/log not providing anything useful?
and are other devs getting the crash too?
Yes everyone is getting crashes. Honestly I didn't realize it generated a crash log when it's an immediate crash.
Like it just shuts down immediately.
Actually that's not true, there is a message.
Unreal itself shuts down, but there is a small box with a generic message with no useful information. Is there a log generated?
yes there's a log in Saved/Logs
you should also download the engine symbols from the Launcher as it will help debug the problem
Okay thank you, I will look into that. That's a very large download for editor symbols!
Looking at the log, the most recent crash doesn't point to any sequence or asset, but a specific function - Assertion failed: UIDToArrayIndexLookupTable.Num() == InContext.Curve.UIDToArrayIndexLUT->Num() [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Engine/Private/Animation/AnimInstanceProxy.cpp] [Line: 2631]
Confirmed all crash logs have the same error.
Was really hoping for something to point to a specific asset that was pushed on Perforce. But I can look into the editor symbols too and maybe it will tell me more.
Hi all! For anyone deciding to go the Plastic SCM route but want to maintain the Unreal Game Sync-workflow at their studio (but on all platforms and with delta patching) we open sourced our take on UGS and an article to explain it all: https://dev.to/goals/collaboration-on-large-teams-with-gamecure-1dfb
I just wanna go back to teh days of rsync ๐ฆ
You can license your server by MAC address now too: https://www.perforce.com/manuals/p4sag/Content/P4SAG/install.tips.release.html?Highlight=mac address. You do need to be on version 2021.1 or greater for this though.
Did you upgrade to the latest version of P4VS (2021.2)? It just came out in the last couple of weeks and includes performance improvements:
#2243457 (Job #076616) *
Improved the way P4VS loads and caches files.
Resolves UI hanging when loading big projects.
Does Multi-User editing work the same in Unreal 5 as it did in previous versions?
yeah
You mean, like Unity's "Collaborate"?
It's deprecated
sad though
Unity is migrating everyone to Plastic SCM since they figured out that Collaborate wasn't robust enough
https://blog.unity.com/games/upgrading-from-collaborate-to-unity-plastic-scm
disclaimer: I am working on integrating PlasticSCM into Unreal 5
that's super awesome, I need to read an try it
did you tweet it by any chance?
2022.1 just came out https://www.perforce.com/manuals/p4v/Content/P4V/about.whatsnew.html#top
I looked into editor symbols for debugging, but it looks like this is working to use break points in my code? Is this helpful if I am just animating in Sequencer without creating any blueprints/C++?
Yes, we did: https://twitter.com/andreas/status/1509810549298716672?t=8mPuZQukN94xdoQcUwLToQ&s=19
We are currently getting our content creators into this workflow and we will keep adding features. Together we are stronger and faster though and we would love to find more contributors.
Thank you for your work on Plastic support in UE5. Gluon is great (way more intuitive for content creators than any Git (LFS) flavor or Perforce) but good integration with the editor seals the deal.
Busy week for the @PlayGOALS team that keeps on delivering. We have built and open sourced an Unreal Editor build distribution system for Windows, Linux and Mac that we call GAMECURE. https://t.co/V0EEAAM226
I have a question for people who are using UGS and store the Engine in perforce.
When it comes time to merge a new version (say moving from 4.7.2 ->5.0) what is the process?
Assuming you have made some engine modifications in your perforce version, what is your process for integrating the new engine from Epic github into your local p4 version?
So I have our Perforce Engine folder, and another local folder where I downloaded the latest Epic github fork.
If I simply copy Epic -> local then I lose our changes. Could have a branch in our Perforce server which is the raw Epic engine, and integrate from that branch into our mainline, that would at least keep the changes / require merging. Seems maybe overkill tho.
Changelist support is only available when using Perforce as your source control provider.
Does this mean that OFPA is basically unusable without Perforce (e.g. Git)?
https://docs.unrealengine.com/5.0/en-US/one-file-per-actor-in-unreal-engine/
Any git pros? I have a local commit that I haven't pushed. I want to get rid of the commit without getting rid of the content of the commit
That's probalby been answered 500 times on stackoverflow. ๐
499 actually ๐ I found it
Hello I am trying to reduce file size of the project in my perforce server. I have implemented that built data are binary+s1 only one file to keep, although I searched in explorer that has 2 more of them each from different user. Is it safe to delete all the previous and keep only the latest?
Each of file has around 5gb of built data info
was it git reset ~HEAD --soft
or is it HEAD^1 never remember by heart
HEAD~1
I was so close, yet so far away ๐ญ
Obliterate was what I was searching
If you have the 4.27 as a parent stream, and modifications as a child stream, couldn't you try repointing those modifications streams to the new 5.0 stream?
Anybody know if you can force perforce to use LF for line endings for a specific file
I can't open Github Desktop anymore, tried to launch it as admin still doesn't open, doesn't show up in the task manager either, does anyone know why please ? I tried to restart my computer still the same problem
Please ping me if any answer
$100 credit for 60 days using my referral link https://m.do.co/c/338c16889e86
Learn to setup a perforce server on Digital Ocean easily, upload your project, and connect to Source Control inside of Unreal Engine 5.
I apologize for the quality, adjusting to a new setup and playing around with mic settings each video until I reach something that ...
for git lfs, is it possible to only track files of a type that are larger than a certain size?
hey is there anyone that would be able to help me and my friend the issue that we have is when i invited him to my git repository and was trying to get the unreal engine source control to work but he needed to download git which he did but everytime he accepts the settings it says he doesn't have git downloaded
thats the problem we have currently
I'm having issues with git LFS. On my machine I track the files that are over the 100MB limit and push, but on my collaborators machine when he pulls and tries to edit Unreal doesn't seem to see the files as linked and changes he makes in code don't appear in the editor
Am I doing something wrong by going into command line and doing git lfs track "filename" for files that are too big to push?
We set up an Azure repo but pushing from github desktop still says the files are too big and we need LFS
you do need to setup LFS, but their LFS storage doesn't have a limit
just include a .gitattributes with the LFS files extensions
How can I fix this error?
Anyone know the perforce command for get-latest?
p4 sync
thanks, the manual is soo vague. I was reading P4 pull also
Looks like you've also been active on GitSourceControl. ๐
Yeah, the Git plugin is my first one, made me rich and famous ๐
maybe git config http.version HTTP/1.1 fixes it
git lfs migrate import --above=100MB
did they have the git lfs hooks installed?
im not sure, is it this? https://git-lfs.github.com/
Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.
I have that installed on my machine but he didn't download it
does he have the actual files or just the 1kb pointers to the files in his local checkout?
File in workspace differs from head revision
nvm, it was set to write only.
Just right click the folder and make it read-only.
It's what perforce expects.
Can I share a local repo between github and azure devops without my repo exploding?
I can't imagine any github adds any files to the local repo
you mean have one local repo and push to 2 remotes?
Yea exactly
"Push to 2 remotes" was the keyphrase I needed ๐ฏ Seems it's actually possible,
https://stackoverflow.com/questions/14290113/git-pushing-code-to-two-remotes
Hey, I set up a Perforce server on DigitalOcean following some tutorials. Am I now able to run multiple Unreal Projects using a single Droplet or am I limited to one project per Droplet?
You can set up different streams in the same p4 repo, works fine. //Project1 vs //Project2 vs //EngineCleanCopy or whatever
Or you can do one main stream with an engine folder and multiple games folders like //Games/Engine, //Games/Project1, //Games/Project2. It depends on how you want to deploy your engine version
One piece of advice I have is to make sure you don't run out of space on your droplet. If you do p4 gets really confused
You can run multiple projects, just watch out for space issues. Might want to mount several drives (in case droplet dies) and do backups.
@reef oriole would you have any bandwidth to cast an eye over something I've been working on to limit Git file conflicts?
ok, so, for a long time everything was running smoothly, but somehow I accidentally had the root selected when trying to revert two files and now I have a pending changelist with all files in the depot about to be reverted and it just hangs....
Is there any way to just delete the default changelist that was created this way, so I can keep working, or do I now have to wait two days til all 19.345 revert commands are completed...?
Nevermind, figured it out, I just shelved the default changelist and everything is fina again..
Iโm not sure how to tell, Iโm new to LFS haha
Can I dm you?
Using GitHub, is there any way to determine if anything is wrong when pushing to origin? I'm uploading an entire repot that was offline - 70GB including commit history - and it''s been over 12 hours. I have a good FIOS connection and I feel like it shouldn't take that long to upload 70GB or so of data...
I can see the commit history, so it clearly sees the data, and isn't giving me any errors when opening the repot locally...
Oh I forget, I did running it once earlier and got this messsage
I'm now getting this error ;-; I don't have any other repos with LFS
there's no perforce plugin for visual studio 2022?
P4VS
P4 Question here, if we have a stable branch (stream) that we only want to bring down approved changelists to, what would be the best stream type to do so? I see virtual stream and it seems appealing, but there's also "release" stream type which I would guess the benefit is we can hotfix ect? Right now all I really want is to keep a seperate deadend branch where we can lock at a certain changelist and then bring down some extra ones selectively if needed, doesn't even need to be archived, on the next rolling release i'd want to update the release branch to a new changelist
Yup, scroll up a bit
I think you'd be good with a Release stream... I'm kind of stupid on good multi-stream setups still myself though.
Virtual streams are only for making special "views" of other streams, they're a bit like symlinks in windows... or TArrayView in UE... you can use them to selectively pay no attention to certain bits of the source stream, and/or import other bits from other streams into a workspace
yeah, I mean it sounds like either could work in my case then, but I guess release stream is probably better just to be able to hotfix
A virtual stream is the parent/input stream(s). They're the same thing
A release stream is a branch, by comparison
One thing I never figured out, it seemed like release streams store full copies of everything... I think task streams don't
Anyone know why, when checking-in your project with Perforce from within the Unreal Editor, it says its saving a lot of files and then presents the Submit Files dialog instead of just immediately presenting the Submit Files dialog? It takes 1 minute to bring up the Submit Files dialog now. A while ago, before I manually made a copy of my project to a new folder, it took only a few seconds to show the Submit Files dialog.
In other words, how do you ensure Check-Ins are fast?
Is there a silver bullet command that will turn my entire LFS history into a non-lfs one?
What file controls collections? I've checked out default editor (heck, I checked out everything in the config folder) but I got the "failed to add to collections" source control error
Never use virtual streams they suck
they're just slow as hell to sync. the main reason we used virtual streams at my old job is to exclude content but UGS does a better job of that
also the advice I'd give to any perforce shop is: steal epic's workflow
"main" is a source of truth. you work in release development streams, developers work in the stream that's labelled as the fix version on jira/your PM tool of choice
every release stream is just populated from main, and then you use robomerge (a tool epic makes available with the engine) to propagate streams
Ty for the advice
it was actually easy to roll out at my old job, robomerge made it easier
the only thing about robomerge is that it uses active directory for auth, so you have to modify it if you want to use an alternative auth scheme
I'm curious about under what conditions virtual streams become slow
the use case I just described is many times slower than just using UGS
UGS has a sync filter feature
IDK, that didn't describe anything. I get 100 Mb/s coming from my server whether I'm on mainline or a very simple virtual stream (excluding Binaries and maybe a little other stuff, basically). curious if p4d.exe starts to choke if it has to process a crapload of mappings or something
each collection has its own collection file in Content/Collections
I've recently been learning about content integration systems like Unreal Game Studio and Jenkins. Does anyone have any preference for what works well with Unreal? Seems like UGS is the no brainer for ease of use with Unreal. I have fairly simple needs - this is for virtual production, so there's no build, I just want to be able to have more preventative measures in place to prevent problems occurring when using source control. i.e. if a commit to main ends up having a problematic file, being able to mark it as a bad commit to not be pulled.
Well if you run tests against each commit you can integrate that with Unreal Game Sync
There still is a build - editor binaries
Oof, I wrongly assumed UGS would be more beginner friendly and integrated into Unreal as a plugin, in contrast to compiling an open source CI system like Jenkins. Reading through the workflow, it looks like possible overkill for a small team of 4 animators creating simple animations in sequencer. I see you can use pre compiled binaries, but that workflow is also relatively more involved than I expected.
Uh, UGS isn't a CI system. A CI system can submit binaries for use in UGS but it does no such thing by itself.
And you don't compile Jenkins yourself... you'd just use one of their binary distributions.
CI is generally some sort of service (selfhosted or otherwise) that builds submitted changes at some sort of interval (either time based or based on submitted changes) and runs tasks related to those builds. Jenkins, TeamCity, Github Actions, Gitlab CI, ADO Pipelines, etc. are all examples.
UGS is none of the above - it's a program that helps manage syncing code and content for devs/artists, with a few extra utilities related to that workflow.
Okay, thanks for clarifying that. I was unclear on whether UGS was CI. So when it says "It promotes code and content integration in a collaborative development environment." that is referring how it works with a CI system, like you said. I thought UGS was both utilities and a system for submitting binaries - but I see, it would rely on a CI system to do that for it.
Basically I had received separate recommendations to look into both CI and UGS.
So it sounds like CI is not useful - we are not making builds, just animation sequences - but it sounds like the utilities in UGS are what I was interested in. Either way, UGS looks less artist friendly to setup than I thought.
setting up UGS is an infrastructure task
the tool is artist friendly, setup requires configuration, setting up CI triggers, and setting up the metadata server
though it works without the latter, albeit in a limited way
Unreal dedicated CI is Horde
but if you don't know what container is
i suggest to wait until it is distributed by epic as package (;
Is git viable now with one file per actor or is perforce still king?
probably, the limit will likely be storage or ram
It can be fine, if you do some work on the editor integration, but artists hate OFPA in general
change your artists then
in anycase raw git barerly can handle normal UE projects, with literally tens of thousands assets to manage
it's going to be much worse
There's always svn if you don't wanna go full blown perforce.
Genuine question: does the Subversion plugin handle well the One File Per Actor?
once I used svn
the price p4 asked me to pay
didnt seem that much
that's my opinion of svn
Nicely worded ๐
I remember that when I was using Subversion a lot, I wasn't happy with the performance of it
(might have been because of the network or the server itself)
In any case, it triggered me to start using Git, and so that's the reason I developed the Git plugin in Unreal:
it's way faster to have a local source control (and better than having no source control)
but I wouldn't use it myself in a real production, just for solo dev / prototyping
I've checked yesterday, Changelist doesn't seem to work with Git, but the commit interface can still unobfuscate the OFPA filenames to give something intelligible, though not as detailed as Changelist (e.g., no actor type). But that was a very quick test, and I could be wrong. Maybe @quaint obsidian has more info on that, and on possible future Changelist support. In one of the video released last week, Epic also mentioned that they want to extend Changelist support to "Other source control", though I haven't seen much support from Epic for anything non-P4. Maybe they meant Skein ๐
I guess that for git a "changelist" would be the staging area
As for Plastic SCM I will work on a official support of Changelists quite soon ๐
haven't had bandwidth to work on the git plugin, and especially for ue5 features, it's a hard sell for us right now. maybe after we ship our demo :)
I don't think so, the "changelist" is just a window that can show deobfuscated OFPA file names. Otherwise, if you use any conventional Git interface, you'll just see a random filename for each actor, so good luck trying to find what/who changed.
https://docs.unrealengine.com/5.0/en-US/one-file-per-actor-in-unreal-engine/#usingofpawithsourcecontrol
Yes I understand, but the original purpose of it is to actually let you create Perforce changelists, which are a way to organize changes (and even share/have them reviewed) before you actually submit them
you select files, you prepare the a description etc
and then later when you are ready you can submit
(for this purpose the staging area of git is how I prepare my next submit)
For git I'd expect it to show two "changelists" at all times - one for staged changes and one for unstaged. Beyond that the window doesn't really make sense for git.
Super useful for p4 though.
I have the main branch and a feature branch, I'm trying git merge main but it says I'm already up to date, but I'm very much not up to date, files aren't the same, I've been googling a bit but can't sort it out
Anyone know if the Release branch on Github is now the UE5.0 version?
Imo the git staging area is more or less the difference between checked and unchecked files in the changelist, or the "mark for add"/"checked out" in plastic. In a gui driven system with git (and without exclusive checkout/file locking) the staging area as is doesn't make much sense. (Our own git implementation on Plan 9 doesn't have it either, although in that context it would make more sense)
Are you on the feature branch and want to merge main into the feature branch? Are there even changes on main that aren't on feature already?
Otherwise you want to merge feature into main, but then you'd have to git checkout main, then git merge feature
(I believe)
Hey hey, I'm having some issues with git. It used to work, but now it suddenly says that it's not a git repository.
Is my only option to delete the .git folder and remake it?
Ah, actually, git init managed to re-initialize the existing git there so I didn't lose anything. Good to know it can do that!
Did someone ever experienced Git incessantly changing permissions of files to not executable on macOS? If so, do you know how you can prevent that from happening?
changelists can be implemented using the git stash. stashes can be named and preserve repository state
you can refer to stashes with commits, so they can be branched off and submitted for review.
swapping between changelists would be implemented as stashing your current state, and then popping the selected changelist's stash
Ah yeah, forgot about stashes. Would definitely be a good use for the changelist window (in addition to staged/unstaged?)
I guess it depends on how much that UI can be customized or overridden. Haven't looked at the new SCC plugin interfaces myself.
with LFS its workable
we have this in engine for 4.27
Hi, does anyone in here can give me a bit guide to setup perforce with local network and integrate it with Unreal Engine?
Just folllow the base install instructions and connect to its IP
i dont see my workspace inside my unreal engine
I started my workspace with that, it's all setup. Do we need hosting to make it on? or can we use local area network to begin the host?. I used my own computer for the depot server.
You should be able to setup firewall etc and have everyone connect to your own machine, using your machine as the depot isnt a great idea generally, but it should work
UE supports perforce, so there may be some perforce data in teh folder? Even if you don't have it installed, UE may be reacting to it.
What you are proposing is not really the equivalent of Perforce Changelists as used by Unreal;
you are actually referring to Shelves, that is, the "sharing" aspect of the Changelists, as well as the "reverting/swapping changes", which is not what Unreal offers, to my knowledge
Ouch, I am actually wrong ๐ฎ as they have implemented full support of Changelists, including the Shelves
so cool!
Hi everyone,
I'm a new user of Plastic SCM and I'm a little confused with the "ignore.conf" file.
I want to ignore the Unreal BuiltData files, to save space on the repository.
So I add in the "ignore.conf" file the line "*_BuiltData.uasset".
But Plastic SCM always wants to add the files.
Is it a bug or am I wrong in something ?
Thank you for your help
Question: what's your source control set up?
I use perforce as a docker container on a synology nas box and no ip so I can access it outside my lan
I suppose I need to update my perforce for this huh?
haven't updated this docker container before
this docker container is kinda old now I suppose. I wonder if updating it will really gain me anything. never had issues with perforce. it's so rock solid
This is just using github.com btw
Nuked my original repo, forked Epic's repo, can't delete all the old branches like 4.0 etc.
Yeah may have to just do that then prune it.. argh
guess the websites broked
@jolly fog are you still using SC 1.5?
You can have your git repo, then just add remote branches so you don't get all the other branches, for example my repo only contains 4.26, 4.27, oculus, 5.0 as remote branches, then updating is just > git fetch oculus4.27 > git merge oculus4.27/4.27 > git push origin oculus4.27
Anyone knows why GitKraken is so unresponsive? It takes a lot to switch between local branches
how substantial are the differences between branches though... are you sure this is gitkraken's fault
Uuh, yeah.. Now thinking about it, it's around 30gb of a project
Though difference between branches are very very small
i guess the official answer would probably be found by trying to switch using command line, or at least by trying a different client like smartgit to see if it's the same
When you say PlasticSCM is always trying to add the BuildData, it's more in fact Unreal trying to add it
Please update the PlasticSCM plugin, I fixed this in last version a couple of weeks ago https://github.com/PlasticSCM/UE4PlasticPlugin/releases
New release, with huge performance improvements (x100 in some specific use case with UE5 OFPA and with any big projects)
https://github.com/PlasticSCM/UE4PlasticPlugin/releases/tag/1.4.12
Hi, hope this is the correct channel for this question. I'm currently working on two UE4 projects both using perforce and UGS. Both are using different VPN solutions to establish secure P4 connections. I was wondering if there's a way to have multiple UGS installations, or tell UGS which connection/project to load and which to ignore. Atm whenever I start UGS it tries to establish connections to all projects, but of course that doesn't work because I only have the VPN for the project I'm working on running, disabling the other.
Thank you !
Is this version compaticble with UE 4.26 or only 4.27 and 5.0 ?
The source code is compatible, but the binary dll I provided through zip files are only for 4.27 & 5.0
If you cannot compile it yourself, or have a programmer do it for your team, I could install 4.26
Thank you !
It's not a problem for me to compile it. It was just to be sure of the compatibility.
Any idea why UnrealEngine repo origin/release would yield 4.27.2 instead of 5.0.0 as shown on GitHub(https://github.com/EpicGames/UnrealEngine)?
I sense I have done something erroneous.
^ Was expecting to see "HEAD is now at 05ce24e3038cb1994a7c71d4d0058dbdb112f52b 5.0.0 release"
Did you git fetch before reset?
hi, anyone use perforce? know if its possible to make a pre-compiled binary version of an engine and host it on the perforce server? is there any tutorials for how to do that?
Would anyone be able to help me setup Helix Core please? I've tried following their official tutorial video
https://www.youtube.com/watch?v=keqWj5RSYAI
but at 7:29 I type p4 typemap in the command prompt (Admin) but none of the 'binary' or 'text' lines are added to the opened document. I've emailed their support people last week, but had no reply.
Thank you in advance ๐
Unreal Editor has a built-in integration to Helix Core. Learn how to use Unreal Engine 4 with Perforce Helix Core and build the next big AAA game today.
To learn more, visit: https://www.perforce.com/blog/vcs/how-use-unreal-engine-4-perforce
Snap lol
Yeah, if it's empty (as a new Helix Core server would be), you'd need to copy and paste it into there. You can find the contents of that here: https://docs.unrealengine.com/5.0/en-US/using-perforce-as-source-control-for-unreal-engine/#:~:text=You will then see a text window open%3B this is your server's typemap. The typemap below is an example that we have used in the past%3A
@lucid stream Thank you for this, I'll give it a go!
Why won't perforce download an item - I deleted from the windows folder view, deleting the actual file, and then when I tried to refresh and get latest, it doesn't download it
Force sync it
right click on it in the depot view > get revision... > enable the force sync option
Perforce has a weird architecture where the server is supposed to know exactly what revision you have at all times. As such, trying to get the latest revision of a file the server already thinks you have does nothing.
Force sync asks the server to send the file anyway (but will redownload even files you do have).
Alternatively, reconcile offline work and then revert.
Thank you very much for explaining that, I had no idea
What's weird is I did that for this entire subdirectory - I haven't pushed any of these changes I made but It's not updating it
You checked the "Force Operation" box?
And the folder was specified in the "Get or replace the following files/folders" area?
And these files aren't otherwise in a pending changelist in that workspace?
Apparently not. That did it. Thanks!
It said updated - I was having a problem when it wouldn't say their were ANY pending files, the only time I could push was from unreal, not perforce
If unreal is showing files that have been checked out (and unreal is actually connected to perforce) then you either aren't looking at the same workspace, need to refresh p4v (press f5), or have some filters set in the pending changelist panel.
and make sure you actually have the right workspace selected in the depot/workspace panel
Or you haven't actually saved any of the files that have been modified.
I have another computer that is loading fine and since I didn't push anything, can I force push a new revision
You just submit the change, there's no such thing as force push.
they had to have been saved since I've restarted UE several times trying to fix it
Have you tried running reconcile offline work?
Or verified if the files are on disk outside of unreal?
The screwed up machine shows some local files not in the depot but none of them are what broke
when I diff the problamatic file, it shows the differences but for some reason won't download correctly
Again, what is weird is there are no pending files in the change list
but in Unreal, I can submit to source control and it does
You haven't answered whether you've checked what I said to check. Do you have a workspace selected in p4v? Do you have any filters active in the pending tab?
Is the workspace the same one that's configured in unreal?
What does reconcile offline work bring up?
Do these files exist on disk, and have you been able to compare them to what's on another machine?
Is it the files that are failing to load that unreal wants to submit to source control, or is it files referencing the ones that failed to load?
Sorry -
Yes, there is only 1 workspace in there, filters says none
I did some directory changes in the project - then I tried to revert those changes
So reverting without checking the "delete new files" or whatever the option is will leave "new" files (incl. new names for files) in place. I'm guessing that may be why you're seeing a bunch of files not marked for add.
The simplest thing to do to clean out your workspace is to reconcile offline work, let it add everything to a changelist, then revert (enabling the option that deletes new files).
understood I will try that
How do You revert that changelist?
crap, you didn't say submit, but I did that
right.... you weren't supposed to submit that
history tab -> right click what you submitted -> undo
then submit the undo
goddamn I hate perforce
I did all that, same problem
I am literally going to have to remote into the unfucked machine, find the files that are the problem, and copy them over, bc perforce is obtuse
But thanks for walking me through that , would have been tearing my hair out without your help
again, do the files exist on this machine? Do the sizes match as expected?
they appear to be identical across machines but look at this - this isn't the issue is it?
the only thing I can think is building a new data structure but that was since deleted and it wouldn't matter if I restored the blueprint correctly, since it no longer would be referencing that structure
this is the problem those folders don't match, but i'm not sure why if I did reconcile offline work (I tried it on both machines)
This may seem like a dumb question but... did you actually submit those files to the depot (the ones that are missing)?
Do they appear in the depot tab?
That's not the missing file.
There's no indication that the asset in that image was failing to load. Things it was referencing were failing to load.
I believe that blue x on the icon means that a different workspace than the one you're in has marked those files for deletion but not submitted yet. If you hover over the file it should tell you which one.
so it's marked for delete, apparently in both that workspace's changelist and maybe also another workspace?
you aren't trying to share a workspace between multiple machines, right?
is that even possible?
no which is why I'm making sure you didn't try to
as things are, it sounds like the files are marked for deletion in that workspace. I don't know why p4v isn't showing it but it should be in the default changelist - my only thought is that you have a filter on somewhere.
You can try to verify this on the command line - p4 opened -c default
actually, p4 opened -a which will show all opened files across all workspaces. Which might hopefully make it clear where things are.
how do I type in the command line in the browser, or access it, I thought they had a shortcut in P4V to do that
file > open command window here
though that just opens a normal command prompt, if you don't have p4 in your path or the proper config/environment variables setup it won't set those for you afaik
//depot/Content/IncidentCommand/FullScenario/CategoriesSpecificCommands.uasset#1 - edit default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/DebugMaterial.uasset#1 - add default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/BaseMenuTypes.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/Deprecated_Fireassignmentsmain.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_AssignmentMapDT.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_EBaseFireAssignments.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_EFireAttackAssign.uasset#2 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_ELifeSafetyAssignments.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_EOverhaulSalvageAssignments.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_ESimpleCommandsAssignments.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_EVentilationAssignments.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_EWaterSupplyAssignments.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_LifeSafetyAssignStruct.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_MainAssignmentStruct.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/IC_RescueAssignments.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Enums/NewDataTable.uasset#1 - delete default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/FullScenarioTestScenario2.umap#5 - edit default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Widgets/AssignmentMenus/SpecificAssignments/SpecifcAssignments.uasset#1 - edit default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Widgets/AssignmentMenus/SpecificAssignments/VictimInfo.uasset#2 - edit default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/FullScenario/Widgets/MainButton.uasset#1 - edit default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
//depot/Content/IncidentCommand/Victim.uasset#1 - edit default change (binary+l) by Blake@Blake_SilverstoneRig *exclusive*
e:\LiveSimCurrentWorkspace\Content\IncidentCommand\FullScenario\Enums>```
silverstone is the name of the machine that's broke
could it be redirectors fucking with perforce?
no
redirectors are just normal uasset files
run p4 revert -c default //... to revert all of those changes
Also I just noticed something very odd @runic summit - when you posted a screenshot of the pending changelists window it showed your user as Blake_Silverstone. But the bit you posted above from p4 opened shows your username as Blake.
I don't know if p4v has different display modes for usernames or if you've actually got two different users here. If there are indeed two different users that may be why you're not seeing things in p4v.
yeah, I think we are onto the problem here
originally I only had a single machine that I would work on, and perforce was offsite - but I have multiple machines I work across - I thought I got rid of that login or made it impossible to login as just Blake
I am not sure if it matters because there is only one workspace per machine
I just named the users after the different machines so I would be able to keep track of what pushed where,
having different users per machine is pointless
perforce already records what workspace files were submitted from
yeah but I wouldn't know necessarily as easily
Fwiw there is a server setting that automatically and fucking retardedly just creates new users when you try to log in, so if you had a p4v instance just casually attempt to log in with an old user name it may have just silently recreated that old user name which you thought you got rid of
will that matter if you are in the same workspace though?
or will it keep multiple clones of pending files?
or not let you push files from one of those users on the "same' workspace
Question: 5 members around 100 GB project file, which sc server do you prefer? Git? Perforce? or else. World Partition and One file per actor will be used.
Hi Should I close Perforce P4V once I've set up the server, or do you leave it running when using Source Control in UE4?
You can close P4V, it's not used by UE
Thanks
I would say that Perforce is still the de facto source control provider for big project using Unreal, and is what is used by Epic Games internally. Beware that it's expensive, but also complex to setup and master (hence the number of questions in this channel). If you are familiar with it already it's a good start.
I wouldn't use Git with LFS too much beside small size projects & teams
IMO Plastic SCM is a lot easier to setup and use, and even more efficient in many case (eg if you want to switch between branches) but the support in Unreal was lacking recently;
I have been hired to work on improving that, and it's already way better ๐
I have been using them all for years, but I am obviously biased now ๐
If I would need to pick one single advantage for PlasticSCM vs Perforce; PlasticSCM GUI/command line can tell you the states of all your file in your workspace tree efficiently (modified, missing, new), while Perforce will only report about what has been explicitly "opened" (checkedout, added, removed through Perforce)
In this it's much closer to Git or Subversion.
Question: do some of you have professional experience using Subversion with Unreal? I would love to hear how it works for you.
I can second your opinion, Plastic is easy to set up and use, and codice provides excellent guides for almost all use cases. Blog posts are sometimes out of date, but codice people are very helpful and the guides are really good!
There are things I'm missing in plastic. Eg it would be nice to be able to just pull an individual branch from git and not sync the other branches, so I can import plugins from git repos to an xlinked repo. Also it would be nice to be able to distribute binaries to our artists and not have them versioned in plastic (more like just store the latest). I mean, it's "source control", not "binary control", but we can't rely on artists to be able to build binaries themselves.
I'm really looking forward to your UGS alternative there (I'd love to test it and provide feedback, but I'd have to clarify things with my boss because of extra time and risk)
If I forget to right-click & check-in an asset before editing, will it still get submitted to the server?
The answer depends on your source control provider: with Perforce your asset would have to be "marked writable" locally and it won't be seen by Perforce, so not submitted by default. It won't have a "modified" icon either. But then you can use the "Writable" frontend filter to find it later
(this is working better with all other providers, like Plastic SCM)
I usually do a "reconcile offline work" with perforce before submitting to double check I haven't missed a file
Right click the folder in p4v, and you'll see this option
True, though it was quite slow in our project; it can be fast enough if you restrict the to the relevant path, but not possible to handle a full workspace that includes the Engine code
Also it would be nice to be able to distribute binaries to our artists and not have them versioned in plastic (more like just store the latest)
yes I agree, it's a high priority thing, we are supposed to get that at some point
It won't have a "modified" icon either.
(writable/locally modified files will turn blue. otherwise all yes ๐ )
(not particularly useful anyway since you rarely want to dig through entire folder hierarchies to find all blue files ๐ )
Definitely true. Have to do it on the folders you think you are in or itโs slow on large projects
Thanks. The Perforce plugin let me make them writable & it looks as if everything saved ๐
Anyone have issues with UE5/ p4v diff views no longer showing up for BPs? I may have pointed to a custom diff tool in UE (preview), but don't think that would be the issue.
Fixed the above, had to set this up:
In perforce, when we create a new remote branch (codeline/stream) does it copy every file in local too? From what I can see its different compared to Git
Also can someone recommend a tutorial about branching in P4, terminology difference is confusing me a lot. I'm not even sure if I'm following correct guide at the moment
I just want to create a remote branch to push development changes to integrate into main later on
unfortunately there isn't much resources on this because hardly anyone does it... the only decent tidbits of info out there really are i think involving adopting epic's own entire workflow, which requires a source engine, UGS, robomerge
otherwise most people agree that branched workflow in UE projects just sucks ass
I thought branched workflow is most common one
well since you can't merge blueprints... no, it's not ๐
I understand why some studios use Git for source folder and P4 for content and rest now ๐
that doesn't fix anything although git does operate a bit nicer for branching
i think (don't actually know) that what teams like fortnite do is maintain just a few consistent streams - Mainline, and then one or two release streams. then they use the editor's ability to hard code in all the stream path names to display file locks across different streams (which it won't show by default) so they can avoid conflicts a bit
if you search for and find any talks on using robomerge and UGS, it might reveal some more useful info (i am far from an expert at highly mature VCS/CI setups)
Just to be clear, branch mapping is not what I'm looking for then, right?
Even if its not preferred I need to use UGS and robomerge to branch my files?
so branching and streams are entirely different systems, branching is like a legacy process, but you can only use streams with a streams depot
fwiw streams allow (but do not inherently come with) a process somewhat similar to git branches.
How can I easily go back to a previous commit in gitHub desktop?
Going in history and doing "revert changes in commit" gets rid of the changes in a commit right? It's not reverting to that version
Does it make sense to have a perforce server and client on the same pc? Like I know practically it doesn't really but I'm trying to get started and don't have access to my server at the moment. I tried setting up a new workspace in a different drive than my project but I don't get the option to add files or to check it out into a new directory. The depot and my local copy end up sharing the same folder
Maybe I set it up really incorrectly
Server and client on one runs fine. It does mean you're one tier worse on backup safety - if your PC lights on fire you're losing it all
Ye I understand. I'm trying to learn how to use perforce but I'm having a hard time. Git is way easier but maybe that's because I already know how to do it?
Perforce depot setup and working on my pc (as the server). Will my friends need any Perforce software on their machines, or will the Perforce plugin in UE4 allow them to perform multi-user editing? Thanks!
I'm wondering how my can I work with my partners with different source built engine. Problem is our packages from different source build engine gives an error "Different engine version" & not connecting to dedicated host server.
If you're using git, fork the engine and have everyone use that fork?
(assuming you've made changes)
If you haven't, just get everyne to checkout the same commit
installed engine builds or ue game dirs
I am having an issue with another person regarding shaderfile locations. Anyone have a fix so this doesn't happen every time?
https://prnt.sc/0jiinYuXxxFh
Can I just add this file to the ignore?
Hey guys one of my devs suggested we try the electronic nodes plugin but now were getting prompted to the "buy" page on the marketplace. If they bought a license can we share the plugin files or does every user have to purchase a copy?
Guess a better question is there a way to automatically install ue plugins through perforce? (go to the engine folder)
Marketplace code plugins have a "per-seat" licence.
https://www.unrealengine.com/en-US/eula/content
Plugins may be offered to you on a per user basis. Such Plugins may only be used by the number of users that you have purchased licenses for. Distribution of Plugins in source format to your employees, affiliates and contractors is permitted so long as use by those employees, affiliates and contractors does not cause you to exceed the number of paid users you have purchased for the Plugin
Though, if not all you devs have a licence, some can activite it only on their side:
- either by adding the .uproject file to your .p4ignore file
- or by making it activated by default (https://github.com/hugoattal/ElectronicNodes/wiki/FAQ#how-can-i-make-electronic-nodes-to-be-applied-on-every-project)
can have a per-seat license
Well, Electronic Nodes has a per-seat license ๐
$16.38 per-seat for 45 degree BP wires lol
$12.99 for productivity and lisibility of your BP, I guess it depends on how much you value your time
I would still recommend plugins go to project rather than engine, as they're generally enabled by default unless the uplugin explicitly disables it
and you can use p4 permissions to filter out the folder
Doing a local backup of a project - if the project has an Engine/ folder, do I need to back up Engine/Binaries/? Or will all those binaries be regenerated in VS after a generate project files?
Where do you see that?
- I doesn't makes much sense otherwise since it's an editor productivity plugin
- I'm the creator
- Lots of things do not make sense. It doesn't prevent them from existing.
- Well, imagine I am a customer. I open Marketplace, I navigate to Electronic Nodes. I click "buy". When exactly I am presented with information whether this plugin is per-seat or per-project or whatever? I'd say that current channel is not a proper way to learn about licensing terms)
I'm OK with it being per-seat, I just want to have some "official" source. I found nothing neither in "Getting started" nor in FAQ on this topic.
100% fair I did not specified it... I'll update the description I guess ๐ค . In fact, I do want big or pro studio to pay a per seat license, but I don't mind amateur teams paying only once if they can't afford per-seat licence.
Maybe I should just state that it's a per seat licence and people will do what they think is fair.
It is specified in the marketplace agreement, but it is not as obvious as it should be
All code plugins are per seat
This link tries to say that plugins with code that is distributed as part of final game build cannot exist at all (because "Sharing products outside of your team or organization is prohibited."). I think this is not what Epics wanted to say.
Okay, I am not a legal lawyer, but all this wording is extremely confusing.
As that's not a legal document, I think you can assume the intent there is talking about products in their source/developer format
That is a marketplace faq, and the marketplace would be entirely useless if you couldn't distribute end products
Sorry, your message is from 1 year ago ^^, but could I know where to find this please? ๐
I have the same problem only here
that is particular is probably from Notepad++?
I have this error in Visual Studio when i try to build UE5
Are you using a mac?
mac line endings are actually pre-OSX endings which are just \r but little information was provided
since modern macOS uses \n
nop, justly ^^
@pulsar parcelYes i know, but i juste clone the UE5 repo from git and i'm on windows
so, i don't understand
show the full error log from the output window
4>C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\INCLUDE\xatomic.h
this file probably got corrupted
i have the same error with visual studio 2022
the xatomic.h I have definitely has windows line endings
i try to reinstall vs 2019, but I have little hope
there's a repair option
yes i start the repair
and even if you open it in VS2022, it might still compile with the VS2019 toolchain anyway
well that's a full engine compile, you can just compile what's relevant to your game if your project is side-by-side with the engine
Yes i know, but i prefer compile the engine
And for compile a dedicated server, i need too compile UE from source
He likes spending money on SSDs when their cells burn out.
In all the tutorials I've seen that talk about dedicated server compilation, they say that you have to compile the engine yourself
Yes, you have to compile the engine yourself. You don't need to compile literally every single project that makes up the engine, however - you can compile just the modules your project needs.
Yes i know, I never said otherwise ^^ I just said that I was compiling the engine ๐
Build block here, any idea ?
Hey guys! Can someone share experience of using gitlab with locking system in UE?
- Does it lock files only on the branch it is using or amongst all branches?
- can UE source control integration perform file lock on saving BPs like Plastic or it only should be done manually?
You need to provide more info. This doesn't describe much.
I restart my pc and now it's build, i wait the end for see if i have another error
Gl!
Ok , I have a stupid issue...I have a few users set up in our office while working remotely from home.
I ran the office user with a root directory set on our projects server.
But now I need to use a different workstation and when I create a new workplace for that with the same user and the same root directory, it tries to download the whole depot, even though its literally the same files for both workstations, since they are in the same root directory...
Is there a way useing p4V to circumvent that?
Or what am I doing wrong here?
You really shouldn't share a directory/folder with different workspaces. It causes a few collisions.
Yeah, I figured out a different way. Leave the host field blank and then I can just use the same workspace from a different workstations with the same user.
OR you could probably change the workspace mapping so it pulls different folders ... "root/folder_a" goes to user 1, "root/folder_b" goes to user 2