#source-control
1 messages Β· Page 14 of 1
"find a way to distribute the compiled binaries" is the tool I am working on. Right now you could try to zip the binaries and explain the team how to put them in place
Or just install all the build tools (most likely visual studio) and unreal will build what it needs
I see
(or throw a cryptic error)
Uhm... That doesn't look right
What version are you using and where did you put the folder you downloaded? π€
(just in case the universe is hearing, my tool will also check the git plugin version and offer you to update it)
Ill check in a moment, do you have a link to your tool?
It's still in the works π₯²
It will be out soon :TM:
Meanwhile, PBSync by project borealis does pretty much everything
But without a UI
oh, well it sounds awesome tbh
If you follow their way of handling a repo (you have an example in PBCore), PBSync works wonders
yeah im following there instructions rn
I needed a more flexible tool, that's why I am making my ugs:g π
fair enough lol
also
how do you install to engine/plugins for the gls plugin?
like does it mean in the epic games folder?
If you want to install the plugin in engine, it means wherever you installed your Unreal
I have an extra drive, my UE path is M:/UE5_3
If you install the plugin in the project, the project always trumps the engine plugins, so you don't need to disable the old git plugin
Probably your git-lfs username is amirace (your GitHub username)
Try this by locking a file, and refreshing the status of the file.
If it has a red checkmark saying "you checked out the file" then your name is correct.
Otherwise it will show a red arrow icon and tell you "this file is checked out by usernamehere"
Check that your username is correct by trying that
Now ask, lfs locks
It will list the username that locked that file
That's the name to put in the git-lfs window plugin
I would strongly advice against GitHub desktop π π π
"Fork" is the name of a really good git UI
It's more sofisticated than Githyb desktop
If you want something simpler, try GitFiend
The main advantage is that these tools tell you what they are doing so you can kinda understand what's going on, GitHub desktop doesn't tell you anything π¬
(also, I think only fork has support for LFS locks)
oh I see
thats ultra helpfull
btw git bash says amir is my username
but I put in amirace for unreal engine
is that a issue?
oh i think i just got my answer
git and git lfs usernames differ
Git LFS username is set by your git provider (GitHub)
Unreal needs it to know which file are supposed to be yours (checked out by you)
If your lfs username in unreal doesn't match, unreal will tell you that the files you checked out are checked out by somebody else
ah ok
so it should be alr then
I appreciate the effort you took to help a complete stranger btw, it shows how good of a person you are π @foggy niche
Thanks β€οΈ
If you are willing to learn, you will find a lot of helpful people around here π¦Ύ
so im experimenting with git + lfs in a side project and im a bit confused about how its supposed to work. i grabbed a .gitattributes file off the internet and its working fine except i get asked to checkout binaries but i cant, the button is always greyed out. i end up just making it writable but it doesnt go back to readonly after committing. my understanding is that git doesnt care about lockable files but im curious if this is a common/expected issue
You need the project borealis git plugin
Not the rombauts
@mighty light that's the first step
After that, it could be that you have the wrong LFS name set
im not using any plugins at the moment, just whatever is supported by ue5 by default
what does this mean? i havent set a name for LFS.. i dont think
Check out/in won't work unless you get the project borealis git plugin
After that, this would be the popup that asks you for your lfs username
say, is fork like, free? because in the policy it says you have to pay for long term use, but doenst specify what it means by long term
Context...
Oh. Fork the client, not creating a fork.
They've been very easy on prompting/demanding payment. I used it for well over a year, then paid for it just because it is so good : )
fork is not free, but has a winrar-like free trial π€·ββοΈ
all features, free forever, pls pay one day
it doesn't get "used up"
and for what i've experienced, they don't even nag you π
I just clicked in P4V (what im almost positive was) get from latest.
and It started downloading / uploading files but the amount of files it displayed as managing no joke was literally like 450,000 files which is absolutely ridiculous. That was the first red flag.
then P4V closed and isn't connecting again.
I rebooted the desktop server running P4D and it didn't help
anyone know what is going on?
still working on getting my repo to work lol
idk why but I keep messing it up
so lets say I used up git lfs cuz i dont know shit about it
and now I cant pull from my repo from another pc because it says buy more data
how can I fix this ?
@narrow depot 
yeah I was in the middle of trying that out lol
but then realised its not that good with fork
how do you figure?
i am unfamiliar with both (lol) but that doesn't seem like it would make sense
I read a post from forkdev saying that the azure api is not good and they didnt want to implement it basically
well... i guess then, if you're deadset on making sure you can use some specific, probably unnecessary, features through your specific choice of git UI, start paying github
im not dedset lol just desparate for a solution, i might switch to azure ... but then that would mean setting up everything again
might as well give it a try ig
the more you do it the easier it will become 
lol
did you store from github or locally to azure?
and how did you manage it?
sorry i've never used azure, i just know it's popular
How would you explain in layman terms the difference between time traveling in git:
git checkout <sha>git reset --hard <sha>
With checkout you get a deatached head, you are in a "kinda read only mode" and with reset you jump back in time, and can try to make changes to then merge π€
(I know you can make a branch from the deatached head, and commit there, and stuff. I am trying to make it simple for non git users π€ )
My current idea: "Flashback mode" vs "Time travel"? π€
The checkout allows for unstaged changes to stay there if there's no conflict, but the reset will wipe those away.
If I had to explain "time traveling" to someone, I'd just pick one and not mention the other (or mention them as alternative, without going deeper). Because as with everything in git, there's probably ten different ways of doing it, but you don't need to know about every subtlety between those to get the idea of what you might want to accomplish.
yep, my UI will only allow you to reset--hard once you commited and pushed all your changes π€·ββοΈ
Deatached head is a mess waiting to happen π
For a solo-maybe 2 people- lightweight project, is it viable to use Git/Github?
It's always viable to use git.
You will just need a lfs host - for small groups, azure devops have a free setup with basically infinite space, I believe.
so, its not just like any other project where you just, basically create repo and push
I thought LFS was a setting, never heard of needing a host
LFS is like an addon for putting large files in a different place (plus some other bits)
Topic: Unreal Game Sync (UGS) Versioning
I was wondering if we need to build a new version of Unreal Game Sync (binaries + installer) for each Unreal version we use. For example, if we have Project A using Unreal 5.3.1 and Project B using Unreal 5.2.1, should we have two different UGS versions? Or can we use the 5.3.1 version for both projects?
I imagine 5.3 ugs will work for both. You can definitely add both engines/projects to it and handle them separately within the same instance.
But even if the engine version is different in the depot, we can still use different versions of UGS, correct? I donβt have a real-life example to test that at the moment, so Iβm leaning on your experience
I assume you don't need matching UGS and Engine versions π¨
If this is the case, my UGS:G is already better π€£
UGS: G soon β’οΈ
https://twitter.com/MiltonCandelero/status/1727010687980097837
what is UGS?
also, finalized git lfs removal
so when I say git lfs ls-files it returns nothing π
Unreal Game Sync. Epic's tool for easy handling of unreal engine projects in perforce
UGS:G is my Unreal Game Sync: Git, kinda the same thing but for git projects π
Unreal Game Sync (UGS) is primarily a graphical front-end tool for syncing Unreal Engine projects from Perforce. It provides several advantages over storing your full project in Perforce and having developers clone the full depot:
- Efficient Syncing: UGS syncs only the necessary files for each developerβs workspace, reducing the amount of data that needs to be transferred and stored locally.
- Conflict Resolution: UGS helps in resolving merge conflicts, which can be a common issue when multiple people are working on the same project.
- Version Control: UGS updates version files, ensuring that everyone is working on the most recent version of the project.
- Build and Run Projects: UGS can optionally build Unreal Engine 4 projects using Microsoftβs Visual Studio Compiler and run the Unreal project.
- Sync to Changelist: Developers can sync to a changelist (CL) as soon as itβs submitted, enabling them to locally compile the source code matching the CL.
https://docs.unrealengine.com/4.26/en-US/ProductionPipelines/DeployingTheEngine/UnrealGameSync/
An overview of UnrealGameSync (UGS), an internal tool used by developers to sync their Workspace with a project's stream.
The nicest feature of UGS is distributing binaries.
This means artists don't need visual studio installed to run the latest changes
I think it also has some features to handle Engine versioning and binaries π€
Is Perforce free tier truly free or is there some gotcha
perforce is free up to... some amount of users, I think 5
After that, nobody knows how much it costs π
(you have to pay your own hosting)
but is this for even 1 user?
the tool perforce (or what they call now "Helix Core") is software. You need to host it on a server (or your own computer, but that would make it local only for that computer π )
perforce (the company) maybe runs a paid service where they host it for you? π€
lemme check
They do have such service
https://www.perforce.com/support/consulting/helix-remote-admin
but as everything with perforce, the price is as much as they can milk you for unknown
you need to email them, and you negotiate your own price
(full disclosure: I do not like perforce)
(also, remember the wise words of the perforce rep: #source-control message )
well, for now I guess I will just do primitives weekly backups then.
until I reach a point it makes sense to start doing proper versioning.
where do you do your primitive backups? π€
then yeeep π
if you make it on the same computer but another drive, you can run perforce server locally and store the data on that other drive π€
or if you have a NAS (network attached storage) you can try to run it there
but that works locally only π
non of that.
Im not sharing this code with anyone and having versioning is not vital so far.
so since it seems it could take some investagation to do this correctly I pass for now.
I thought it was just 5 minutes Github clicks to make it work
yeah, nope π
I wonder if there is a middle ground where I could just use Git for the code.
I dont see why LFS is neded at least for me, Im not gonna have anything huge going on
use azure
and if you want to make your life easier use gitkraken with it
oh wait i misread mb
wdym use git for the code?
like not assets?
Use azure
You can skip lfs
Just push your uasset with the regular git
Azure doesn't have a size limit
And git binary handling doesn't suck anymore
The only excuse that exists to not use version control is not knowing how to use version control... And that's a horrible excuse
...and im back with another problem
for some reason one of my blueprints fails to save
and when I refresh it defaults to what it was before i edited it
....and now its working again
Ok so I am doing a bit of tidying up of my perforce, just checking its doing what it's meant to be doing etc, and I noticed that my submissions have a bunch of errors. 70 in total. But they aren't files that are broken... they are files that I have either deleted or moved a while ago.
The new versions of them in the correct locations seem to be getting saved properly, but perforce is seeing a folder has been deleted and... isn't updating that the folder shouldn't be there anymore (?)
How do I tell perforce to do a full .... update or whatever, that syncs the current folder structure as being the fully correct one? I dont need or want perforce constantly trying to version save folders that I don't even have anymore lol
Reconcile offline work. Submit them as deleted?
How do I do that? The only list I have is in the changelist, and I don't seem to have an option to submit them as delted
Right click on a parent folder that still exists -> reconcile offline work
It will give you the option to create a new cl listing those files as deleted.
Unless they're already in a cl somewhere.
(a non-shelf-only cl)
I've done this, it only flagged a couple of files, neither of which were deleted ones
yeh they're in a changelist, as errors
Do the files actually exist on your disk?
they exist, but they don't exist where perforce thinks they do
which means from a directory standpoint, "they" don't exist, but an identical file does exist elsewhere lol
though I deleted/moved these files a while ago, so I assume they've been moving from changelist to changelist for the last week or so
Select the erroring files and revert them.
Then add them again from their correct location
Unless they're already in another CL...
Either way, you've been doing it pretty wrong.
If you want to move files already in a CL, you need to move them using p4, not explorer.
That may or may not work from within UE, I've never tried,
This won't work. At least not to my knowledge. Moving files outside of unreal breaks them (for some files anyway)
These were all moved within-engine
or deleted
none were done with explorer
Then you don't have source control setup correctly in UE
very possible
Though Unreal certainly thinks it's set up correctly. No errors and it marks/saves/submits files as expected
at least as far as I can tell
No errors for files that are actually there, that is. And I've moved a bunch of other files that seem to be working fine. It's just these specific 70~ that perforce has lost track of
Then you'll just have to fix them manually.
hello, i have come here for refuge from the heretics in #hardware
might be easier to understand what is going wrong if you shared actual changelist + submit errors side-by-side
what kind of diff is this? im using git with lfs and the file is a uasset
That's the hash of the binary file, I expect.
interesting
Turns out clicking on 'revert' then removes the files from the changelist, without doing anything weird to the actual files list. It seems to just delete them. Shrug
Revert will, if the files actually existed, delete them.
But since they didn't, it just removed them from the cl.
revert always deletes files? I thought it would... revert them to a previous version/state
Pardon me for being new
Yeah it removes it from the change list and typically optionally can undo whatever the pending action of the changelist was
In this case it would delete because they were marked as add.
If they were marked as modified, it would restore the previosu version.
If they were marked as deleted, it would restore them.
ahh gotcha
That's the diff of an LFS pointer
does it mean the file has changed or something? can i ignore it or do i submit it?
ok but im the only person on the project lmao
You may not have gotten the latest before cahnging it.
Maybe you merged some branches or something.
nope definitely didnt as i dont have any branches and the only changes that have been made are on my pc
hello
I am having some strange issue with the game icon, it says it can be marked for add.. amnd it is reseting every time I re-open the project. any information on how to solve this problem?
Anyone used a self-hosted git server and can make some recommenations? I'm looking at gitea rn and it looks fine, what are your experiences with self-hosting?
Sorry, no prior experience but I would like to know too. Pls share afterwards if you can β€οΈ
Most interested in which hosting service and the pricing on the throughput π€
Gitea is open-source and free of charge so you don't pay but need your own server
I know that, I meant about the server throughtput pricing π
servers usually charge you by TB transfered
(unless you are hosting it in your own closet, in which case nevermind π )
Yup, I will be using my own closet π
I've heard good things about gitea... But it's been a while.
for what I've heard, it has similar features as gitlab community edition, but it's more lightweight
what happens if you do git fetch --all ? π€
got no idea why that's happening
weakened security and everything
happening each time
it's not a security thing, its literally saying "I don't have the file" its a 404
for some reason that file is not on the lfs server π€·ββοΈ
are all git lfs transaction giving you errors?
or only this particular project?
(trying to tell if the problem is the entire lfs setup, or this repo maybe never uploaded that file)
weird because pushed everything normally git push or git lfs push
from my client machine
me using Anydesk
each time
same error
i deleted and re-uploaded my project to website
still same result
where are you getting the original project from? π€
or was it never uploaded anywhere before?
guy im working with can clone just fine
if any change to LFS then that machine cant just properly push or idk
if you clone from your old server (say, github with lfs) and you don't run an git lfs fetch -all you don't have all the files, so you can't push to a new server
i deleted every single old infos of LFS of git
shift delete .git
back when it was at github
ok, so you downloaded the project, made sure all the files are downloaded (your uasset actually have stuff inside and are not a 4kb file with just a number inside)
and you deleted .git and made a new repo with git init
right? π€
but you could push fine π€
when you try to clone it on a new machine, it gives you that error
(or the same machine, doesn't matter)
basically trying to merge it from my client's repo
client says successfully pushed
but here i am missing files
"your clients repo" is that the one you deleted the .git folder and we talked about before?
let me get it all back
at first it was at Github
we reached the limit and Github and other website keep asking us to pay
so we decided move to Gitea
so we hosted Gitea
for clean repo we deleted stuffs related to old Github
then used git init for new repo
used git lfs install on repo as well
then uploaded main repo to gitea
then my client forks it
then make some changes related to lfs files and didnt saw any errors there
then he uploaded them
now i am trying to merge and seeing 404 error
hope you get what i am saying rn
ok, in the gitea app.ini file you chose where to store the lfs files
https://docs.gitea.com/administration/git-lfs-setup
can you ls that folder and see if you actually have stuff there? π€
To use Gitea's built-in LFS support, you must update the app.ini file:
ok, what's inside that folder then?
ok, it IS saving stuff π€·ββοΈ
let's go over what happened even if we don't know why or how to fix it :
Git LFS works by replacing your files with a "shortcut" (lfs pointer) that is just a long string of where the file should be.
When you push files, lfs does this replacing automagically before sending the files, and the server gets the pointers and the files.
Your problem is that you sent a pointer but now the file is not where the pointer says it should be.
Why can this happen? The two reasons that come to mind are:
- You never sent the file: You didn't have the file to begin with, so you just sent a pointer to the server with no real lfs file backing it. Now when you try to retrieve it, the server looks for the file where the pointer says it should be and can't find it (because you never sent it).
- The server never saved the file you gave it. For some reason, gitea didn't save the file you pushed along with the pointer and only saved the pointer. Now when you try to retrieve it, the server looks for the file where the pointer says it should be and can't find it (because it never stored it).
this is either an error on the person who pushed things from another server, or a bug/missconfig of gitea π¬
does gitea have some sort of support server?
i did asked there. Found matrix+discord server
still no response as of yet
will push an issue for further response
let's try to see if gitea is somewhat okayish configured.
Make a new repo from scratch, setup lfs, push. Delete local copy, clone, modify, push, delete local copy, clone, modify and push.
Let's see if gitea survives that. If that also fails, it's a gitea config problem. If it doesn't fail, I blame the pusher of this missing file
Should i put my Binaries folder into source control?
No, unless yes, unless maybe
what source control?
hosted where?
who is going to use the project? can they all have visual studio installed?
Binaries are artifacts, they can be recreated with the sourcecode if you can compile it (AKA have visual studio installed)
By this concept, they shouldn't be tracked in source control... (so... no tracking)
Unless you have artists that need the built code without visual studio... (so... yes tracking)
Unless your hosting provider (github? gitlab? azure? custom hosting?) limits the size you can upload (so... no again)
But you still have artists... so you end up distributing in some other way.
You have perforce? You can setup Unreal Game Sync to distribute binaries
You have git? You can setup PBSync or wait for me to finish Unreal Game Sync: Git
You don't want to wait? just upload a zip with your binaries to google drive or something π
I could write a blog post about this... too bad I don't have a blog π
Make one or don't I'm not your boss yet. You can use Jekyll to make it and github to host it. It's all free but has some limitations
@foggy niche i have noticed something
i can add/remove
but cant modify at all in LFS
thus resulting in 404
is there any file permission settings shenanigans going on?
π€
odd... if you can add a new file, you should be able to modify, since a modify is just a new file with a pointer to it
lfs doesn't make diffs
it just doesn't modify properly in gitea
asked in their discord and it seems they are not responding much these days
if on a new repo, you can add and remove but not modify, it's definitely an issue with the gitea setup
but I don't know what π¬
previously i had this 750 640 chmod
i removed it when problem started
and went back to previous 750/770
that's the closest i can come upto
is this good or should I remove it somewhere?
Does anyone use git-annex and could share an opinion on whether it works fine and if it's worth transitioning from git-lfs to git-annex because at first glance, it seems much better
btw nice article https://lwn.net/Articles/774125/
it doesn't seem to be supported out of the box anywhere π€
(github, gitlab, gitea, azure. etc) π€
you will need to set it up on your own π€
what is the most attractive feature to you? π€
absolutely, the only reason to keep lfs alive is file locking π€·ββοΈ
and tbh, it's really bad at it π₯²
afaik, lfs doesn't have any "bulk" lock or unlock system
so you have to make one request per file
(I know of a way to make "bulk" unlock requests: with a CI script in gihub/gitlab/whatever actions CI/CD thingy)
but it's a fake π
(yes, I am a serial messager)
It's true that you need some workaround. We have a simple script that we run that does this for us whenever needed, excluding changed files
I found it yesterday, and I haven't tested it yet, but what I liked is that:
- It doesn't require a dedicated LFS server (it can be Dropbox, Google Drive, OneDrive, AWS S3, Azure, USB, anything)
https://git-annex.branchable.com/special_remotes/ - The project doesn't take up ~x2 space on the local disk (.git)
- You can delete files (on the server)
- It's decentralized, so you can move old files to another server (you always know which files are on which server)
- You can configure the number of file copies
- There's LFS support, but the LFS protocol introduces limitations for which I'm looking for an alternative
https://git-annex.branchable.com/special_remotes/git-lfs/
https://github.com/git-lfs/git-lfs/issues/5049 - It works with SSH; LFS doesn't
In my opinion, the biggest drawbacks of LFS are:
- You can't delete files uploaded to the server, which results in a lack of control over the repository size. The only option is to delete the repository and start over.
- ~x2 the size of the local repository
Annex general instructions probably have something else worth noting
https://git-annex.branchable.com/git-annex/
https://git-annex.branchable.com/walkthrough/
https://youtu.be/NKCBXOfyoyM?si=8aUd2BNoXkTLyICt
Interesting projects could also be DataLad, which is based on git and git-annex, and DVC used for ML
https://www.datalad.org/
https://dvc.org/#use-cases
https://handbook.datalad.org/en/latest/beyond_basics/101-160-gobig.html
https://handbook.datalad.org/en/latest/beyond_basics/101-168-dvc.html
It looks like the annex is still in development, but I could be mistaken https://git-annex.branchable.com/git-annex/
~x2 the size of the local repository
Just usegit lfs prune --force
However, I've never used annex, so I don't know if everything works as it should 100%. That's why I asked if anyone has used it and if it's worth the attention and time
but it seems to me that after git add . I guess it will be x2 so you need to git add git commit git push and git lfs prune --force every time
I just run it whenever I feel like my repo is taking too much space. You can always hook that to something if you want it to run automatically.
After a git add, you'll just be x2 for whatever you added. So unless you keep on overwritting everything in the repo, you don't really need to prune that often.
Deleting files from the server sounds really spooky
The whole idea of source control is that I can go back to any point in the past
If I deleted the files for good... No going back
π€
what about perforce?
i still dont know what to go for
files are pretty expensive after all
Your "more confort" should be just git with azure DevOps π€·ββοΈ
If you are not using file locking, you don't need lfs
Azure DevOps doesn't limit your push size
π€·ββοΈ
I don't use perforce either, my team couldn't get used to the p4sync interface, I don't know how much it costs and as the perforce guy said "git is free" π€·ββοΈ
(Full disclaimer, I don't like perforce)
How then will you manage binary files?
With git π€·ββοΈ
Git knows how to handle binary files, if you are unsure, just tell it that it's binary with the gitattributes
Pushes will be big, but azure wont limit you
Furthermore, you could try the new partial checkout thingy, so you only checkout the files you want to use
"sparse checkout"
So, if I don't run git lfs install and only create a .gitattributes file, will git change binary files to pointers in the git history, and the files will be stored in the repository instead of somewhere on a separate LFS server, right?
No, git will store your binary like it does when you don't have LFS π€·ββοΈ
It will just store them
No pointers
Just files
Regardless, you have a 250 GB limit in that case
Article 07/14/2023
https://learn.microsoft.com/en-us/azure/devops/repos/git/limits?view=azure-devops#repository-size
Interesting, it has a 5gb limit push
LFS doesn't count towards that 5gb
It does count toward the 250gb tho
(as written there π€·ββοΈ)
If I migrate from a launcher build to a source build am I supposed to submit the engine with my project? Assume I don't make any engine changes and this would be for dedicated servers and UGC
you should π€
however, if you know that you didn't change anything, you can just check which commit/CL you are using and tell everybody to download that π€·ββοΈ
Ye fair enough
Hi!
I'm going to start a new blank project with a friend of mine. I'm the programmer and he's the level designer.
Since I'll be using C++ and he doesn't want to install Visual Studio to compile the code, which folders are safe for me to add to my gitignore so that he gets my compiled code?
Github's UE5 Gitignore discards the "Binaries" folder. I'm not going to add that to my gitignore. Are there any other folders I should consider so that my friend gets my compiled code?
And if you want to let them use a launcher build, check out the actual launcher build tag so they don't even need to check anything out.
you might want to at least ignore .PDB files. kinda sucks having your repo just grow for build artifacts though. after some years you could easily have 10-50 GB of just useless old DLLs stuck in your repo (could be 100-500 GB if you commit PDBs)
for just two guys, many people would highly recommend they install VS...
set the project config to build automatically on opening.
after some years you could easily have 10-50 GB of just useless old DLLs stuck in your repo
This is why I clean mine regularly
Hi,
I've install perforce on a local network, it's working. when I submit an upadte evry project will upadte, but when I try to get a previous revision, It's not changing my project.
I mean, if I move an object in a level submit to perforce, than try to get the previous revision, the project is telling me that I need to sync but when I sync, my level is not upadating to the previous step.
Look like history is not working ?
thx for your help
hey, anyone ever had issues with blueprints not recompiling on other ppl's machines after pulling changes?
4 times now this happened seemingly at random:
Person A modifies blueprints
Person A pushes blueprint changes on perforce
Person B, with unreal closed, pulls changes
Person B tries game, blueprint does not behave as it should (no compile error on launch or anything)
Person B goes into blueprint, changes absolutely nothing, just presses compile manually
Person B tries game again, blueprint works as expected
how do you clean exactly?
Also where exactly I can download perforce server for Linux?
I see tons of options on Perforce website
Perforce clean -> recompile
If you're keeping binaries in sc, then that'll keep them up to date as well and get rid of old ones.
you mean p4ignore?
So that's what its called in perforce.
you can also set up each stream to include/exclude/restrict folders and file types
Hmm. Btw what's exactly the thing I should download? I am seeing tons of stuffs to download in perforce
you mean on the menu with 4 options when installing? probably all 4
Which 4? I'm seeing many random API and stuffs too. Any proper guide to setting it up?
Server is Linux obviously
Client is windows
https://docs.unrealengine.com/5.3/en-US/using-perforce-as-source-control-for-unreal-engine/ follow this
not seeing anything related to hosting on Ubuntu or download links
https://www.youtube.com/watch?v=JxXydvG4mlI& there's this stream showing the actual process
At the core of any successful project lies planning, tools, and execution. To reduce risk and improve collaboration between developers, agile teams often implement Version Control systems to record changes to files over time, allowing them to easily recall specific versions at a later point. On this week's livestream, Arran Langmead will walk us...
no one ?
I'm building this CLI tool that automates adding new features to my game, where each feature is a plugin that gets its own project and repo. The tool needs something to track the state of these features (so that plugins can be added as dependencies to other plugins), and I'm wondering if there's anything wrong with just creating a repo with a JSON file that is read/modified by the CLI tool.
this tool is internal? π€
can anybody with access to the cli tool modify the repo?
Yeah I'm using an access token with permissions to read/write any repo atm (GitHub). It's internal, with only myself using it. Other people would use it at some point in the future
if it's an internal tool, it can work π€·ββοΈ
it's fragile from the point of view that one rogue actor can bork that repo and the tool breaks for everybody π (not unreal actor, but a rogue user π )
other than that, if it works it works π€·ββοΈ
The "next step up" in terms of complexity seems like a simple DB on AWS. Would there be other good alternatives?
to keep the db of known good plugins? I don't think so. I think a db is the way π€
Time to learn terraform π₯
if you don't need a db, only the currently installed plugins in a project file (like package.json or go.mod) could be enough without need for a db
Ooh
I have been trying and I keep recieving this error
Any clue why this happening?
i have followed steps throughly
I found out the solution
Heyo! What does the log say? The logs directory should be in the same directory as your P4ROOT.
@stable tendon that's the log file
its failing to create
using Cent OS 7 64 bit
That filepath looks crazy. How are you installing Helix Core?
Side note, make sure the user you're installing p4d has access to that folder.
Im installing as root rn
That filepath happened due to countless failed attempt
I even tried as root with hard password and still not working...
Is there anyone using git as their source control? I'm setting up self hosted repo with gitea and I'm wondering what is the best way to handle blobs that change very often eg. build data files - they can take up a lot of space and lfs doesn't do any delta compression so it will probably bloat the repo size by a large margin with each lightning build
I'm thinkig if maybe there is some way to add delta compression or force lfs to only hold the recent version of certain files
You don't want to track build files.
A git setup example with git-lfs for Unreal Engine 5 (and 4) projects. - GitHub - MOZGIII/ue5-gitignore: A git setup example with git-lfs for Unreal Engine 5 (and 4) projects.
so everyone just builds lightning locally? seems kinda time consuming
If you have a potato π€·ββοΈ
Not even close! A lot of companies use Unreal Game Sync (UGS) to distribute built binaries to artists, so they don't have to compile.
But yes if it isn't a part of the state of the repo, it probably shouldn't be tracked.
Hm, what instructions are you following?
Even small companies use UGS so that there's consistency across the company.
I googled this guy and he literally works at Perforce so please ignore me and listen to him π
Hahahaha...
Yup, I am. I also am talking to Gearbox next week about how they built Tiny Tina Wonderlands, they use UGS a ton!
wait, UGS can work with git?
nope, UGS is only Perforce
yeah a shame, we're using git so it's a miss π¦
Bummer, but maybe that's an opportunity to build one! π
well, I must say that is tempting π
Good luck if you do! Haha
I think @foggy niche has been mentioning working on something like that
Soon π
After I get commiting and file unlocking (mostly need the UI) I will publish the code and keep working
the idea is to use commit hashes and github/gitlab/gitea/azure "builds" thingy to host the project binaries
for editor binaries, will probably leverage longtail like Project Borealis does
and by that point, i'll also allow project binaries to be stored with longtail π
bro that's amazing - is there anywhere that I can follow the project so that I don't miss the release?
not yet? my twitter? heeeeere? #programmer-hangout π
crap I don't have a twitter accout π¦ hope I don't miss it if you post it here
I'll try to remember to ping you π
Hopefully this week I finish the git part of it and I publish the repo and it will be easier to track π
Great, would really appreciate it - I'm in the middle of experimenting with git and binaries/build data is kinda an only downside from p4/svn
I have deep love for git so I was thinking about writing this for the last couple of hours but since you already have some working stuff I would probably use yours and contribute with the features that I would need π
if you don't need a fancy UI and are willing to adapt to a more opinionated workflow, you can check PBSync from Project Borealis
pretty much all my functionality are ideas taken from there
but less opinionated π
Hi folks. I'm wondering if anyone has any opinions on using Plastic SCM for a relatively new project, small team, where I (somewhat senior) and the other dev on the project (quite junior) need to use something other than Git (currently in use) for our UE project.
I would love to just use perforce, but we need a hosted solution, and it seems like the only provider for hosted p4 is assemblage to the tune of $50+ / user / month, which seems crazy expensive to me.
Are there big reg flags around Plastic I should be aware of before considering it?
nobody β’οΈ uses managed p4 servers though, you guys don't want to self-host your own?
(also if $50/user/mo includes a valid p4 license it would be cheap as heck π but only if you were 6+ team members)
I'm a contractor so I can't rightly take responsibility for it myself, and the CTO doesn't want to host himself. Not sure why, but that's what he said. I think there's just too much on his plate. It's a small company
And in my own experience, administrating p4 is fine until it's not, and then it's wretched
yeah i'm not going to fight that opinion 
hey guys ive tried to set up github 1000 times but im always getting the same issue even with git bash.
"Remote disconnect check connection"
dont matter if the size i 1 kb or 100 gig
always same
ive scouerd the whole web with 0 solutions :/
anyone encoutnered thhis ?=
Try with the software called Fork (it has an endless free trial) or at least something like Git Fiend
Or by console. Imma need a real error message π€
Fork is the best I've used and it's just nagware. If I was using Git in a professional capacity I would've bought a licence already
I got used to use git from the terminal, I only use it to hunt down a commit
But it's really good.
If Fork has too many features, GitFiend might be your choice
I'm tempted to buy a licence anyway just because it's a good product and it's a permanent licence
is it possible to create a shareable gitconfig file?
i tried adding a file named .gitconfig to my repo folder, next to the .git folder and the .gitignore and .gitattributes files but it doesn't seem to make a difference if i use
git config --list --show-origin
it doesn't show up.
I'd like to make these changes available to my entire team and i kinda expected it to work like the gitignore and gitattributes files.
yes, kinda
create a .gitconfig file, use the command git config include.path .gitconfig
but every new computer needs to run the command π¬
that's the kinda part
alright! but that's at least something^^ thank you
i can get my artists to run one command when setting it up, i just don't want to have them change stuff if i need to update some values or add another line to a config
do you have tips on config settings? we had some issues with large LFS files on AzureDevOps not working
so i changed the HTTP to 1.1 and lfs.activitytimeout to -1
this has a lot of interesting stuff
https://github.com/ProjectBorealis/PBCore/blob/main/.gitconfig
very opinionated, but interesting π
cheers!
Is there any issue with keeping Marketplace plugins that I have purchased hosted on private GitHub repos, to make it easier to manage them as dependencies of my various projects?
seems good to me
from the technical standpoint? they will work fine.
From the moral/legal side... no idea π
The alternative is an S3 bucket with a dedicated IAM user, which isn't terribly messy, but it would be one more thing to manage.
I think that from the moral/legal standpoint, a private repo or a private s3 server are in the same area π€
so go with the repo π
but don't quote me on that one π
Unreal game sync is pretty cool and all... but have you seen unreal game sync git?
(work in VERY progress)
https://github.com/miltoncandelero/Unreal-Game-Sync-Git
@fossil idol ping
amazing bro, thanks for the ping - starred it and will check it out in depth soon enough
New to source control. But when I created a Git repository its showing two files in my Epic browser
Any ideas why it would do this?
Figured it out...... I changed the file saving location of UE and Im a dumbass and copied and pasted the file location twice into the settings file.......
food for thought any Linux solution? Like one shell command to go?
Entirely console based? PBSync.
You still want UI? You can build it yourself if you are on Linux. Go should build anywhere
Is there a possibility or do you plan on implementing synchronization of build data files? They are very heavy and I'm looking for some solution that won't bloat my server as git lfs doesn't delta the files but just creates a new copy anytime someone commits
There is a plan, yes
My plan is to leverage github/gitlab/gitea/whatever "releases" feature.
By zipping the Binaries and uploading them there, it usually doesn't count towards the size limit of the repo π€
The super hardcore plan for the future, is to use a binary versioning tool like longtail, but that needs your own s3 or bucket to store the data
hmm, that's an interesting solution
do you plan to zip all binaries etc with every compilation or just the ones that changed?
All binaries get zipped.
Only on commits that actually changed the source code
Hello everyone - I just noticed that I have some files in Source Control (Perforce) under Uncontrolled Changelist. (I usually do everything from P4V and never noticed this.) Anyway, some of these files are fairly old, but should be in my depot. That being said, I don't see anyway to Add them for Submit.
build server you paying the hosting? π
otherwise, the github releases is free
with a "build server", a bucket in s3 or gcloud or any kind of bucket you can version with longtail
which is more efficient
longtail does diffs of binaries, is wacky
(reading you again, @late thicket Are you saying to not even bother with the "releases" thingy and just skip the boat to a s3 bucket implementation? π€ )
it's fine, I am having a rough day and I jumped to the defensive too quickly, sorry π
Hello. I have an issue with changing the default user in p4 command line. I have another project on my college perforce server and I created my own server. I am trying to configure the new server with typemaps but if I run p4 info, it shows me the info for the college server. I've tried p4 -p server:port info but its populating the client and user fields with data that was on a different/old instance of the server that has now been deleted on digital ocean. How can I switch between servers in p4 cmd?
Hey @cloud raptor ! Couple things, you might have a P4CONFIG file that's setting your local preferences. I'd check for that file in a directory or two. The way you're overriding the server with the -p flag is the correct way, I use that sometimes! Another thing to check is if you have any P4 related env variables set. P4PORT might be overriding it. If you're on a mac/linux you could do something like printenv | grep P4
I don't have any P4CONFIG files and checked env variables and I don't have any. I didn't think much of it but after I created the new droplet on digital ocean and connect to it via p4v, it somehow showed an old depot(without any files) that was created in another instance earlier this year and deleted shortly after. But when I opened admin mode, it went away and only the default depot was shown.
I mostly use p4v for vc operations.
Sometimes P4Admin has a weird caching issue, I've ran into it myself. You can right click and remove connection. I need to hop on a meeting, but you can try out seeing if p4 configure show config is set somewhere? (I always forget the syntax of that command! Sorry!).
Nw. Thank you for the help
(side note, most apps, like UE and JetBrains IDEs, will use your P4CONFIG settings automatically)
I just created a p4config file with the server and user config in the project folder and its working fine. And the old data seems to be from an old workspace that wasn't deleted.
Great! Glad you're up and running. (Old workspace folders will stick around, since we don't want to delete your local data unless specified!)
i have not looked into this at all but i was under the assumption that UGS could work with git with some modifications. unless this is exactly that. i also have no idea what the scale of these modifications would be
p4v Excessive combinations of wildcard ... in path and maps.
when trying to merge specific CLs to streams. Hmm
Heya, quick question.
Just spent an hour fixing stuff because a team member accidentally checked out the whole depot AND tried to submit files he wasnΒ΄t allowed to submit to a folder hes not allowed to submit to AND used some bad characters....
So, since reading the company wiki apparently isnΒ΄t always working, IΒ΄m gonna need to be a bit more restrictive, but I donΒ΄t know if there is a wildcard option for what I want to do:
-
Is there an option to restrict what a user can submit to ONLY files they created themselves?
The way our project is set up there is no need for them to check out/submit anything anyone else created.
I know I can restrict to specific folders etc, but then I constantly need to update that list for each new folder in the depot...
So, they should still be able to open everything , they should just not be able to save or submit anything they didnΒ΄t create themselves.
Which can include duplicating files from other users, renaming them and moving them, but NOT overwriting them, even if they are not checked out by any other user. -
If the team member makes a mistake, like accidentally TRYING to check out a whole bunch of file, their perforces now hangs for a VERY long time, retrying things it canΒ΄t do.
Is there a way to limit the number of retries, because cancelling out of the operation also doesnΒ΄t seem to work sometimes and can produce a number of locked files...
Please ping when you reply...:)
Helix merge seems to be completely falling apart opening the merge tool on a 900K file
That's big, but surely not that big?
Well, 900k is approximately 900 A4s of text, which it has to compare to another slab of the same size. Imagine doing that by hand with say a Lord of The Rings Collected Paperback. So yeah, it might take a while, if it doesn't crash out : E
a computer is many orders of magnitudes faster than i am
Yes it is, but string compares are expensive
It can diff it fine, it can even tell me how many conflicts there are, it just can't open the merge tool
As a rule of thumb, just for sanity of the humans working on it, I would recommend keeping code files under 1,000 lines
It's generated mark-up. Was unlikely I would have been able to merge it anyway but I did want to have a look.
Also it may depend on what the diff tool is. WinMerge ( which is ancient though ) struggled on big files I recall
If somebody can recommend something more modern than WinMerge, that would actually be really nice
Perforce recommends this, might have to give it a spin...
Unlike diff, it works well with large files (up to 4 GB).
https://www.cjmweb.net/vbindiff/
VBinDiff (Visual Binary Diff) displays files in hexadecimal and ASCII (or EBCDIC). It can also display two files at once, and highlight the differences between them.
Ah, but that is 2017 as well... still, maybe worth a shot
This is not just a little change on the original UGS code.
Didn't look into it
hey guys.. have a question.. I currently am running perforce on a 2nd computer in my house that i'm using as a backup server... my project is getting far enough along now that I want to start networking for it.. unfortunately perforce doesn't have all the great app integrations that git does (mainly i'm looking at commits auto-populating kanban boards to show when a commit is done for a type of feature roadmap that could be publically available on a website like trello/clickup etc.) the API for perforce unfortuately is non-existant unless you use helix hub which I can't do as my server is not linux based... so as a workaround I was thinking about using a 2nd VCS with github with a very heavily edited .gitignore this way when I send commits it would update my kanban board... anyone have any experience running 2 VCS with the same project or is this even a good idea?... i guess the alternative method would just be manually editing the kanban board but was trying to keep this as automated as possible
You can probably get away with using triggers on your perforce server to run a script to update your board
Hey Everyone!
We are working with a P4V repo and are using the P4V plugin for Visual Studio. However, when we connect to source control we get the message on the image. It's kind of weird, because it seems that VS is trying to modify engine files, and eventually crashes and doesn't allow us to use the VS connected. Has anyone got anything similar?
Hey gang - I pulled an old verison off my depot - made some changes - now I want to submit this file as the latest. It doesn't appear to let me and is listed as "not the latest," How do I force my local file back onto the depot.
Before you force your changes in, you need to ask an important question : what is change #6? Is it somebody else's work? Have you checked that it is ok to override that, losing all changes in #6?
In my opinion the correct procedure would be to :
- Take screenshots / copy nodes to text files to document your changes.
- Shelve your changes so you can return to look at them if needed ( this is optional )
- Revert the file
- Redo your changes
- Submit your file
To avoid this sort of thing happening in the future:
- Sync the whole project to latest before you start work
- Immediately checkout the file you intend to work on, so other's will see it as locked while you work on it
Why this issue ( probably ) arose:
- You took a file and started working on it, but never actually Saved it - which triggers the checkout in Unreal
- Meanwhile somebody else worked on it ( #6 )
- Your changes are now 'late to the party'
In the case where the changes made in #6 are deemed to be easier to re-do than your changes, one solution is this:
- Shelve your changes
- Get Latest
- Unshelve your changes
- Submit your changes #7 ( losing #6 )
- Redo #6
- Submit those changes again #8
Thank you so much for responding. I am actually the only person working on the project at the moment. Version 6 is corrupt so I went back to the depot and pulled version 5 - which does work. I now want to submit a version 7. (In case you can't tell I am rather new to Perforce) How would I make what I have in my Workspace the latest version?
shelve your change
update to latest
unshelve your change, overwriting the corrupt#6
submit, good practive to add a brief note on what happened in comment
It's actually not listed in a changelist. Right now it sits in an "Uncontrolled Changelist." (Along with about 337 other files that I assume should be put up in the depot. How do I submit those?)
Thanks again to Karma for putting me on the right path. Leaving this here in case anyone else has this same issue:
Here is what I think I did.
Right click on file in Workspace and select SUBMIT. (It will put it into a changelist but wont let you submit.)
Shelve that file.
Right click again on the Workspace file and select GET LATEST REVISION.
Right click again on the workspace file and select RESOLVE
Click on KEEP TARGET
Submit changelist.
If I am doing any of that incorrectly, let me know so that I can be better in the future. Thanks again!
Hey Everyone!
I'm getting a weird thing in the P4v Visual Studio Plugin. Once I try to connect, the plugin tells me that i cannot add the sln file since it's listed in the p4ignore file, but I don't know why it should be trying to add it.
After that, it tells me its trying to write some engine files, making eventually freeze. Has anyone got something similar?
is there differences between .gitignore or .p4ignore?
yes. yes there is.
So I have a very long file that I was refactoring, and half of it is done
I dont want to commit or push, but want to backup to remote
which keywords I am looking for?
any changes you want to track need to be committed and anything you want on the remote needs to be pushed as far as I'm aware
sadge
i'd probably commit the half-refactor to a branch that I merge back once finished tbh, you could get in the weeds of breaking your refactor changes up into separate commits too.
alright, thanks
I also got another question
can perforce do same version control of text like git?
I didnt saw anything similar to that
Anyone ever experience UGS not syncing all files?
Half the time I have to open up Perforce to make sure I actually have latest
so should I do partial git and partial perforce checking then?
merge conflict is pretty important
perforce does provide some weird git integration-interface-program-thing as a separate product if you're desperate for both
it's marketed at enterprises who don't want to train contractors/outsource labour to use perforce lol
Ok so I've a very odd error. After a perforce merge, several art team assets have this message. I've never seen this before so any help would be appreciated. (Repost from UE5 general. Found this more relevant channel)
Issue fixed. I had certain directories to not cook
Hi I am having a problem with perforce.
When I try to submit a changelist the progress bar goes to 100% but it hangs there forever. it is a local network server and it was working fine for a few days and it suddenly won't submit the changelist. does this has happened to anyone before? can't find much on the internet.
Hi guys, had a question.
Since perforce is not totally free to use, I had an idea of using Git + Perforce concurrently. Not sure if it can be a workaround or not, does anyone have an idea?
Why adding git to perforce would make perforce cheaper? π€
Is anyone here familiar with Linux servers using perforce? I recently set one up and have had no issues with using it up until I went to update it, and then problems popped up when doing the updates. Here's a picture of what's happening. Sorry for the poor quality. Not sure how to get a Screenshot from the server itself.
Here's the journal too if that's helpful to anyone. I'm really feeling stuck on this thing.
wdym?
I use git only?
that's what I am doing atm tbh, just trying to figure out if I can find a workaround to use perforce since we cant buy it atm
yea alr, thanks for sharing
Perforce or now called "Helix Core" is free for up to 5 users! There are a few ways to deploy it, https://www.perforce.com/products/helix-core/free-version-control. If you choose to use a cloud (instead of a server you own), there might be cloud costs to host it. Good luck!
(Side note, to get started, we have been building up our YouTube videos! https://www.youtube.com/@PerforceSoftware
Bring Order to Innovation with Perforce Software Version Management
Whether you're building an enterprise application, a killer game, a ground-breaking mobile device or the next social media platform, choosing the right software version management is a must.
Perforce enables teams to work together on important files like software code, documen...
Hey! It looks like it's failing as other dependencies aren't installed. Which set of instructions are you using to install it?
(Side note, we recommend using the SDP, which helps automate a lot of that!
https://swarm.workshop.perforce.com/view/guest/perforce_software/sdp/main/doc/SDP_Guide.Unix.html
https://swarm.workshop.perforce.com/projects/perforce-software-sdp/)
I followed this to do the update: https://www.perforce.com/manuals/p4sag/Content/P4SAG/install.linux.packages.updating.html
I'll look through the SDP. I'm kinda stumbling around in the dark with this. Still learning a lot of the basics.
No worries! The error you have is saying you don't have helix-p4dctl setup yet. Take a look here: https://www.perforce.com/manuals/p4sag/Content/P4SAG/appendix.p4dctl.html?Highlight=helix-p4dctl
It's a bit tricky, that's why I steer folks to the SDP/cloud install (called the Enhanced Studio Pack)
Is there a reason I wouldn't have that setup already given that I had the server working before the update? Do you have to setup it up again after doing a system update?
Admittedly I don't recall p4dctl during my initial setup, but I could just not be remembering. Or maybe there are multiple ways to set it up that don't all require it? Just trying to get a better understanding of what happened.
There a few ways to install it, maybe you installed just the server from a *nix repo? And not the whole package?
(side note: you can contact support to get specific help, as this is a bit off topic for this forum, support@perforce.com.)
Great, thank you! I'll go through the SDP first and see if I can't get it figured out with the info you've provided me. I appreciate the help!
You're welcome!
In perforce, is it possible to integrate files to a new stream without downloading/submitting them locally?
I want to create a Release branch from a specific CL but do I really have to download the whole project to a new folder? There won't be any changes to reconcile.
Jeez perforce is extremely hard
how do you use this
things are still not updating even though you submit
hello i'm using plastic scm, have you ever had " An item with the same key has already been added." error when commiting?
I'm not sure, but I can ask the team. Since it's been a few hours, do you still need a hand @cyan jay ?
There is a bit of a learning curve! What problems are you having?
Just wondering if it's possible. Decided not to do it just now, but if it is possible I will look into it!
@cyan jay Just heard back...
Check 'p4 help populate', 'p4 help integ' -> "-v" flag
https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_populate.html
https://www.perforce.com/manuals/cmdref/Content/CmdRef/p4_integrate.html?Highlight=integ
π€
thanks π
Work disconnected?
Guys go use perforce, but if you have even just a single problem, go use something else
You can work disconnected, and then open a new connection:
I tried that for 2 hours and it wouldn't display the screen, I post my question and try again and now it decides to open the window.
I have no god damn idea man.
Software that's limited is totally fine, but at least make it consistent.
Perforce is absolutely perfect, when its working.
One little mishap, all work because impossible.
i've never seen anything so binary, there are no logical critiques of perforce when its functioning. It just works when it does.
But these stupid occasional problems man...
Sorry 'bout that! There are a tonnnnn of factors that go into software. Networking, computers, processors, the weather in Guatemala... Sometimes a good 'ol restart helps too.
If I uninstall p4d and p4 from my linux server, then go through the install and setup again, will I be able to gain access again to the repository for my game or is it going to be ineccessible? I'm having a lot of trouble getting my server back up and running and am about to just uninstall it all and start over using the SDP guide.
Drop a line to support@perforce.com. That's a tricky process, but I believe doable.
Does Support only work for paid customers? Just curious as I previously requested access to the community portal but was told that it was only for paying customers. I'm part of a small team so we are under the 5 person limit.
There is a free 7 day option. But it's timed, so when you send in the email, the timer starts!
Ah I see. Are you aware of any perforce specific discords or better places to ask than this? Doesn't seem like there are many reddit pages or anything else out there from what I could find for questions relating to setting up the servers or any other issues like that.
We're working on something for early next year. In the meantime, we do have a Slack channel for paid customers. We also have a forum https://forums.perforce.com/index.php. And we're on StackOverflow as well.
Alright, thank you.
hey guys we are using git lfs with the plugin from project borealis and we are having an issue where after committing files the locks are never released. we have to manually release file locks. is this a known issue or have we got something configured incorrectly?
ok i think the issue might be because we are committing assets outside of the editor
Hello I was told to setup a Perforce server and I saw that there is an option to create one using Linux and Windows. My question is, are there any benefits of using perforce on windows vs linux? I have an extra computer I can turn into a server to be my host. The projects that I am working on are just between me and father (2 people).
not sure about windows but its ezpz to just throw up linux with a perforce server running in docker if you are interested in going that way. my only recommendation is that if any of your clients are windows make sure your p4 server is case insensitive otherwise you are in for a treat
Hey all, I've been having an on-going struggle to get my perforce server up and running again. I'm new to Linux, Perforce, and server concepts in general, but was able to get it all up and running fairly easily. I was told to be sure to update my Linux system fairly regularly, so after a couple weeks I tried to perform an update and since then I have not been able to get it up and running again.
When updating, I used the commands "apt-get update" and "apt-get dist-upgrade". during the second command, it errored out on the helix-p4dctl startup with the error "SSL connect to ssl:1666 failed (connection reset by peer) Remove SSL protocol prefix from P4PORT or fix the TLS settings".
For starters, I'm confused why doing an update is causing a problem like this given that it was working previously, unless the update some how eliminated some previously saved settings or configuration?
After much digging, I've been able to at least get passed that error message (although I'm not 100% sure how, I think it was by defining P4PORT in the config file) and now if I try to run the dist-upgrade command again I still get a failure while trying to setup the p4dctl service and it doesn't tell me much BUT just below it there is a message stating that helix-p4d failed because of a dependency on helix-p4dctl, and then goes on to say that helix-p4dctl is not configured yet.
I'm not sure how p4dctl cannot already be configured from when I initially set it all up, unless by "configured" it actually means started? As far as I can tell everything looks setup correctly on the p4dctl stuff.
There is also a part that tells me to check journalctl, but when I do there doesn't seem to be anything useful in there. Just similar messages to what it's giving me here. Anybody have any ideas on fixing?
What version of Linux, I have never dealt with Linux.
I'd suggest using this guide: https://swarm.workshop.perforce.com/view/guest/perforce_software/sdp/main/doc/SDP_Guide.Unix.html I did not use this when I setup but wish I had known about it as it seems to be very useful and handles a lot of other issues that can crop up later.
ty, just wondering if anyone has setup a windows perforce server
curious to see if there is any difference
The biggest difference is just going to be how you interface with everything. If you are not comfortable with command line windows may prove to be a bit simpler, but I believe it has more overhead whereas linux I think is more lightweight, but there's no gui. I had next to 0 experience with command line outside of a few git commands when I started my linux server and it took a bit of a learning curve to figure out some things, and clearly I'm still learning as I'm currently having some issues getting mine back up and running, but overall I don't think Linux is bad. Mostly just personal preference.
ahh Thank you for your input
Does anyone else here have a perforce server running on linux? Curious if anyone can tell me how their permissions are set on /opt/perforce/servers/<servername>/state.xu I'm having a hard time getting my server back up and running and I read online where someone had a problem with an xu file changing permissions when they did an update. It's not a great post as it's fairly unclear what they did so I'm not sure if this is the same file or what permissions it should have if it is.
is there any way to change typemap to existing files?
for some reasone my typemap gone. I just recreated it, but files are not affected
UGS is telling me I need to build the engine even though I'm using pre-compiled binaries?
Going to need to see what you actually are seeing
Doesn't ugs need to be built from source though?
that read to me as if it's a message from UGS itself
anyone know what this Default Uncontrolled Changelist is i tried reconcile assets but nothing ?
if i revert the files it breaks everything lol
It's files that are not known to perforce but are being tracked by unreal. They're not submitted to source control, if you want to submit them you need to move them to a real changelist and submit.
Actually, those look like engine files... weird that they're being tracked by unreal at all.
If at any point you hit "make writeable" instead of "checkout" when modifying assets, that uncontrolled changelist is where they go.
@merry verge yah i just started perforce today but this is a project that will be worked on with multiple users and im trying to get this set up
yah i just had this all sent up to my digital ocean and this is how it cam i can create a new material check it out save upload and everything works as intended
im not fully understanding what you are saying as i am new to all this sorry im learning
im not sure how to move something to a changelist as there is no option for that
@merry verge it wont let me move them at all to the changelist
facing similar issues
even when i revert those files it 0s it all but then it breaks unreal and i have reverify then this happens again
@near granite yah I deleted my droplet and starting over from new Iβll let you know how it goes
im really hating perforce for these weird behavior. Tried anything else as a source control? Hit limit with Github already. Gitea for whatever reason not uploading modified files on my server. Add/Delete works fine
yah i had the same problem with git as well
and i can do this local and it works fine
does windows/linux vm server works for you?
wish i could Plastic SCM....
but you need to buy server itself for self-host
I was just using perforce server on my windows desktop
since perforce is free for the first 5 users and you get 20 workspaces figured users could share logins in to differnt workspaces
yah i have a bit of a wait digitila ocean so slow for uplaod 70mbs on a 1gbs hard line fml
30gb project file im 10%done upload
you can hide uncontrolled changelists but that only masks the issue
It looks like there might be a bug in this system. But... this dialog is a bit like the c++ content view... You could finish an entire game looking at it exactly zero times without any major disruption to your quality of life. Use P4V and don't use epic's shit and you won't have issues epic made I guess
@woven sluice so your saying just ignore this?
Just to make sure, Is it a launcher engine? Or source?
Im new to all this what do you mean?
Your engine, are you building it from source or is it installed
im just building a game in unreal engine and sharing the project files thru perforce so other users can edit the project with me so we can build a game
You can use this referral link to get $200 worth of credit on digital ocean for free (it also helps me out). This credit lasts for 2 months which is more than enough time to see if you'll need to use digital ocean and perforce for your project.
Referral Link:
https://m.do.co/c/c74a41c9ce45
This tutorial shows you how to (with timestamps)
00:0...
im doing exactly this
Ok great so you didn't build the engine from source. Yeah then that seems like a bug in that stupid dialog, I'm seeing other people online complain about it too
iv e only found 1 reddit post and messaged the users on that and my issue was differnt
You can rely on the unreal perforce integration to check out assets for you as you work, other than that use p4v to do everything (update and submit aka pull and push)
it does what its suppose to
its all talking back and forth just cant clear the default uncntrolled changelist
There is no such thing as a "default uncontrolled changelist". It's something Epic invented in an attempt to make it easier to deal with it when you edit files without checking them out.
But clearly, they pulled a dumb
yah if i revert them they break the unreal engine and i have reverify unreal
My guess: They probably designed the dialog only to work with their in house pipe line, which is a source-built engine in perforce. They probably never designed it or even tested it to work with a launcher installed engine
dont they just use unreal engine?
Of course? Lol
sorry i just dont understand the difference between source built engine and this unreal engine im new to all this
All software works like this...
You can either use a prebuilt version (install it) or you can build it from source if you have access to the source code
Honestly these are the reasons why I am at the verge of dropping Perforce
@near granite I just gor off a call with another user its not perforce its UE its just a bug that occurs
ue is saying hey i dont know whats going on with these files lol
when nothing should be happening with them
maytbe a fix in 5.4
as long as your file changes are occuring and check in and out is correct then its working
@near granite I created a brand new Thirdperson template nothing changes same out come
Don't know why I tried... Lol
I'm pretty sure there is no change in behaviour of the plugin between source and launcher engines
since the editor just deals with the assets
though it is suspect that it's listing engine assets, and an asset in a completely different project
When I try to diff against older versions of a file from file history window I get this error. Does anyone know what is wrong here?
for some reason or another it is failing to load current or previous version of file to diff
Is there a way for me to "merge" 2 repos or something? I asked an MP author for help and he wanted access to the project so I added him to the repo. He ended up downloading a .zip and fixed issues for me. He sent me the .zip.
What do I do now? Can I merge them? Do I need to find out what changes were made and make them manually? I'm lost here.
Please ping me if you have an answer and thanks!
nice workflow
is there a way to get git to merge these files instead of clobbering? = [up to date] main -> origin/main error: Your local changes to the following files would be overwritten by merge: Config/DefaultEngine.ini Please commit your changes or stash them before you merge. Aborting its a text file so im not sure why theres no option to merge
i dont have the option to merge though. this was from pulling. am i supposed to fetch first and i get an option to merge or something? im using gitfork for the ui if that matters at all
this is so dumb. im so confused about why it cant just merge the file or at least prompt me to resolve it
but how do i tell it to merge? whenever i pull and theres conflicting changes it just fails without giving me the option to resolve
alright
oh theres an option for it right infront of my face
alright ill add it
in other news we are using the git plugin from project boralis but we have this issue where we have to manually unlock files after committing. is there something we are missing? its super annoying
so i'm having an issue where Submit Content isn't updating my github repo, using git as SC in UE. if anyone knows what i'm on about or need further context please lmk
is that the "working by myself" workflow?
probably a really dumb question but is this just like "hey i need these assets can you make sure you commit/stash what you have?" or is it more like "im going to work on x which doesnt require anything anyone has checked out so theres no conflicts"
ah alright. thats sort of what we do now. its just 2 of us so just a quick "i need the player controller" type thing is fine. almost always its those lingering locks that are the issue
we are using gitea with lfs
we have a perforce server too but i wanted to experiement with git lfs. i really like gitea and since perforce has literally nothing close to github/gitea in terms of tickets/projects its sort of hard to leave
so would moving to lockless just be removing this from gitattributes? *.uasset lock *.umap lock
or do we just ditch lfs all together?
i thought lfs existed because git sucks at binary files... or something
Can someone take a look at my typemap. I am an artist an set this up a while ago. Planning to set up a streaming depot and not sure what the +S2w does?
+w is "always writable"
+S2 is "don't keep any old versions of this file, keep 2 max"
Thank you!
Also. Cna you take a look at my ignore file?
I tried pushing both saved and intermediate, and i am able to push both.
Can someone tell me what these two options do?
I want to have a few dev branches, but not sure if i need those options checked or not and what happens when i do, does it copy all files to yet another WS?
really late to the party.
If you are using lfs locks, always rebase. A merge commit is lfs locks death.
A merge commit "touches" files that you don't own. That means you will lock yourself out of the ability to push that extra ugly merge commit.
By rebasing, you will never have a merge commit. If you get a conflict (you shouldn't, that's the whole point of the locks) you can still resolve it and continue the rebase
auto-Stash is in case you want to pull changes without commiting your dirty working tree... it should work (since lfs locks will keep you safe) but... should you? π
are you feeling lucky, punk?
Got git error when pushing:
send-pack: unexpected disconnect while reading sideband packet
Connection to github.com closed by remote host.
Compressing objects: 100% (1254/1254), done.
fatal: sha1 file '<stdout>' write error: Broken pipe
fatal: the remote end hung up unexpectedly
my network is working fine, so it aint that
nvm, got a new error that's more clear "pack exceeds maximum allowed size (2.00 GiB)"
y'ello everyone. any way to check upload % of my submit? I'm not getting a progress bar, which from what I gathered here is a good thing?
related question: I'm getting SSL errors when submitting large files. I've had a shit connection all day so I assume this problem is on my end?
WHen you create a branch in perforce, does it actually duplicate the files?
I first thought it wouldn't, but it just shows it copying all the files currently, is this correct?
Yes, branching will immediately create copies.
I think one version of streams won't create duplicates until you cause a diff from the parent stream.
thank you.
Lots of stream types, but I don't see where it would tell us what does what in practical terms
https://www.perforce.com/manuals/p4guide/Content/P4Guide/streams.types.html
Also I would note that since we don't have cross-stream locking, we don't use streams much.
Mainline -> Staging -> Release only really, no dev/feature/task streams for us...
Ehy guys, I have a question about git, sorry but I don't know where to ask.
I made up my project, based on the lyra project. I started to commit from the project setup, then I've done some commits without any push.
Now I'm trying to push, but lyra project is too large, so I'm trying to push only the new/modified files.
I've done a diff with first commit, updated the gitignore to consider only that files, but when I try to push I still get 16k files pushing....
What am I missing? There is another way that doesn't use git lfs?
Thx to all
Thanks for the clarification.
ye we are still debating if it really is necessary.
Currently just two of us
version control absolutely necessary always
but my friend thought it might be a good idea to have branches.
Ye, we have the old. local depot set up in use currently.
unreal dev, it is not really ideal. I recommend just keeping an attitude of committing only working stuff. Otherwise shelving if you want to keep 'versions' as you work
Our philosophy is this:
- mainline should always work
- accept that some in-dev features can be broken/incomplete, w.i.p
- commit daily
- hide features behind feature flags if needed
- Bonus Points : Jenkins autobuilder builds every change to catch silly mistakes
Shelves are super handy. Work in multiple locations, code reviews etc
Branches I would say only for extensive c++ work, or extremely well encapsulated features
I'm trying to do binary versioning and I'm having issues with running my game after pulling binaries, my Engine/build/build.version is
{
"BuildId": "cf3c13a3-272b-40e3-a330-10d48355af04",
"MajorVersion": 5,
"MinorVersion": 3,
"PatchVersion": 2,
"Changelist": 0,
"CompatibleChangelist": 0,
"IsLicenseeVersion": 1,
"IsPromotedBuild": 1,
"BranchName": "Unknown"
}
and my Project/Binaries/Win64/UnrealEditor.modules is
{
"BuildId": "cf3c13a3-272b-40e3-a330-10d48355af04",
"Modules":
{
"Carbon": "UnrealEditor-Carbon.dll"
}
}
but even though BuildId's match I get
Carbon```
After opening my game, what am I missing?
I think the build id was on a regkey somewhere? π€
No it doesn't! If the files are the same, they're only stored once. Even across streams (I found that out last month when I uploaded UE5! π )
Shelves are great! Because they help with large submits. The files you shelve are shelved, where as a big submit could fail (due to a network blip). So when there are big submits, we suggest to shelve, so that when you need to submit, the files are already on the server and it's a quick submit! π
Is this a semantic difference about how the server vs a user is tracking the data? because anytime I've branched, it always creates a new file. At the very least I have two unique depot paths even if the server tracks those as the same file until a modification is made to the branch.
Well, you'll see a new file. But under the covers, there isn't twice the data usage.
Gotcha, that's kinda what I thought was going on.
For example, a coworker and I (unknowingly) uploaded the same version of 5.3 onto a test server, but there was only the size of one instance of the engine. I had two copies (one was a branch) and his was in a different depot+stream.
3 versions would've filled the disk, instead it was only at ~35%
i am looking forward to trying this out again once i finally upgrade from my dinosaur perforce server version. in my old ass version it does in fact duplicate all files, which was a hell of a lot of fun when i decided to just make a "release" stream for testing craps and giggles on my 80 GB server which had a 50 GB perforce project...
I think you might need a new way to have fun ;). jk!
I think we added some depulication logic recently. Let me go see if I can find it.
it's all good, i think i whined about it in here like 6 months ago. i was supposed to finish this upgrade sometime between then and now, but... i blame myself for being a dad 
Hahaha. So many projects! Easy to push to the end of the backlog. Though, I'd try it with a new server first ;).
Guys, help me with this
Hi, i assume that's on the server side where is stores a version of the files? However on creating a workspace for the branch it copied all the same files over to that second workspace.
thanksssssss
The workspace is the local mapping of server files to your local machine. So yeah, it'll be double on your machine, but not on the server.
right, thanks for clarifying that.
Question if someone is doing development with Unreal Engine. They want to setup Perforce with Version Control but they don't have a dedicated server is there some possible workaround or video detailing such?
well, perforce is just a program, you can run it on whatever machine you want
I see. So I can setup the server on my personal computer?
And have others connect to it?
yes
Ah thanks
when I try to diff againt a pervious version from history windows this exception gets thrown and i cant diff. Any idea what this is or how to fix it?
I don't suppose anyone can help with the PlasticSCM plugin for UE 4.27.2 - I downloaded the latest release for this version (1.8.3), and can't compile my project anymore, it complains The namespace '<global namespace>' already contains a definition for 'PlasticSourceControl'. I tried searching and don't see any duplicate files.
My friend tried cloning the project through SCM and had the exact same issue - he couldn't even open the UE project because it didn't have the .vcxproj files but failed to create them because of this plugin...
Wait, I realized there's another folder in Engine\Plugins\Developer that needed deleting... but now it's broken the project even more and I cannot open it myself anymore... Unable to determine UHT module type for ...\UE_4.27\Engine\Plugins\PlasticSourceControl\Source\XmlParser2\XmlParser2.Build.cs
any ideas?
not sure, but are you using a launcher or source engine? did you put the new version of the source control plugin into your engine plugins or your project plugins?
I downloaded the engine (4.27.2) directly from the UE launcher. I initially put it into the project, but that was causing different issues so I deleted it in favour of the engine plugins (which the README mentioned is the preferred method)
And you built it while it was in your project, right?
(Why not upgrade to ue5?)
I tried to while it was in the project but it failed to build there too.
I'm not at the PC at the moment so I can't try it again to get the error message
We could upgrade to UE5 but decided to start with 4 since we're still new to it
Well if you didn't build it, there's no way anything would work.
But that just sounds like no reason at all... If you were teaching someone how to use windows for the first time would you install Windows XP? π
anyone know if you can get p4ignore to not ignore one specific file?
For example we have a plugin folder inside the project itself.
The issue is when we go to manage + upgrade the files the bianaries and intermediate will not send as its set on the p4ignore list.
notes and examples https://www.perforce.com/manuals/cmdref/Content/CmdRef/P4IGNORE.html
thats for ignoring files / file types I want to whitelist a specific file even if the file types are under the p4ignore list
Yes, I know
Read the page (section rather)
Not entirely sure what you mean by "you didn't build it"? That's the whole problem... it won't build.
I know I can use UE5, but the group decided to start with 4 
The plugin states that it's compatible with 4.27.2 so I'm here to see if anyone knows why it isn't... is the documentation out of date and it in fact isn't compatible? Or am I doing something wrong?
Their documentation also pointed me to this discord, so i assumed someone would be able to help.
Ohh really, so it's a pretty uncommon plugin... I figured it would be used by a lot of people
(And) the few people who are using it probably didn't decide to use a 2+ year old UE version. You guys are just inventing hurdles for yourselves
Anyway, you have to build custom plugins in your project, you can't build them if you locate them in a launcher engine installation. You can generally move them to a preinstalled engine after they've been successfully built, if you really want to
Gotcha, thanks for the clarification - so the documentation is wrong. Not surprising at all
@shadow geyser If something's wrong on our end, please let me know, so we can update it!
( @stable tendon plastic. The other P)
Hello, I did some tests with Git LFS to illustrate with numbers the difference between using it or not. I created two projects in the unreal engine, one using LFS and the other not. Iβm using the unreal engine 5 with the βThirdPersonβ template in c++, with nothing else added, just the pure template. In the first print I show the repository th...
Your problem is not with git/lfs it's with github π€·ββοΈ
If your team is less than 4 people, azure dev spaces repos offers repos with unlimited spaces.
You can use (or not) lfs there π€·ββοΈ
Get free private Git repositories and code collaboration in the cloud. Create Git pull requests and review code with Azure Repos, formerly on Visual Studio Team Services.
indeed!
other than that, either you pay github or gitlab for extra space, or you host your own git server with something like gitea or gitlab CE π€
I really should make a full tutorial on git π€
partial clone or partial checkout or both? π€
Are there any quick and easy backups I can do while I decide on which proper source control I'm going to use? Is just copying the entire project folder and saving it elsewhere enough to bring back a project if I somehow break the original?
interesting, a partial clone is like a shallow clone but you still know the entire history π€ (to some extent, blobless vs treeless)
why the specific focus on "no-lfs"? π€ I don't see anything that would be incompatible with lfs...
As long as you don't need locks and your service provider doesn't get very mad at your large repo, yeah, don't use lfs π
if git had locks outside lfs I would be so happy π₯²
(if git-lfs locking wasn't shieeeet I would be happy too π€ )
universally supported? without an external metadata server? π
Four new unauthenticated remotely exploitable security vulnerabilities discovered in the popular source code management platform Perforce Helix Core Server have been remediated after being responsibly disclosed by Microsoft. Perforce Server customers are strongly urged to update to version 2023.1/2513900.
just saw this
With worldpartition does __ExternalContent need to be included it seems? There were changes I was doing to the navmesh within a level that don't seem to apply when jumping between branches at previous states.
this is going to require at least $how much money do you have left in your pockets/mo extra per user to fix π©
i wonder if their loonix version is fubar'd in any similar way also
because tbh installing perforce on a windows machine is double-dipping in silly sauce
Glad I updated my server lately π
We are a very small team with no funding. I also used Perforce for game jams. Never spent a $ in 4 years
Windows is a horrible OS to start with, using it as a server looks like suicide. I use Debian and my Perforce servers works flawlessly
uhm Perforce users, question, if you start up an account and then download Helix Core (I can't even remember what it is, been a few weeks), is it normal for them to call and email you ? π
I was just stumped by it, I'm not used to that kind of support, At first I thought it was a scam caller (get alot of those...), but it seemed legit and I indeed had emails from him aswell I hadn't seen lmao
Yes it's normal and their support is very quick to respond
The free version doesn't require any account. If you do one it's usually because you want to get paid products
ohhhh
I see, that's cool though. Cheers!
Yeah you just didn't have to sign up for that is all
ahh
I'm designing my project organization with Perforce source control and Unreal 5. I want to stick to the free plan which is limited to 5 users and 20 workspaces.
Do you think this is a good setup or is there a better alternative?
Some info on setup:
I'm a single artist working on one PC
Working local files on PC
Perforce server and depot hosted on a LAN Synology NAS with RAID10 and 10GBe
My situation:
Between 10 to 15 unreal projects per year - all with the same structure and requiring version control for lots of different filetypes as "Project root" shown in image
My proposal:
For organisation/optimsation have one depot per year containing the 10-15 "Projects." The older the depot the less often I need to access it
Create a workspace per "active project" to manage source control for project root (misc files etc)
Create a workspace per "active project Unreal" - each workspace would be mapped to one Unreal project to allow unreal editor source integration
Since I'm limited to 20 workspaces - recycle workspaces as needed. I never usually have more than 5 ish active projects needed.
Sync the relelvant data to local machine when needed, leave on depot when not
NAS/Perforce is being backed up through separate processes
Does this make sense or am I making things overly complicated for myself? Thanks!
Yeah I think that came from not wanting to have an ever growing root with 50+ projects in it after 5 years. But maybe that's just a hangover of having files on my local machine, since these will live on the depot and my local machine will only be pulling what is active
Instead of multiple depots then, one depot but with folder organisation per year
So you think just \depot\projectA\ and \depot\projectB\ etc
It was just a mental organisational thing for me, but you make a good point
π
artists...
Ah yes, I guess I should have clarified that the date is just creation date, if I wanted to update in 2026 I would still update the original project
but yes it gets confusing as you point out
are there any performance benefits to not having one giant depot?
My last 2 years of projects comes to about 4TB in files in total
Ok, so it might still be a consideration for me to check up on π
Nope, just one pc and one NAS
ok, gotta go pick up my kids, thanks so much for your help π
I'm having an issue where my Rider IDE can't compile my project when opening it via the Perforce Work Space I've set up for it, here's an image of the error that shows up. I've configured the setting in my Rider Version Control to have it establish a successful connection to this work space but I don't know if there's anything else I'm missing that's causing this to malfunction.
The simplified version after Laura feedback π
Will do a test local version to try it out
Everything works well in the local test with multiple directories and unreal projects with misc files.
I only actually needed one workspace in the end, not one per unreal project. Each individual Unreal project checks out the relevant files correctly
True. The handwavy version was only getting latest on ProjectA and none of the others, then mostly working from the Workspace tree of p4v from then on
But you make a useful point as usual π€
Hey, just wanted to ask if anyone knows where I can find some case studies on Perforce/Helix Core setups (i.e. p4ignores or typemaps) for projects with accompanying source engine forks, like how the UT files are done.
Your typemap should have +w on DLL and EXE files
But the bane of my existence: cropped screenshots
Anyone know why UE5.3 keeps moving files to the untracked change list? They're assets. We move a box and the asset gets a red link. Doesn't make sense.
do you mean uncontrolled? this was a feature introduced in 5.1
ctrl+f "uncontrolled changelist support"
and this can be disabled (defaults to on)
Can't find the option to turn that off
Revision control in project settings
though I actually see Epic's motivations for this feature, and looks trivial to move them to controlled changelists
yeah that isn't even technically related to perforce at all, that's unreal. had a couple people in here getting confused by it already
on larger teams, binary asset contention is a very real problem
Totally get that, for a small team, I think we can turn it off
I'm beginning to think version control doesn't work well with UE5.3 lol
Unreal 5.3.2: When attempting to Tools -> Revision Control : Sync Content (Perforce)
It always crashes after going through files for a bit,
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000440
It ALSO completely locks up whenever I try to "Submit Content". so messy
I am trying to build source and when I build the UE5.sln file this is the directory for Binaries/Win64, what am I doing wrong?
This is the log
Guys, I'm about to start a new multiplayer project in c++, and I want to create a versioning of each step with git. However, I currently cannot afford more space with Git LFS on Github. Is there a BIG problem with not using it? If it's a BIG problem, I welcome recommendations for free alternatives
either switch to perforce or use azure devops for unlimited LFS storage
thxx
I'm trying to push more than 5GB and it's not working, is there a limit for this in Azure Devops?
ok, with the command "git config http.version HTTP/1.1", I no longer have problems with pushes of LFS files larger than 5gb
Hi guys , pretty new to unreal source control , just wanted to know is** source tree/ bitbucket** good enough ? - (for collab)
or is there anything better to use for unreal ?
for git, there isn't really much of an unreal-specific choice. I use fork
Oh Really , Alright Thanks for the info !!
Laura , Thank you so much.. For explaining !
Got the idea.
Is it possible to delete my UE5.sln project files (after generating them) to be able to regenerate them?
you don't have to delete anything to regenerate them
just... regenerate them.
you can delete them (and you shouldn't store them in source control by any means), but there's no reason to go out of your way to do so.
I had a problem with x2 NuGet Packages which had vulnerable versions, I updated to a new version and deleted the old versions now I am getting errors that files do not exist in the old version folders when I try build my UE5.sln. Can I somehow reset this?
I get this error when trying to build: Unhandled exception: Source file 'C:\Users\Me\UnrealSource\UnrealEngine\Engine\Source\ThirdParty\Boost\boost-1_70_0\lib\Win64\boost_atomic-vc142-mt-x64-1_70.dll' does not exist
Which is a file that no longer exists in a NuGet Package (As I got warnings and updated the versions and deleted the old one)
As I changed the version. If I reinstall Visual Studio that should reset everything right? Or has the changes been done in my engine?
Oh ok thank you
Just curious what about it has given you issues?
Not doubting you, I am asking because I'm working on a doc for migrating from p4 to git and trying to tackle all the most common things people (think) git is missing. I haven't used git lfs file locking yet so I'm curious why it's lacking from your perspective.
OK, another wall of text incoming regarding P4D setup. I've included a lot of info to help deciding. I'd make a thread but it isn't enabled here π
I was wondering if you had some advice on setup for the Perforce server (P4D).
I'm a freelancer who often uses Perforce when working with client studios and wanted that same proper source control in my home studio setup. Iβm currently using Helix Core free.
I work with both game studios as an environment/tech artist as well as motion design/cinematic work for other clients. So, I have a large range of files, from Unreal projects and their accompanying source art such as 3DsMax files to raw 4K video content with Premiere and other content associated with motion design.
My current home studio setup comprises one PC workstation and one Synology NAS, the network is 10GbE (specs below).
I've successfully installed P4D and P4V locally on my PC and everything works fine as expected with a test depot using example project files that I would expect to be source controlled.
There are some downsides to this setup. Firstly, it is running on my workstation computer. Although my perforce is not shared externally currently, it could possibly be at some point. My workstation isnβt on 24/7 and so that could become a limitation. Next, it complicates my backup process which usually runs overnight via the NAS, since my PC wouldnβt be on. Finally, since my work is quite resource intensive, although p4d is probably not taxing on my PC I would rather put the p4 setup on another machine.
I would prefer instead for P4D to run on my Synology NAS and wanted to compare the performance vs local PC install. I know it isnβt the recommended location to store the associated P4 server files but I thought it may still be suitable for my needs, given the benefits compared to the local setup described above.
When looking into installing on the Synology it seems there were two options which people had successfully tried: Using a Docker container running on the NAS or a manual install direct to the NAS. Both arenβt officially supported.
The Docker setup seems relatively straight forward and is quite clean and modular. From a setup perspective it would be ideal. The obvious downside is that Iβm relying on a third party P4D docker image which is often quite out of date vs the current release and of course all of the associated security risks of installing P4 this way.
Manual install has the benefit instead of using the official P4D release files. It does however require some ssh and script setup which can probably be temperamental. Iβm also not sure if or how well it would run on my NAS.
Iβm having a hard time deciding which of the three setups to use (Local PC, Docker Image on NAS or manual install on NAS) and so was wondering if you had some feedback? Again my preference would be for the server to reside on the NAS.
Specs:
Workstation PC: 13900k, 2x 2TB 980pro NvME, 64GB ram.
Synology NAS 1621xs+: Intel Xeon D1527 4 core, 32 GB ram, 2x 400GB NvMe cache, 6x 16TB IronwolfPro drives in RAID10. ~1200 MB/s read and 750~ MB/s write over network.
Network: 10 GbE
Is this normal for perforce? My perforce project hosted on DigitalOcean size is 45GB, but locally my unreal project folder size is only 26gb. Is the perforce server supposed to be double your local server? I'm the only one using the p4 server as source control for my game, and I only have 1 project
I'll be honest, not really read the full thing π
But if you prefer to run it on your NAS - do it!
p4 system requirements for one person are quite modest, the specs of the NAS look like plenty.
As for Docker vs direct install, again personal preference. Whatever you feel most comfortable with. Security not really a big deal unless the server is exposed to the internet, which would be a bad idea anyway. Lots of people running old versions of p4d because the only way to connect is via LAN or VPN.
Does anyone know where the documentation is for the things like .tps files? I'm setting up some extra third party bin files for source control, and I'd rather leverage a system like that than commit the lib files directly.
Every time you commit a new version of a 10MB binary file, your server will obviously grow 10MB... Does this answer your question?
locking and unlocking is very slow because it's an http handshake per file π₯²
If you need to unlock 100s of files, your best bet is to run a CI script to unlock them. One day it will finish π
Doesnβt perforce store the binary diff? Svn does
perforce does have some form of compression but the size on disk is still going to increase the more you submit
space taken on the server is always going to be equal or greater than that of perforce clients
that's wild because other lfs operations are batched...
appreciate the response, will definitely check that out
It's worth knowing that that compression tends to slow down servers considerably too, if you have it turned on/leave it turned on (i don't know what default setting is)
if svn still stores diffs for binary files and perforce doesn't (which seems to be the case) then i don't know why. different strokes for different software developers.
Regarding perforce and binary diffs, I just remembered perforce letβs you store only the last x revisions for a file. Which would mean itβs not storing binary diffs, or that every x revisions it puts the entire history into 1 revision, then binary diffs for next 9 and so forth. Anyways, just my 2 cents
that wouldn't make binary diffs impossible, it'd just have to resolve the diffs before deleting old versions (making the process even slower than it already would be). Not that perforce operates that way, but it still doesn't change the fact that the server is always going to take up more space.
x-post from #cpp
Does anyone happen to have a proper Perforce setup that works with C++? I've tried a few different setup guides, read some blog posts, I've gone through the instructions and configured typemaps.
I always end up locked out of building in C++ without checking out basically everything. It's really annoying.
I really like how simple Perforce is when working in-editor, but once you start editing source and building everything turns into a massive headache.
I have no issues with editing worlds, montages, blueprints, etc. It's just source.
this sounds very unusual. Please include more information : what and where is the error
Seems to be a very common issue, tons of complaints when you google it. It's all permission related errors.
Also, I presume you have ignored following folders:
Binary, Intermediate, Saved
That still doesn't help, please be specific. I'm not going to google for this myself.
you committed build products into source control without realizing what you were doing. that's all there is to it. unless you have a reason to want build products to be stored in perforce, go into p4v, delete build products and commit their deletion, and then make sure you're ignoring them correctly after that
Iβll check when I get home, I have a .p4ignore setup that excludes pretty much everything in the publicly maintained .gitignore which includes Intermediaries, Binaries, Saved, IDE exclusives, etc. Iβm currently away for holiday but Iβll check soon. Thanks to both of you.
Obliteration would be better for things you never wanted to commit in the first place, no?
yeah, though it just scares some people a bit
i prefer not to mention it unless i think a user is definitely past teh beginner stage π
π
I guess this means I gotta buy more storage on github? π€ π₯΄
or is there some way around it?
well I did soem reading and I'm moving over to Azure DevOps π question is, I can't create a new repo because the files are too big for a new project, can i go around this by cloning the repo on github over to Azure?
Ah yes, that was my bad trying to upload the entire project onto Azure.
I'm failing to clone the github repo into Azure though, I've already spent past hour on that link trying to figure out what I been doing wrong lol
I honestly have no clue if I'am or not lol.
Well I just made my github repo public for the time being, I had it on private before not realizing this was causing an issue with importing it into Azure.
yep that fixed it π Next question, is there a way to push commits to Azure without having to use the cmd in github dekstop?
well, lets just forget about github overall then lol. How should I push to Azure then? Searching google makes me more confused than its helping rn
Or can I push direvrly to Azure from UE?
ADO Repos is a feature of Azure DevOps
From there, you'd create a repo
You'd push to that instead of GitHub
i tried changing the remote location to the Azure https link but GitHub Desktop refused to let me push to it giving me number of different reasons why this could be the case
well i also tried sourcetree but then i'm basically just creating another repo on Bitbucket as a middle hand for Azure to clone as to my understanding which also makes no sense
well it forces me to login to it
too late, already have an account on it now, not sure how to logout of the app even or if I have to reinstall. I dont even know how I can add an existing repo on Azure to sourcetree, this is so confusing to a newbie like me. Just constantly filling up space with new ways trying to get this stuff to work just so I don't have to rely on backups. Edit: i'm reinstalling to maybe make this less confusing
well how can i add an existing repo to sourcetree then
i meant how I connect Azure to sourcetree, sorry mb
nevermind, i somehow already have it done
I'm trying to get Perforce set up for my project and I followed a video exactly. I got the server running where I want it to, and have the client on my desktop and set up the workspace, etc, and submit the initial project files. I've confirmed on the server that they're in the depot. That's all good. When I try to connect to my workspace in UE though it says it doesn't map to the project directory. NONE of the videos showed anything about mapping. They just set it up and it worked. What did I do wrong or what do I need to do to fix it?
For reference, I have the server running on my Windows Server VM on my Proxmox host and I have the client software installed on both the server (for testing) and my actual workstation desktop.
nvm I figured it out. The video never once mentioned the workspace folder is the folder you'd be working from. I figured stuff was just copied from your project folder to the depot. Turns out I just moved my project folder location now 