#source-control
1 messages Β· Page 62 of 1
yes I tried doing that there are some instructions in https://community.perforce.com/s/article/13219I have gone through but when I try to check external accessibility I get an error
this is the error: TCP receive failed. read: socket: WSAECONNRESET, An existing connection was forcibly closed by the remote host.
link doesn't work btw?
The usual method is:
- Set your PC to have a static DHCP assignment in the router so it doesn't change.
- Forward a specific TCP port from router to the port you used for perforce on your PC e.g. (from: 1666 to 10.0.0.65:1666)
- Ensure the Windows firewall on your PC has that port open for incoming connections.
in the website it says forward a port to 80
and I created one for 80, the server I used for creating my helix core was localhost:1666
then you should forward the port TO 1666 π
but after I did that I had to open my p4v with localhost:80, I will try to change it to 1666 and see if it works
btw I'm doing this in firewall should I create it in both unbound and inbound rules ?
err I'm not sure.
Forward incoming 1666 to internal 1666, so both you and friend connect to :1666
What's the current setup?
^^^ I wouldn't ever forward a port to 80 in general (it's the HTTP port, so kinda crucial to not be borked)
I vaguely remember reading about using port 80 because some networks (maybe school/uni etc) block access to most other ports. But it's probably not necessary for home -> home.
On Linux/ MacOS you wouldn't be able to without authentication normally. Anything below 1024 has this limitation, as it's usually a bad idea. Most programs thus default to higher port numbers, leaving those to system internals for the most part
You risk breaking things, such as SSL, even if you do manage to bind it
I heard I can set up my depot on AWS and it has a free trial
then I better go for that
sure, you'll quickly run out of space tho I expect
hosting in the cloud is a much better solution in general tho
aws free trial is good practice for free
it was 5 gb for 12 months yea ?
idk, I never used it, I thought it was more liek 30gb tho
do you also use cloud host ?
I host mine on Vultr.com
If I was doing it again tho I'd use AWS or Digital Ocean I think, and use extendable storage.
what about assembla
expensive and not very good
but I guess it means no sys admin so that might be worth it in your case?
or go down the route of Git+LFS which some people in here use, but personally I prefer perforce
Contabo's have great pricing for the storage too
https://contabo.com/en/vps/
Who cares about performance when it's a p4 machine anyway
it is my first experience and I'd rather use AWS as it's free, can we host our depots on any cloud provider ? or only those which support perforce ?
@hoary lichen AWS has official support, but if you know Linux setting it up yourself is quite easy
I couldn't figure out how to do the AWS setup, but DIY'd it pretty quickly π€·
I mean if a host provider doesn't have perforce support by default can I still kinda set it up there ? or they won't allow it or sth
No host will 'have perforce support' they give you a VM and you log into it and install perforce yourself.
Personally I'd recommend Linux even if you're a linux noob, PErforce on Windows is more difficult to setup.
I generally use Ubuntu and make sure you follow the latest guide from official Perforce site, some guides out there are outdated and make it way more difficult.
https://www.perforce.com/manuals/p4sag/Content/P4SAG/install.linux.packages.install.html
Find the section called "For APT (Ubuntu)"
oh I see thanks a bunch!
you can also trial it locally by installing VirtualBox, create a small VM and install linux on it, then run thru the guide
if you want some practice π
Your router...
I heard it can be done both in router and firewall
you mean you heard it must be done in both router and (windows) firewall?
because if so, yes
actually maybe no - usually windows firewall is lax, I never have to force open anything in windows. might depend on your local settings
@hoary lichen your firewall might block the traffic forwarding.
Your router will create the port forwarding in the first place.
Setup TL;DR: You ensure router has forwarding for (external IP):1666 to (static internal IP):1666. If this doesn't work, check firewall isn't wrecking it (most probably isn't).
The routing is basically "my computing device at address $IP is ready to receive internet traffic to port $external_port, so please forward it to $internal_port, where that service is hosted".
It might be helpful to look up relevant tutorials regarding networking in general, instead of wacky P4 specific ones.
Hi guys, how do I connect with my friend on perforce to pull and push? Do we need to rent a server
Hi, is anyone familiar with setting up Perforce on an AWS server that can meet and walk me through the process? This is my first time setting it up myself.
Hey all, really trying to split a single Unreal Project into multiple GitHub repositories. Currently the only way i've figured out how to do it is by renaming the .git to something unique and using git --git-dir=.git_path command in terminal for commands, then using the .git/info/exclude file for ignores. I'd like to still be able to use the desktop client though.. Am i just out of luck? π
I've also seen submodules, but the repositories need to share root files so that's not a solution unfortunately.
define aws server, do you mean using k8s to scale based on load with persistent storage or a regular instance
I have no clue what k86 is. I see AWS EC2 mentioned on the Perforce site.
- Consider using a VM from somewhere other than amazon, it will be a whole load cheaper. But if you are talking regular EC2 linux instance, just follow the linux install instructions?
k8s = kubernetes: https://kubernetes.io/
thanks!
Even with the AWS free tier?
Plastic SCM has a free tier... Of 5GB, good luck doing anything with that, if you even look at Quixel content for too long π
have you looked at the specs of AWS free tier?
Its like 1 vcpu, 1 gb ram and I think you still pay for storage
you get 30GB storage too
VM specs are probably ok if there's just a couple of people on the team, 30GB is probably too small
1gb of ram is likely to be an issue
depends how many files you store, as I say for a small team / eval project it's probably ok.
Even if you run out of ram it just slows things down.
Perforce recommend 1.5kb x NumFilesStored
thought it was more than that, tho I havent done much with perforce for several years. They just arent very indie friendly. And TBH git-lfs works surprisingly well for smaller teams.
Currently on DO who support storage upgrades, the US$5/m tier is working OK for me.
Friend I'm building the game with is moving in though, so just going to set up a NAS/ media server to host the P4 stuff too.
Re: AWS, IIRC the storage is extra? Their billing is super convoluted, especially as you add things
Yup this is my point, DO/vultr/contabo etc all do much better configurations for this use case
I believe people flock to AWS due to official P4 docs recommending them. They have some sort of automated set up, that I failed to perform.
Which is funny, because in my last role I did all the DevOps duties initially. Was able to setup P4 in a DO Linux box much easier than the AWS setup wizard.
I was half tempted to figure out how to Dockerise the whole thing, if possible. Would solve a few headaches, but it's a one-time process for the most part, so not worth it for myself personally.
+1 on Contabo's pricing though π
Hi ... could you please advise ?
I can't stash.
I am trying to rebase because I can't pull either, and can't push ...
Same rebase message ...
Well ... I just created another copy and pasted my changes ...
sorry but one more question π
So I deleted some BPs and they don't appear in the UE interface anymore, but when I try to rename:
and yes the BP_PlayerHud.uasset (which have been deleted) is still there ...
I tried to delete played_hud in UE and chose replace with player_hud_2, which kinda deleted player_hud from Ue, but not from the file system
is it ok to remove them manually ? is it something that is required to do ?
right click on the root folder in your UE project (Content window) and pick Fixup Redirectors @mellow scaffold
thanks !!
did you leave engine open?
Nope I had quite a few modification, commited but not pushed because something was locked
And then this happened
Hello, I have a rather troublesome saving error using GitLfs and UE5 when source control is activated:
when I deactivate it, I can save ... but that defeat the purpose ...
any idea why this happens and how to fix it ?
it's not everything. It seems files that I have been working on previously ... Tried to remove the lock before and didn't helped π¦
Anyone use there own Gitlab Server for Large Unreal Projects?
ye
I get this odd issue when I try to transfer the game between my primary computer and work laptop. Some textures (larger ones, 2Mb+) just turn black, and if I update the path to it on one computer, it turns black on the other one. They are in identical paths relative to each other but it appears the path to the assets is with relation to the engine or something because it goes all the way up to the root GitHub folder? Like ../../../../../../Git/GameSourceRepo/Textures/Blahblah instead of just ../../Textures/BlahBlah
Is there some kind of source control flag I've forgotten or will the assets act like this? (older engine version, 4.22, newest GitHub Desktop used for syncing)
Hello everyone, first time setting up Perforce here on an unused Mac Mini as central server, and I'm trying to move depot to shared local network (it has much larger space)
And I also have a couple Windows machine that will be clients
After lots of blood sweat and tears, managed to get it running on Mac, and setup P4V on my Windows PC. But my problem/question is about "moving depot storage location to shared network"
Can't seem to point it to right direction with correct absolute path
Also made myself admin on this Windows machine and tried to set tools>admin>storage as:
X:\Path (mounted drive on Windows)
\\DRIVENAME\\path
\\192.168...\\Path
/Volumes/Path (apparently MacOS thing)
afp://192.../Path (also this)
I can access to all these (except afp) just fine on both Mac and on Windows, and I thought they're all treated as absolute paths
And I just realised only the first try worked (kind of) but still detected as relative path so now I have a X/ folder where server is installed in Mac
Does anyone have an idea? Thanks
Oh and following the warning I got while moving - I also copied all depot-source files manually, still getting error except for X:\ config, \\DRIVENAME doesn't give error but I don't know where that's going
I'd highly recommend using local storage only for perforce. I used a high performance nas once and we ended up getting a lot of corrupted files and lock problems.
IMO, buy a bugger HDD or SSD for your Mac mini.
Remote storage works ok for Archive depots
That said, you should be able to make it work following method 2 from here: https://community.perforce.com/s/article/2559
Set the depot path to be the path on your Mac to the share on the windows machine, something like this:
Map: /path/to/remote/share/...
@tidal harness
Thank you very much for the link! I still had lots of problems with permissions but finally, finally it's working
MacOS was saving tmp files for commit messages in /private/tmp which failed with permissions error, and once I fixed that I had problems submitting becase P4D didn't have permissions to mounted volume
I gave full disk access for p4d in MacOS settings, and full permissions to current user for /private/tmp and /Volumes/Public/Path with sudo chmod 777 path
Now the final issue I have is I think the case sensitivity, didn't know where to set it up during installation so now I have /PerforceServer/README.txt on my Windows but perforceserver/readme.txt on shared drive when submitted
I'll try to change that or just wipe everything and start over... I want to document this anyway :D I don't want to go through it again
I think it's possible to change post install but it's a bit fiddly. Easier to create a new depot I think. Definitely want case sensitivity off.
Oh wait what do you mean? It's already off but why should I want that π€
You want the server to be case insensitive otherwise you can get problems if you have windows clients and someone on Mac/Linux submits two files with the same name but different case.
If it's already off then that's good
Hmm OK thanks for the suggestion! I was going to try and change that to sensitive but I'll go on with it and try then
I assumed having insensitive will be a problem since I create a README.txt file but it shows up as readme.txt on server when I submit (for UE assets MacOS couldn't find it?)
I suppose it has some other method to align those, that's great! Let me try with a new user on a new machine
Thanks a lot for the heads up on corrupted files and lock problems too! I'll try to watch out for those
I agree it could be more straightforward with external drive on Mac, but I felt like I need to try network setup at some point so wanted to figure it out :D I'm glad everything seems to work now
You might be ok. I think at the time we had 15 people all pulling and pushing too it and it couldn't handle it. Just failed in weird ways. I swore never to use NAS for perforce storage again!
Haha yeah for now we're 2 so we'll see. But I'm keeping those potential issues in mind so at least I know what to blame in that case :D
Also dropping a note here in case it helps someone else
I pulled out my hair over a silly error for ~3 hours, Operation 'rename' failed. on Windows
https://community.perforce.com/s/article/3191
I wrongly assumed that'd be something to pass as argument during submit on P4V, but turned out server doesn't have typemap config by default
Something about Windows, I just forced every possibly text content to use text+C, which apparenly will create an archived state for each revision (https://www.perforce.com/manuals/cmdref/Content/CmdRef/file.types.synopsis.modifiers.html)
Threw in some notes here with a dirty script: https://gist.github.com/iinfin/6d496ef7ebc32950f21c14c6e7af1de5
To be organised/streamlined later
There is an epic perforce typmap guide fyi
Yes I included that example file as well at the end, but it didn't cover all txt files, which caused me some headache on Windows
For now everything seems to be working, until another issue comes up :D good to learn though
I've never heard of that rename issue before
@unborn imp Hi there you both need to have perforce licenses and be connected to the same project - there's tons of documentation from Perforce on how to make that happen and connect to Unreal!
Hey everyone - has anyone ever experienced a bug with Perforce / Unreal where Blueprint assets submitted by one person show up in the level on another machine but their empty and the connection to their static meshes seems to have been lost?
@idle pagoda Thanks for the reply! The problem is, we dont find any tutorial on how to make that happen. We are searching everything, but dont seem to find anything about that specific problem. Can you link me a tutorial where this is shown?
Okay I'll have a look for the ones I'm thinking of - just might be a few hours as I'm about to start work
Thanks, you are helping a lot!
Well hopefully I can find it!
That sounds like what happens when the names of components are changed in the underlying C++ constructor.
Could also be BP corruption through Hot Reload.
Oohhh what's Hot Reload? ((Apologies, I'm very new to this!))
It's what happens by default if you compile your C++ code with the editor open. Unfortunately it is notorious for causing Blueprint corruption. (No need to apologise!)
https://horugame.com/dont-use-hot-reload-in-ue4/
Live coding is basically the much safer successor.
Thank you for the resource! I'll start digging in and hopefully with a few experiments will get things working again, cheers!
hi. mobile-dev ue4 source is for what? and if i download 4.26 chaos its enable X86-64 android supporting too or just i have to download 4.26 for enabling this?
This is a weird issue. On PC A everything works fine, but when setting up the repo on PC B some random textures appeared as black and had to be re-imported. Diffing the files (Right=Original, Left=After reimport) showed that all spaces were replaced with NUL signs. Can anyone help me figure out why this occurs? Is it a setting in Git or Unreal screwing something up?
Need some help regarding svn in oracle anyone free to talk rn?
Is there a nice tutorial guide for collaborating with git? I managed to create repository and send invites but i'm not sure how to do stuff. I created folders in my dev folder but it doesnt show on github although it does say success for the add.
Its the first time i'm using git in a team for a game jam. I've only ever used it on my own and not much, just for a jam that required the game was shared opensource and for tutorials.
are you using LFS?
I haven't configured LFS but isn't the limit there pretty large? The textures are around 2Mb. And would LFS affect the contents of the file? I'm thinking more in lines of encoding right now, that maybe my Git/Unreal is configured for incompatible charsets
Hey everyone π
I want to get started with source control. Do you guys have any suggestion for the easiest to set up? I can pay for a service if needed.
Easiest to set up / best dev experience
I just don't want to set up my own server so I would pay for one if I need to
@flat summithave you set up a .gitattributes file in your repo? I had this problem once with png images getting corrupted, the gitattributes tells git to always treat some file types as binary and never as text
Sounds like what I've been missing, I'll try it out as soon as I can
If you are working as a single developer I think "GitHub Desktop" is easiest to set up, free, and has effective no size limits on assets for Unreal projects (there should be a template when setting up a repo I think, just make sure you don't sync binaries etc)
github desktop is not a repository hosting service. It's just a git client. If you're only working with your repository locally that's fine, but it's not a hosting service.
github (and gitlab, and Azure DevOps, and a number of others) is a repository hosting service (which does have limits depending on what you pay), which you can use with any git client (github desktop, sourcetree, fork, etc). The client you choose should have no impact on the size of the repository.
I've been running a Perforce local server on a different machine for over a year now - I was solo and mainly did it for checking back on previous commits - but I need to look into renting a cheap perforce server for obvious reasons and for onboarding additional devs -
One of the things I'm less clear on is the process of integrating large, non-changing files, since the size limits on perforce servers are pretty small - (my project files include about 60 gigs on the mainline) -
copying the content folder seems a bit hacky; what is the best practice for this and do you recommend a particular reference?
Size limits are small? A good rule of thumb is to have enough storage for 2x your expected project size. So if you expect to hit 100GB then use a server with a 200GB disk. There are no size limits in perforce besides the disk space on the VM.
If you never change a file version it is simply stored on the server as a single file (generally gzipped but not always).
Also worth noting that if you don't care about keeping old revisions of certain files you can set their filetype in perforce to automatically purge old revisions when new ones are submitted.
I personally don't like using that feature too much, but it's useful if, for example, you're storing editor builds in perforce - no need to keep old versions if you have all the code required to build at that point in time anyway.
Or if you just don't care about keeping the full history of your project.
It's a whole new headache, but if you are thinking your team will stay at 5 or under people, you could save the money and use the unlimited storage (with git LFS) with Azure Devops, once your setup it's fairly smooth sailing, the biggest issue is making sure you don't cause a merge conflict by working on the same file as someone else, since there is no solid integration with UE, but there are definitely work arounds, and you can still lock files, just not through unreal
even if you go over 5 people, its like 6$ per person per month which isn't bad (IIRC)
I really want to stay with Perforce though - I'm less likely to have a merge conflict, actually I should have mentioned this - I want to be able to to work on the project from different machines
(without remoting into the same machine)
I am having issues with perforce and ue4 right now any one wanna tell me how stupid im being lol
why does it keep doing this and over writing my files every single time i try to pull from depot
You seem to be editing files without checking them out.
Make sure you've enabled perforce in the editor and that you're clicking the checkout button rather than the "make writeable" button when prompted.
if you know you have local file edits right now and you don't want to lose them, then
- right click on your workspace Content folder (go to the Workpace tab on the left)
- select Reconcile Offline Work
- add everything it finds to a new changelist
- right click on the new changelist and hit "revert unchanged"
you should be left with a changelist that contains all blueprints/levels you've actually modified/added/deleted compared to the server
Someone posted a link to this company the other day.
VPS300 for example would probably be fine for your project and is crazy cheap at β¬4 per month.
https://contabo.com/en/storage-vps/
@cyan jay this is fine but I still don't know the best way to sync the large, non-changing files, like large textures, that don't need to be in the source control - manually copying them or syncing from marketplace seems hacky
Just add them to Perforce. There is no alternative worth pursuing.
Hey, just a quick question: I want to install perforce now and was wondering if getting on-premises hosting as opposed to AWS & Azure (the other options provided by perforce) will interrupt work if the server is offline - I'm assuming it does, but just need confirmation.
Specifically, I want to collab with my tester on my project & want to host the perforce on-premises on my computer. If the computer is off, he cannot submit changes unless I have the server turned on on my end - right?
But then again, he can, as soon as I turn it back on - right? I've read up on it, but most docs/vids address macro-case comparisons involving big companies/studios & a static setup through LAN (we'd "simulate" the LAN online really)
If the server is OFF then no one is able to checkout files which will make it almost impossible to collaborate effectively.
He won't be able to pull the latest version down either of course
@cyan jayObviously, I don't even know why I asked (was hoping for some wizardry or something) π€¦ββοΈ π Thanks for the answer!
Yeah server always must be on. Same for if you use Git LFS workflow.
I was just thinking that maybe we could do it asynchronously somehow - he works and as soon as we get together on discord/something, he puts the changes up. I'm the only dev, he's just testing stuff/making balance changes in data tables and whatnot
Not really possible without a server I'm afraid. If paying for a Perforce VM is an issue, then I think Git LFS hosted on Azure is kinda free for small teams. I don't really know much about Git tho.
That Contabo link I posted just above is only β¬4 per month tho π
Perforce is free up to 5 users, but I don't know about the hosting itself... I don't understand if you pay that separately or what π€·ββοΈ
yeah there's no hosting - you need to rent a virtual private server from one of the many cloud providers.
aham... And perforce only supports those two then: Azure & AWS (from what I read up here)
no you can host it on pretty much anything
oh...
damn, doing everything myself just keeps getting more & more complicated π Now I need to learn this crap too π
yes π
fwiw I setup Perforce on a VM running Ubuntu. It was pretty straightforward and is basically zero maintenance. I log in every few months to install security updates etc.
lots of people here use Git + LFS instead of Perforce, which requires less setup, but I don't really know much about the Git side of things.
I've looked into it, and even tho the setup itself is less work, it tends to get tedious for every change (bashing in info, making sure it's up/bla bla)
personally I have had many problems with Git and team workflow so I would never use it, but each to their own!
So all in all, i'd rather pay some than use GIT honestly π
Ok, so hosting the server on my machine and inform my coleague whenever he can submit changes won't work? I mean, we communicate daily.
I need to inform him whenever I make "pathces" anyway & explain what he should re-test/look into so we don't really need to do it "live".
you can try it but its gonna suck for him
you're gonna have to learn how to install Perforce anyway, might as well do it on a VM. Installing perforce server on Windows is more error prone anyway IMO. Also have to learn about forwarding ports on your router, firewall issues etc.
Just my 2p worth π
hosting the server on your own machine will work "OK", it'll be a tiny bit slow for them and you will want to leave your PC on 24/7. it'd probably be much easier to do that than learn linux for a VPS if you're new to that too, but long-term a linux VPS is definitely a nicer solution overall
@woven sluiceThanks for the info, I've never used Linux in my life & learning that at the moment isn't the best idea since we want to release an early-access - demo to see how the game might do - sometime around christmas so, maybe in the future, i'll probably just go with the local one for now π thanks for the answer!
good luck - it's a shame there's no simple solution for this out of the box with Unreal.
looks at date
christmas 2022 i hope 
nnnope, π I'm polishing the damned thing :P@woven sluice I stand by my deadlines, not the procrastinating type at all π
And It's just an early access demo, maybe nobody cares, I drop it and start another of the 195810 ideas I have lol
so you have a nearly finished prototype and you've never had it in source control π±
dude I'm having heart palpitations on your behalf π
When u develop solo, source control isn't really a requiremed in my experience. I usually cook things for my tester and patch it like I would for any other user
I do have 2tb of backups+branches tho π
I delete them every now & then so yea π I'm a total amateur tho, so whatever works, works π€·ββοΈ
well you're finally getting on the right path now I guess
we all went through that stage for a bit when we started
Yeah 100% - get it done
(at least, hobbyist-at-home types do)
I have 6 minigames released and another one i've worked 1.5years on 16+ gameplay hours, edutainment rpg/tbs on steam, so I wouldn't quite say I'm at the beginning but meh, doing my best to catch up while trying to actually produce something meanwhile π
Hello all, could someone help me out and let me know what the green icons mean? We are using Perforce as Source Control and I have never seen them before
Accurate statement or just some marketing BS? I use GIT for my daily web dev job, but it isnt great for Unreal because of the 'other stuff' that isn't text. What is an adequate source control used that is good with the assets and blueprints, etc?
perforce works fantastic once you get over the very long and painful setup and learning period, but is likely to remain a huge pain in the ass for other reasons... i.e. $$$$ as your team grows. Ignoring money, there is a reason why lots of big studios still use it (e.g. Epic)
lots of people here and everywhere are happily using GIT though, with LFS of course. without LFS is pretty much an immediate death sentence. GIT might be a shallower learning curve for you if you have lots of experience already. Pick your poison.
perforce is also a lot better in a studio
eh, my perforce server is 7500 km away, works fine
I've generally been fine with a server 3k miles away but have on occasion felt some pain from it.
With a distributed team you'd ideally set up proxies to handle geographic distribution, but that's really a big team with lots of money thing.
Does anyone have suggestions on relatively cheap source control for a team under 10? Was looking into plastic, but it gets pricey for a hobby project when there's 7 people :/
Hi, I'm a beginner of Perforce Helix Core(actually game dev), and I have some questions. I just build a helix core server(p4d) in my VPC(powered by vultr), and p4admin in my Mac canβt connect to my server. I guess SSL is a reason of this problem( because of this article https://www.perforce.com/manuals/p4guide/Content/P4Guide/security.ssl.html), but canβt solve it π.. Please let me know how to solve this problem if you know that.
- VPC OS: Cent OS 7
Did you open the port on the Vultr firewall?
@cyan jay Oh I miss that π. It works now. thanks for your advice!
github pro is $4/month + $5/month for 50GB of LFS
I'd just set my own git server up if I were you - it's very simple and you can find HDD-based VPS hosting that's around $5/mo for 512GB or $10/mo for 1TB
(the git server I use is called gitea, free and open source)
I'm running the BFG remover for the first time, wish me luck :P
don't accidentally delete your everything π
go away!
Hmm, I keep hearing that git's LFS is a massive pain to deal with, that was not your experience?
how is it a massive pain?
there's probably a perforce salesman behind that - no trouble at all for me
Just what I heard from some other devs that tried it π Gonna check it out, thanks!
how is it possible that "stash #2" is 4:04 am while the other two #1 and #0 are 4:08? I remember these stashes and I'd made them in order i.e. 0, 1, 2
Hello. We use source control ( Perforce to be exact ) on our UE4 project. Even after choosing "Run Without Source Control" option, every time we want to save a change this pop-up appears:
How can we disable Source Control so that we can save our changes without this prompt appearing?
Thank you
Why would you disable source control?
The prompt appears because Perforce makes files read only by default unless they are checked out.
Nvm, found a solution. Thank you anyway! π
You can also use the "allwrite" option in your workspace! It makes everything writeable.
no.
I don't know what your solution was but for the love of all that is good and holy: use the dialog and get used to using source control properly
I mean it sounds like they probably need some ignores
You cant diff levels easily, have to basically pick one
Yeah pretty much. Make sure you task the people who tasked you into doing this to fix your team's work practices going forward 
nope, that literally just stops perforce from making controlled files read-only. If you do that then you have to manually check out and/or manually run reconcile to figure out which files have varied from the server still. it's a terrible idea for perforce users. so yes you may continue to retain and broadcast your existing complaints about perforce π₯³
When source control like git deletes every single asset in the project, are there any other causes other than not using git lfs?
I upgraded my project to using source control and everything got wipes. After trying to revert the changes, I got the files back but now the project file itself is completely gone on all devices. I have already lost hope and created a new one and git bashed it and everything but there's so much anxiety now because I don't know the exact reason the first case happened
Hi π I'm having some issues with the SVN support -- No matter how I check the "automatic checkout" checkboxes in editor settings the editor always prompts me for checkout on asset save instead of checking it out automatically :/
Is there anything I'm missing?
usually if you save too fast, it will not checkout in the background in time
Even then, when I disable the βprompt for checkoutβ option it still prompts instead of showing the βNeeds checkoutβ notification. I donβt think the settings actually affect anything at all π€
Iβm on 4.27.1 btw
Yeah after doing some messing around, I realized I havent used git bash too so yeah a lot of things that couldve caused it probably
It's extremely rare that Git really loses any of your work -- especially after it's been staged and/or commited π
Digging a bit into how git works and learning to use the git command line is one of the best ways to make sure you stay on top of what's happening in the repo
It seems I just slightly misunderstood how the autocheckout works, it seems to be working fairly consistently now π
Hi, I need some help about helix core. First, what is different between "superuser" and "admin"? That are same notion? And If superuser(or admin) forgot his password, how can he find it?
Hi. I'm using Perforce and have added 8GB of marketplace assets to my project. Now I don't want to mark them all for add one by one including the referenced assets. How can I only add the ones used in my lvl along with their references (materials,etc)?
- Filter by "not used in any levels" in the content browser
- Move to a different folder
- Mark folder in p4ignore
Thanks!
OK once and for all, what's the exact method to untrack a file in Perforce
while keepign a local copy
I think the only way you can do that is to make a backup of the file, mark it for delete in perforce, then copy your backup back in.
When you submit that to the server, anyone who gets latest will have that file deleted locally too though.
You can also do it via p4 command line but you probably don't want to get into that π
Hey, quick question about the built-in diff/merge tool, there's so little documentation. Does anyone know why the merge tool doesn't actually save the BP? Accept Source/Accept Target/Finish Merge don't appear to do anything. I'm running external from command line through git
Thanks! I guess that's why I wasn't able to Google a satisfactory answer, because there is no satisfactory method π
The question is - what file is it you want to untrack?
Usually anything you don't want to track is already excluded via P4IGNORE
sorry to bump, anyone know anything about running this tool from command line? not sure why all the mystery for such an important tool
It were some binaries that slipped through because I didn't define them properly in P4IGNORE. Nothing big
I need to migrate my local perforce server to a digital ocean one - so I need to first setup my virtual machine there, install p4a on it, and then go from there? is this a good reference? https://baemincheon.github.io/2021/09/10/perforce-server-setup-with-digital-ocean/
and here is what I found for migrating - so I guess in my case, it would be moving from windows to linux https://community.perforce.com/s/article/2538
Yep both links are good for what you want to do.
Of course, if you don't mind losing the history so far, you could literally upload your local files to the new depot instead of following the whole migrate process.
I might go that way though I really don't want to - I suppose I could keep the old depot and fire it up if I wanted to look back -
@cyan jay How I am supposed to handle large files that I don't need to keep versioned but would obviously need to be available to any collaborators? Example - I have 8 gb Twinmotion materials, which I won't modify, and if I did, would make a new material instance and version that
but if I didn't include them for adding, someone wouldn't be able to open the project - I can probably get by this if I was certain that signing into the same epic account would ensure it downloads the packs from the epic store, but this too does not seem optimal
Usually you would just add them to perforce.
You can set the typemap to only keep the latest version if you want
ugh, my content folder is 106 gb
and I'm sure not even a 10th of that is what I really needed versioned
if that's what you need to work on the project, then that's what you need to checkin π
you can clean it up first if you prefer
couldn't I just duplicate the directory on another computer
not sure what would happen if you connected it to a depot after that
well, if you really wanted to do that then you could mark those directories as IGNORE and copy whatever you want there
I don't know why you don't just want to add to perforce tho
why make your setup workflow more complicated?
because it's $40 a month for hosting then
it's a space/size limitation on a hosted server
I've not tried these guys, but someone recommended them recently. $8 a month for 700GB!
https://contabo.com/en/storage-vps/
lol well shit
If you want to work with collaborators, having everything versioned and in one place is highly recommended.
that's why I'm doing this
I live in Florida so germany is less than optimal
but the price/config is good
well, it's up to you of course, but I'd strongly recommend putting all the stuff required to build and run the project into perforce. As soon as you have multiple steps there's more chance for things to go wrong.
no, I agree with you - it's just the logistics now - ugh I hate this part because i know it's going to take all day to figure this out but it should only be half an hour
paying for NVME is totally overkill right? at least for VC on unreal projects
yeah 100%, HDD is fine, if you only have a few people the main limit will be bandwidth
er, well a good rule of thumb is pick the max project size you think you'll need and double the size.
So if you think your project may be 200Gb in the future you should get 400GB storage.
memory and CPu are more than enough
yeah but the only region they have for that size is germany
good point btw - i thought I might be able to add the space later but you are right, it makes more sense to get it locked into the VM at the start
does this provider allow you to attach additional storage?
I didn't see a spot for it
in their faq I have a VPS NVMe with an additional NVMe Storage Add-On and I want to upgrade to a larger VPS? This is possible via the Customer Control Panel, please head to "Upgrade VPS" (available in the "Manage" menu in the administration of your VPS) to see your options. Upgrading your VPS will also upgrade your NVMe Storage Add-On accordingly unless you choose to cancel it in the process. As an example, upgrading your VPS S NVMe with an associated NVMe Storage Add-On (adding 50 GB of disk space for β¬1.00 / month) to a VPS M NVMe will also upgrade the NVMe Storage Add-On (now adding 100 GB of disk space for β¬2.00 / month).
I'll just chance the 200 gb and see, worst case I just contact them and tell them to switch it now before I set anything up
@cyan jay what's all this helix core stuff - I've never paid perforce (i'm not about to start now, I know it kicks in at like 5 people) can I disregard this license stuff?
helix core is basically the official name for perforce software. you don't need any license until you want to create the 6th user.
It's kinda odd with P4 no one goes through like, parallelism or threads which helps sync times so much, from the tutorials I found.
Though is there a way to enable compression on file types that may benefit from it?
I've only accessed perforce from one machine, so it's possible I don't have everything in that depot that should be - can I just wait until I download the current files on the new machine and if it says it's missing them, just mark them for add on the old one?
Why not π€·
You could also open P4V, mark your Content folder for add, and see what the new files are
yeah - Reconcile Offline Work in P4V is also good for this
I need a "The incantations of P4 for people fluent in Git" cheatsheet haha
I must be using more than I thought -
WizTree is a handy tool if you're on windows for exploring the size of folders
Oh, yikes haha. Have you set up the source maps? UE wiki has mappings which define how many revisions of certain file types are kept around, which might help you here
I think you mean p4 typemap π
Where the hell are all these depot files - there's not even a gig here
Ah I did mean the typemaps, but I set mine up using the ones provided in the UE wiki :)
don't worry about the dropbox, that's not a thing for much longer, I wasn't using dropbox as a source control agent
it was mainly in case the local perforce machine got incinerated
Yeah, take this one for example, binary+S2w means this file type is Binary, keep the latest 2 versions, and make it writeable on disk all the time
Good for binaries that are constantly being rebuilt in this case
I'm confused - where are all these files actually stored - 281 mb in versions makes sense, mayyyyybe
but the initial commit should be huge
it depends how you setup perforce server
god only knows
I'm trying to figure that out now
where do I actually see where on the computer the depot is stoerd
Local depot mappings should be it, if you open P4V it should list them... Somewhere.
So you have nothing else happening on D right?
no i do i think
Install WizTree π
or in P4V, rightclick a folder and choose Open Command Prompt here, then type p4 info
check the Server root field
343GB is the total space you've used on the disk pretty sure, not how much P4 is using up
But yeah, WizTree it up!
I think you are right
Perforce client error:
Connect to server failed; check $P4PORT.
TCP connect to 1666 failed.
The specified class was not found.
PS D:\Perforce>```
Btw, I'm really glad you two are here right now
there's so little info/explanations on this stuff
I'd just run WizTree on the D drive first up TBH
@cyan jay you seem wise in the ways of π Force, if I wanted to move from a DO instance to a Contabo one for example, can I do a live replication, like set one up as a workplace, then eventually promote it to a depot instead? Or what's the best way to move the remotes elsewhere?
there will be some plugins that are installed to the engine but that's handle via epic marketplace right - is there a way to have it know which plugins to download to the new machine?
Try downloading the project, because plugins are actually specified in an INI file unless you did some weird/ manual stuff. Gets enabled when you open the project as a result... Most of the time.
No, you will need to follow the migration guide like @runic summit posted earlier:
#source-control message
It's a bit fiddly but the only way to do it to preserve history
If you don't care about history you can create a new perforce server and upload your content to that from a workstation.
sorry - in your case this guide is better and a bit simpler
https://community.perforce.com/s/article/2558
assuming DO and Contabo are both Linux
Oof ok there's a bit to it, but that seems pretty doable! Thank you.
That's right though, likely Ubuntu for both as it's easy and well supported by just about everything.
ugh, now I have to remember how to ssh into something from windows
My way is to open Windows Terminal in the Ubuntu WSL profile, and add the SSH command into a bash alias lol
powershell works but the damn password they provided isn't working or i'm using the wrong one
powershell isn't clear when you' copy' something into it or not for me
: Permission denied (publickey,password).
the irony of being able to view the system logs for my failed password attempts but not being able to login via ssh
check pass; user unknown
On Linux at least, the command is ssh user@ip:port
i'm not sure how contabo sets it up, if I need to provide that or not
a bit convoluted
they provide this, so I'm typing ssh root@ip it connects and asks me for the password, and I copy and paste the one listed there
You would, it's likely defaulting to root or admin
Hmm I'd go SSH for auth, much nicer
I'm trying
Is there any IP whitelisting?
dont' think so, now the log actually says failed password, so at least it's not an invalid user
weird
I changed the password and it worked - i was using the default one contabo provided but it never accepted it
what's the difference between vps and vpd? vpd you are running on an actual machine, vps you are running on virtual machine on some hardware that might change?
or you can't change out components easily on a vps?
sudo: add-apt-repository: command not found wtf is this about
wow, they didn't have the basic commands installed
ugh I hate command line
how the hell do I change the typemap, it just gives me a list but I can't type anything
I've never used a VI editor before, had to track down a tutorial just to navigate it - but does this look right?
hello !
I don't know which Character Encoding to us eon my new Perforce server (this wasn't asked before)
should I also check the box below ? maybe that will avoid issues if some teammates choose another character encoding method ?
I would recommend to use nano much less painful to navigate if you're not text editor expert tbh
I'm not wrong in assuming the spacing won't matter irtfght, as long as they are new lines
I think it's fine
shouldn't change anything
oh well
actually
I think this is an issue
yeah i'm getting syntax error, i'm manually adjusting the spaces now
No worries, it only has to work once
I have this same question - I'm going to default it but if you find something, let me know please!
fuck I hate doing this kex_exchange_identification: Connection closed by remote host
Can someone please tell me why I can't connect o my perforce server to run commands when the service is RUNNING in windows and I can connect to it via the visual clients - I'm getting Connect to server failed; check $P4PORT. TCP connect to 1666 failed. The specified class was not found.
connecp4d
If anyone searches this and finds out, I figured out how to use p4 commands in powershell when you are running a perforce service in windows you still have to type in the port number, IN BETWEEN the commands apparently
p4 -p 1666 info in this case
you can also right click in P4V and choose Open Command Window Here.
This ensures the current session settings (P4PORT etc) are set correctly.
then you can call p4 info etc without manually specifying that
Thank you! that's very helpful
Where exactly?
right click a file or folder in Workspace or Depot tab, it's near the bottom of the context menu
ah thank you!
i'm assuming the verify command will take some time right?
it doesn't say anything
d:\Perforce>```
Note to self- had to use p4d -r D:\Perforce -xv for validating
I need to worry about case sensitivity going from Windows hosting on perforce to the Linux based one right?
errr I'd suggest making sure your linux server is set to NOT be case sensitive so it matches Windows
shit - um I followed those directions I can't remember if they said it or not but I remember reading it
how do I check?
Btw, does this make sense - the helix docs say to copy over everything from the depot this way
shit, it is case sensitive, but it's brand new
WHY did this guy choose case sensitive, if his tutorial is using WINDOWs? this is so unclear @cyan jay
And how do get all these files to the folder on the remote - win scp seems like it could work but when I went to copy, ALL of this shit scares the hell out of me
@tardy venture can you offer any advice?
Hiho i try to crreate a source controll with git (Github) to share and work together with my tea on my game. I'm looking for someone who already has some experience with it because I get some error messages. I don't know exactly what and how much I can / may load into a repository.
Why don't you just contact Perforce support?
No, seriously. Using closed-source commercial software and searching for help in community forums = taking the worst from both worlds. You can't fix the software you use and you don't get in contact with those who can fix it.
Yeah and it's hit or miss - most people set it up and leave it alone - I just didn't have money before so I setup a local server - but that's not good long-term - I just didn't anticipate problems going from windows to linux
he doesn't even mention the case sensitivity thing, maybe it doesn't matter
well... they do specifically say "set it up appropriately". everyone's needs do vary. most people doing UE4 would definitely want insensitive though, sometimes I've had a colleague end up somehow with myfile when I submitted MyFile and without case insensitivity these would be two different files. then when you pull files down onto a windows machine that will cause... some kind of horrible annoying issues I'm sure.
Hi all, I've used source engine for sometime now and used to updating manually, I've just setup Github Desktop for the 1st time and noticed there is a 4.27.1 hotfix.
In Github Desktop, how would I update to the latest version? apologies for the noob question, just never updated from Github Desktop before, any help would be appreciated.
ignore me :), Just figured it!
but if they are coming from an case insensitive machine, then it would matter - this will all be on Windows using P4V clients - I just needed hosting for the perforce server and Ubuntu was much cheaper
well that's my point
we all use windows
case changes "can happen"
If you submitted a file and then you renamed the file purposefully to the same name with a different case, you could submit that as a completely new unrelated file. This should strike you as something worth worrying about, if you at all value your future sanity
That's what I don't understand - if I am working on Perforce ONLY in Windows but when I push the files to perforce and it is set to case insensitive, what's the issue?
Please contact support at support@perforce.com or via by the main Perforce Technical Support page for further details on this flag.```
I thought you said you had set your server to case sensitive, I was trying to convince you to fix it. Lmao. Sorry
(From this :] as well as you starting to say "maybe it doesn't matter" I thought you'd decided to leave it)
you're half right - it IS set to case sensitive - but i don't want it to be - I've already uploaded 50 gig of the project, hopefully I can figure out how to change it there
change it before i try to load the databases / checkin
Have a thought about a particular source control setup and I'm wondering if someone more experienced could chime in on it:
I'm wondering if it's possible to separate the game's art assets out into a public git repository with unlimited storage (for instance on github), while keeping the rest of the project very small and tracked in a separate, private git repository. Wondering if this is a viable way to get around source control hosting costs - potentially the whole thing can be done for free?
GitHub does not have unlimited storage, and is bad (without LFS) with binary files as well. The public repo limit is around 5GB total, usually.
Ah, I was looking at "package storage" which is different
Decision paralysis continues, then. Perhaps I should just go with a digital ocean droplet and perforce
Tbh I don't actually care about versioning the art assets - just everything else. Wish there was some way to version the project and just point it to a bundle of static assets somewhere
Oh, I guess this is possible after all? It looks like imported uassets have a "source file" field which indicates that they are just pointers to the source assets? In this case, I guess I could keep the big png/fbx files in some excluded directory so that the versioned project size remains constant as the asset directory grows?
In that case, I could have a directory which syncs with google drive or something for the big binary files and the project could just depend on them being available on the local machine at a particular relative path?
the uasset files contain the imported data
Oh π¦
No way to separate that?
Would be excellent to only track metadata in the VCS
not that I've ever seen. games have to run fast, even just within the editor to some extent... so it's kind of important to manage everything explicitly
Makes sense
I mean if you're equally up for either perforce or git, you don't have to maintain a long file history of uasset files (but if you just naively set it up like that it'll affect all assets - blueprints etc). most people have some strong preference of which VCS they want to use from past experience or whatever [or more frequently: because $$$ for perforce large teams π© ]
I wonder if there's support for runtime-loaded art assets? Probably there is? To support modding and content updates which don't require code changes
you're going down the square peg in a round hole solution real fast there
Yeah I've used a flavor of perforce before and git all the time, I prefer git for code but both can work so it's not a huge deal.
Yeah maybe so. But modding is something I will want to support anyways, so it might make sense to follow up this idea just to see what's possible
Oh neat it looks like there may be good support for this https://www.unrealengine.com/en-US/blog/new-example-project-and-plugin-for-mod-support-released
I saw Robo Recall listed as a learning project somewhere in the unreal launcher, this all looks positive so far
if you decide to build your entire base game as a mod solely to enable you to build some frankenstein version control system then... oh what the hell, go break some eggs
Modding is core to the game, it's just nice that it may enable some source control wins
And building the base content as "mod zero" was the initial idea, so this all seems to fit so far
Hey guys, unsure if this is the right channel to post in but does anyone know if i was to make my own LOD channel in the engine file (BaseEngine.ini) and use it within a project if it would upload to source control and be seen on others devices? Im only confused as i'd be changing the engine files which dont get uploaded to the server only my own device files so i dont know if that'd work
Unless your engine is in source control it will not transfer to other team members.
You can usually override most config settings in project specific ini files.
Ah okay thanks man, do you have any idea how i would go about changing the properties of an LOD channel/create my own that would work with source control?
Sorry I don't know for sure, but usually adding the same ini section to the DefaultEngine.ini in your Project/Config folder is how you would do it.
generally you should never modify any of the Engine files
I am extremely confused - I'm hosting on a local machine but not using a depot on that machine - but since it HAS to have copies of the files for the stream to run, WHERE are they stored - I've tried the p4 info tag and it shows me a folder but it's not syncing there (I can push from another computer but not see it) when I check in the visual client on the server, it shows me the file that I've just pushed, as being listed in the stream, but not its location on this machine, where the stream should be located!!!
if a workspace is a local copy, there still should be a stream location on the host machine
same host computer
That stream folder does NOT exist on this server's machine, in any place that I can find
https://community.perforce.com/s/article/16418 where the fuck are my actual depot files being STORED? I thought a stream always has the actual files on the server's machine and then when a workspace is setup, that workspace download's copies FROM the stream's location
I don't use perforce but?
it's like perforce people want it to be hard
Please contact support at support@perforce.com or via by the main Perforce Technical Support page for further details on this flag.```
how the hell do I use that flag
Sure, thanks for your help mate!
Any idea on how to auto-search & "mark for add" files from across the project? I'm using perforce, I've migrated quite alot of content (I'm building stuff in another project and only bring finished work into my main). All of the migrated content has the question mark and isn't marked for add. Please don't tell me I need to manually add at least 70 files...
nvm, found the filters π₯³
You can do it from p4v too, right click the Content folder and choose Reconcile Offline Work. Shows you what you need to add.
What's the proper way to completely get rid of a server (in Linux) can I just delete the actual folder structures via command line? (I've not hooked up anything to this server, just set it up the wrong way)
How would you exempt a whole folder from being ignored? With .gitignore?
doesn't it work with !/FolderName ?
Also works for patterns, like you can opt into Go files only with a gitignore like
*
!*.go
How can I still connect to my perforce server if I have DELETED the perforce folder and uninstalled it on the machine it's running on?
Is it possible to somehow disable the autostart of git fs-daemon in for each git folder. or disable it completely
it is a bit annoying since the encrypted drive fails to dismount because the daemon processes running in got repos on it
credentials most likely saved in appdata or smth
regarding case sensitivity - if I am working n windows (case insensitive) that's fine as long as I will only be working FROM windows - since I can flag the linux perforce server as Case insensitive as well, it should work for my purposes, (but would probably break if someone tried to colloborate from a case sensitive OS)
Perforce does not let you use help in command line if you have any problems at all root@vmi744135:~# p4 help Database open error on db.server! BTree Case Order Mismatch! Check p4d -Cx flag usage.
I hate you so, so much Perforce
I am actively employing mental health mechanisms, like meditation, exercise, and time with family, to resist what your software setup would do to me
Unknown -x operation. Try 'f', 'i', 'u', 'v', or 'x'.
root@vmi744135:~# p4d -xD
Perforce server error:
Server does not yet have a server ID.
root@vmi744135:~# p4d -xD LiveSimService
Perforce server info:
Server ID: LiveSimService
root@vmi744135:~# p4d -r /opt/perforce/servers/LiveSimService/root -C1 -jrF checkpoint.3
Perforce server error:
Database open error on db.server!
BTree Case Order Mismatch! Check p4d -Cx flag usage.
root@vmi744135:~# p4d -C1
Perforce server error:
Listen 1666 failed.
TCP listen on 1666 failed.
bind: 0.0.0.0:1666: Address already in use
root@vmi744135:~#
tbh I'd probably wipe the VM and start again π
@cyan jay I'm strongly considering just renting a VM that has Windows on it even if I have to pay $15 a month just for the stupid license
I won't be in the position of being able to really learn all the nuances of Linux based perforce
I wiped it several times already
I'll mention it casually now then maybe I'll actually put a bounty on it but I'd be willing to pay a hundred bucks for someone to walk me through the migration
Buried deep in a facebook thread, someone mentioned there is a PERFORCE DISCORD SERVER - does anyone know where I can find that - I've searched google filtering out for bots/notifications, as most topics involve making a notification for any commits
So how can I get git to only stage 'large' files to LFS?
How the hell do you stop the perforce server on the machine it is RUNNING ON - ```
C:\Users\blmcc>p4 info
Perforce client error:
Connect to server failed; check $P4PORT.
TCP connect to 1666 failed.
The specified class was not found.
C:\Users\blmcc>p4 admin stop
Perforce client error:
Connect to server failed; check $P4PORT.
TCP connect to 1666 failed.
The specified class was not found.```
those are from the server that I am actually running it ON!
I want to hurt Perforce
I know, i always get the max folder error (100 folders)
I don't know how p4d runs on windows, but if it's running as a service you can stop it from services.msc
Also, those errors are likely because you haven't set P4PORT. Perforce's tools don't know where the server is, that's the point of specifying P4PORT.
(despite the horrible name, P4PORT is the full address and port)
You can either set it in an environment variable (set P4PORT=127.0.0.1:1666 would probably work) or via p4 set.
@merry verge Thanks - it's worse than I thought - god the lack of syntax examples for these command lines - they are so spread out - it's almost intentionally obtuse
And the problem is for some reason my versioned files are in TWO locations - I'm at a decently stable point in my build where I could start fresh how things are - it galls me to do that but I am spending too much time trying to migrate this piece of shit
Is the meanin of "folder" a real folder/directory or a data?
Folder/directory Widgets or the data AllStatsComponent?
"zip up project" is still the correct way to begin working on another machine right? I want to start a new perforce server but not copy unessentials over, so I'll copy it over to a new machine and upload it there to the perforce depot fresh, does that make sense?
are you using the file upload on github.com?
you can use the migrate import command with --above (https://github.com/git-lfs/git-lfs/blob/main/docs/man/git-lfs-migrate.1.ronn#import) but id recommend putting any binary file in lfs regardless of size because of how binaries slow down git
The fact that someone spent time to implement that is hilarious
All that command does is create a zip of your project folder. I assume without extra folders like intermediate. No reason to use it - either submit your stuff from your current computer, or just copy the whole thing to another computer (cough use the first option cough)
I'm setting up a new main machine and keeping the previous one as a backup, alternate work machine - my current petforce Depot is all fucked - so I wanted to make a new one from scratch
Once I've confirmed the project opens and runs correctly, I'll use it as a source of a new perforce Depot - then on the other machine, (obviously in an entirely new folder) I'll connect to the new Depot and download the new version files to make sure that it all works
And just to confirm when I do mark the files to add - I want content, plugins, and what else?
If you're making a new depot, then just make a new depot and submit to it. You don't need a new machine in the mix to do that, and you can use that to verify you're able to pull down the project from perforce successfully on the new machine.
As for what you need, it's more about what you should be excluding than what you're including. Generally you should create a p4ignore file, run p4 set P4IGNORE=.p4ignore (or whatever you name the file - i use .p4ignore to match .gitignore personally), then add everything (right click the top-level folder of the local workspace in p4v and add it, or drag the folder into a changelist) and let perforce sort out what should be ignored based on that file.
Here's most of my p4ignore, it covers most if not everything you'd need to add: https://pastebin.com/K37CvR8P
Also there may be one or two extra things in there from my project that I forgot to strip out.
@merry verge why can't I connect to my server from the server itself OR from another machine? I can connect from the other machine if I use the IP, but if I set the p4port of the server to it's own ip and port, it only works for the server - originally I had it set to p4port 1666
I'm confused as to what works. Does 127.0.0.1:1666 work on the server itself? Does the external ip work from the server itself?
Regardless of the answer, it's probably because the server is configured to bind solely to its external ip address rather than all addresses or the external + loopback address. This isn't a solely P4 problem, this is just how servers work.
By default I believe p4d binds to all network interfaces - but I don't know what you've done to configure your server, and I definitely don't know if the windows install uses reasonable defaults.
If it's binding to all available interfaces, then it's unlikely to be p4d itself with an issue and more likely to be something to do with the firewall or computer's network configuration.
it was pretty straight forward but I didn't have many reasons to connect to the server from itself before
now I can't even connect in my saved connections
If Epic games treated development the way perforce does, blueprint would not exist
P4EDITOR=C:\Windows\system32\Notepad.exe (set)
P4PORT=192.168.1.140:1666 (set)
P4USER=Blakestr (set)
P4_192.168.1.140:1666_CHARSET=none (set)
PS C:\Users\blmcc>
``` run from the server
It's running as a server (and I checked to make sure it's running)
Those are client options - they don't affect how the server is running afaik. p4d takes the interface it binds to on the command-line - I don't know how this is specified in windows when running as a service and would have to look it up.
But the fact that you can connect fine from another machine implies it isn't a binding issue
but I was able to change the port using the p4 set
and after I did that, i couldn't connect from the other machine
Oh sorry, it looks like the command line flag I was looking for was to override P4Port
so that's correct
What I'd suggest is running p4 set P4PORT=1666 as that'll bind to all interfaces
in any command line where you need to connect to the server from itself, do not use p4 set because that'll set the value globally
ah
instead, set a temporary environment variable - set P4PORT=127.0.0.1:1666, though it being set to 1666 alone is probably fine.
ugh, perforce is soooo shittly obtuse
The issues you're hitting here aren't really due to the design of perforce. It's more due to misunderstanding how configuration works. None of this is particularly weird design from a server administration perspective - it just isn't made for beginners and is a big part of why I would not recommend running a perforce server yourself if you don't have prior systems administration experience.
it is what it is, I don't have a choice
Fair enough.
i did that binding and restarted the server, still can't connect to it
from the other machine on the same network
odd... well, changing it back would probably be prudent. What's the error you get when P4PORT is set to the ip and you try to connect to it locally?
User name: Blakestr
Client name: DESKTOP-0UPBT6J
Client host: DESKTOP-0UPBT6J
Client unknown.
Current directory: c:\Users\blmcc
Peer address: 127.0.0.1:63240
Client address: 127.0.0.1
Server address: DESKTOP-0UPBT6J:1666
Server root: D:\Perforce
Server date: 2021/12/11 19:55:36 -0500 Eastern Standard Time
Server uptime: 00:02:58
Server version: P4D/NTX64/2019.1/1865205 (2019/10/11)
Server license: none
Case Handling: insensitive```
p4 set PS C:\Users\blmcc> p4 set P4EDITOR=C:\Windows\system32\Notepad.exe (set) P4PORT=1666 (set) P4USER=Blakestr (set) P4_1666_CHARSET=none (set) PS C:\Users\blmcc>
error from the other machine on network - ```Connect to server failed; check $P4PORT.
TCP connect to 192.168.1.140:1666 failed.
connect: 192.168.1.140:1666: WSAETIMEDOUT
basically the classic perforce network error
I can connect to it from the server machine itself via port 1666
and I CAN to it from the server machine via 192.168.1.140:1666
Is the server named DESKTOP-0UPBT6J? Can you try running this from the other machine on the network? ping DESKTOP-0UPBT6J
Also try p4 set P4PORT=DESKTOP-0UPBT6J:1666 from the other machine.
ping seems good ```Pinging DESKTOP-0UPBT6J
Ping statistics for 192.168.1.140:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Averag
e = 0ms
PS C:\Users\blmcc>```
Try connecting using the name instead of the ip
I wonder if p4d is acting like a web server and paying attention to hostname instead of just ip...
from local machine (i'm kinda glad this didn't work, I would have to rethink a lot)
Hmm... I'm out of ideas myself, but there are some other things you could try on this page, not sure if you've seen it already: https://community.perforce.com/s/article/2960
tried to use " p4 set -S Perforce P4PORT=1666" and ti says it doesn't recognize the environmental option - - i'm checking on how to set it in windows
I hate you, so much Perforce.
Perforce client error:
registry: create key: The system could not find the environment option that was entered.
per that, it's likely a permission issue - probably need to be in an admin command prompt
you think they would have a bold red text to make sure you are using as administrator
Perforce client warning:
Warning: environment variable hides registry definition of P4PORT.```
Do you have P4PORT set globally as an environment variable somewhere (or maybe just in that session)? That's my guess for what that warning is.
Does that not fill up the LFS too quickly?
it depends on your budget and service used
i would strongly recommend solving your storage concerns instead of hampering your productivity
azure devops for example has unlimited storage
How does one manage UE's autosave features of open blueprints for checking out assets - do you just use "revert unchanged" if there were no actual changes? (what about levels that are open)
I don't want to have a bunch of items on my change list that I was simply opening but making no changes on
Also, how are HLOD's handled in source control? It's something that is used for performance, which means they probably aren't added at the very end of a build - (maybe recompiled) - you'd need them on to make sure your performance is consistent across developers- but if you so much as move an item on a level, they need to be rebuild - the actual HLOD0 file can be over 1 gig on a single level
Other than pushing a version of your project, is there another file I should push for version control between updating the engine? do I push the VS files as well?
Anything that's not in the p4ignore file I posted a while back.
Excluding situations where you're distributing binaries via perforce, you only want to store what is required to build your project. That means the uproject, config files, content folder, source folder, and some other misc stuff (+ any content source files you care about storing in version control - this depends on you and your project). The VS sln and vcxproj files absolutely should not be stored in source control - they can and should be regenerated from the uproject when someone needs them.
Hey guys, i have the merge tool running from command line, but it doesn't write any files no matter how i accept the merge. is there another command line flag that has to be set?
i have a huge perforce depot i want to set up on my machine. i have all the files from the depot already, can i just copy them into a new workspace and reconcile somehow?
trying to avoid the download..
i think this is my answer: https://stackoverflow.com/questions/39237003/how-do-i-create-and-point-a-new-perforce-workspace-to-an-existing-folder
Anybody know how to make P4V show modified files only in the workspace window?
like... hide unchanged files? i don't think it has that as a feature. why do you want it?
Its easy to forget a file change if you do a lot of changes, or miss adding a file. It is a very common feature in git vcs, and svn too I believe.
yes, it's one of [at]Lorash's favorite criticisms of P4V
just run Reconcile Offline Work once in a while (i.e. while you're cleaning up your changelist right before submitting) if you think you might have some dirt to find
Can confirm, I always end up doing reconcile offline work. P4VS was too slow. Rider's integration is less slow and seems to notice changes slightly better tho
The UE integration doesn't pick up new files well, you have to go into files/folders individually and save or mark for add.
I miss git status
got a new release of the git plugin for ya'll!
improves remote syncing behavior, including background updates
and fixed a few bugs!
hopefully soon I'll have some time freed up to look at some of the requests given here, like submodule support, ue5 ui fixes and repo creation
but our main priority is a few internal requests related to history and change management
going to release it officially soon, but need to deploy a new version of embedded Git LFS
Submodules support would be awesome, I was one (only? :P) person requesting it π
In the meantime I went around and forked your project to just add diff and log support for submodules, since it's the only thing I actually need. I thought I would be able to hijack low-level git commands to instead run them in the submodule if applicable, but it turns out it wasn't really doable. So my implementation is very hacky, but it does the job.
https://github.com/brifsttar/UE4GitPlugin/commit/e7666a4c8d709674a507abf95f79267a6e055643
Reconcile Offline Work: 5-20min, depending on your storage speed and project size. Requires network connection.
git status: 0.1-10s, depending on the same stuff. Works offline.
Result is the same, you get info about all tracked and untracked files.
Hmm... I dunno, why people hate Perforce?
Takes 20-30 seconds on my project and I live in a first world country, if my internet is down then the only thing I'm trying to do is get my internet back up, but sure, go ahead and complain about problems that have been obsolete for fifteen years 
(Hint: just complain about the licensing/indie cost instead)
- So, how big is your project working copy?
- 20-30s is slow enough that it cannot be treated as "almost instantaneous", so it limits workflows.
Also: have you tried working with perforce server that sits in a first-world country on one side of the globe while you're located on almost the opposite side, though also in a first-world country?
yes, been doing it for 5 years thanks. i have better things to do than talk about this, we all know you hate perforce blindly, you have valid points and you have dumb points, you're welcome to stop beating a dead horse any time you like sir
I do wonder how git performs under the same situation. I assume mildly better for actual network operations (which are much less common, I'm aware) but still not great. Github/gitlab (hosted) is globally distributed and isn't a fair comparison except to say that it's easier/cheaper to get professional hosting but that's just another dead horse to beat.
But honestly if you're doing solo dev you should just be hosting nearby... AAA should be setting up proxies for outsourcing partners or for any locations with lots of remote work, and AA/mid-tier/distributed indies... I guess you're fucked lol.
That last quip was about perforce, not git. Should have made that more clear.
I've always intended to give git another try in modern times, last time I used it for a game project was ages ago... Probably right when lfs was young if it even existed. It sucked ass for games then. Was only natural to find something better
You can't get good network performance over the globe simply by laws of physics. Latency is bad and can't be fixed. DVCSes try to mitigate it by reducing times when you need to talk across network.
I'm aware.
It's more a question of frustration
For example, dealing with LFS locks
DVCS doesn't really help with that
Thanks for the master class on the speed of light tho 
If I ever hit the 5 user limit of perforce I'll probably contact perforce just to see if they have something actually for indies in the pipeline, and inevitably they won't so I'll try git again.
Yeah
I specifically set up my perforce server on the other side of the globe from me because that's where my team mates are and I'm dealing with 1kb .h files and they'd dealing with asset files, figured they're worse off lol. Waiting 60ms for a command to start has never become something that bothers me though...
Locks are slow in all of them, yep.
Figures.
Locking is the thing that no one has a good solution for... which is pretty much the nature of the thing.
Maybe one day we'll get mergeable assets (lol, that's a pipe dream).
Randomly reminds me I never did try out the cross branch/stream lock status hard coding thingy. Ahh maybe in another year
I was going to mention that LFS locking being cross-branch without an (easy) way to turn that off is just... bad.
Doesn't matter much for solo dev but I know that'd be a deal-breaker for AAA. No way to do release branches without a separate remote? That's just... ugh.
One day...
LFS locks are brain-damaged. They just need to be redesigned.
I agree with that.
I haven't actually used lfs yet, I always led myself to believe its locks might be serviceable based on everyone here saying to use them... Are they just a little buggy, or way out to lunch?
Our team probably going to hit the magic 6 user mark in 2022 so now I gotta start wondering if I actually am going to bend over for perforce 
They're not buggy afaik
they just aren't designed well
as I said - locks are cross-branch. If you lock a file on one branch, you've locked it on all branches.
I'm not sure of the specifics of other issues with their design but I've definitely heard grumblings before about them.
Oh, the other big thing is just a lack of tooling support. There are plugins for unreal that'll work fine, but most other DCC tools don't have anything.
Oh, ok. Yeah I guess just that alone would get frustrating quick in a full pipeline
Yep. As I said, release/stabilization branches are a no-go unless you split your repo into multiple remotes.
Oh DCC tools are easy just work with team mates who don't judiciously commit most original source art files

lol
Oh, I do think someone in here hacked on gitlab's api to make locks per-branch instead of across all branches. But I don't remember who that was or how they did it.
kinda hacky for my taste though
Honestly Im more pissed off about gitlab's broken af lock implementation that blocks merges of unrelated files, you can make per branch locks with gitlab and some trickery - its not trivial but it is possible
I am actually working on fixing it but its an absolute nightmare
I've found increasing threads and concurrency massively helpful with every operation. I'm guessing this would be covered in most setups though.
BTW, maybe you know whether they have an issue in their bugtracker for this?
They do, for ~4 years
I have a sort of working solution, but I don't like it, if I can get one that I am happy with I will PR it
i think i've had that happen like once in my life, and i think when i three-finger-saluted it, nothing bad happened... usually p4 is pretty good about making sure everything is atomic, if the actual server is still waiting on something then it should abort and ignore the entire attempt
I have that happen when submitting large files - my impression is that P4V has finished uploading the CL but the server is still in the process of storing the files.
I've somewhat confirmed this is what is happening during a particularly large upload of files that the server is set to store only one copy of. Disk space usage on the server goes up during the upload, stays up for a while when there's limited network activity from P4V when it's at 100%, and then declines as the server wipes the old revisions and moves the new files into place. The time it sits at 100% is likely a function of how big the files are and how fast the server is.
My thought is that it's probably not a good idea to close P4V during this, but the worst that'll happen is the server will cancel the submit (and the best that'll happen is the server finishes what it's doing).
I would say Git itself, very efficient. Especially with protocol v2 and all the new pack tech from the last 2 years. Git LFS though, is a bit naively designed and has many problems with its connection usage. It's gotten a bit better but there's still lots of stuff I'd change.
I do intend to start working on LFS once I finish up work on the UE Git plugin. They could use the help for sure.
Yeah, it's not so much git itself that I'm wondering about since that only needs to talk to the server on push/pull (which is definitely an advantage over perforce if you're not using perforce's local server stuff). Locking and LFS is another story though π¦
Yeah I meant the push/pull negotiation & transfer is really efficient
The LFS stuff, afaik, the authentication bug is still not fixed, where HTTPs requests have to be individually authenticated for LFS uploads and multiple locks, or something like that
and that's a huge part
and the protocol is kinda just naively designed, definitely needs a look over as a sort of post mortem for how it works for users now
Hey. How well does Unreal play with Git? I use Git day to day for web projects (so files are mainly text-based and easy to diff). What is it like for something like a Unity project where I imagine a lot of files will be binary blobs, though?
People use Git LFS for blobs (*.uasset, *.umap).
Yeah. So would Git be suitable? Or do people tend to use another source control solution for working with Unreal projects that better supports changes to binaries/blobs?
There do exist game studios that use Git for game development :) All of My.Games, for example.
Though, many use Prrforce.
Yeah. I contracted for a AAA studio a few years ago and they used Perforce. So just wondered if other source control systems were preferred.
Git is the easiest to setup for solo dev.
is there a way to access the location the type map for perforce? this fucking VI editor is retarded - I've been reading for 10 minutes on how to do a paste
You mean the actual file location? Not sure. But you can just edit the typemap in any editor you'd like.
I get this editor that won't let me paste
p4 set P4EDITOR="C:\path\to\editor.exe"
i have to use commands to scroll down lines - I feel like I am in Wargames from the 80's
it's on a linux machine
If you have any windows clients you can edit the typemap with those. Otherwise, time to learn vim or one of the other linux editors.
technically this has little to do with perforce (for once) and is more a linux based question - i only asked here b/c someone might have solved it
I have p4v, where is the typemap there?
I don't know specifically how to get p4v to open it, but you can use the same command you did on linux on the commandline.
p4 typemap
as long as I can do it after the fact, that's fine - I got the server finally setup, now I need to setup the streams-
Yeah, it's fine to do it after the fact. Just note that the typemap only affects new files submitted.
Old files need to have their types changed manually.
sadly it is a bit of a requirement to learn how to use VI if you're going to do any admin'ing in l00nax
(though... i bet there must be a notepad-like package available somewhere/somehow, I guess I just learned VI instead)
I mean, IS there a way to type to paste it in? https://askubuntu.com/questions/256782/how-to-copy-paste-contents-in-the-vi-editor - I can use a VNC server to open up files in Gnome but I'd have to know what the typemap is stored as to edit it
Is this stream supposed to be empty? I am setting up, so I'm connected from a client to upload the files from the depot (I won't upload until I have the typemap and p4ignore setup though)
Do you already have a stream created?
assuming this is a stream depot
If this is a stream depot and you don't have a stream yet, you'll need to make one. You can pull up the streams tab in the view menu of p4v, right click, and hit "new stream".
Once you have a stream created you can use the browse button in the workspace dialogue to set it.
If this is a classic depot, it's fine to leave the stream field blank.
it won't let me click browse (it's not greyed out, just nothing happens when I try to click browse for the strema)
I need a stream don't I?
classic depot and stream depots are entirely separate things, you make your depot one or the other and they have different workflows for workspace setup and stuff. they just opted to use the same dialogs for either so theres a button or two here and there that seem pointless
ugh, I had to set this up on linux, there isn't a command line I can do to change it is there?
you create depots from P4A
you don't need to use a streams depot if you don't want to
i think most people who use them like them, but they're different
they are mainly for creating more branches?
like shelving but more encapsulated?
I had looked at the chart once and it honestly confused me
ahh they're just... different π you won't really get it unless you use them a bunch I think. they are less flexible than classic depots but let you do some nice things for more complex setups like virtual streams
ah, so leave it alone then - I was using one before but I didn't ever do anything stream related I think
it's been awhile since I've done this - but I I am adding files to the depot, does that mean it will download them to the same computer as a workspace - I have a temp project folder I want to use, or how do I handle this?
This seems like it's going to make every folder into the Blake_MainRig (even on other computers) I thought workspaces were just a physical location of a depot's files
so why is it asking me to copy the files to the new root directory (versus LiveSim Mainline?0
I feel like it is making an extra subdirectory in there
You're going to have to explain that again...
I don't think I've followed what you've done here whatsoever
A workspace is indeed a single physical location of files on a local machine. I don't entirely remember what triggers that popup, but I think it's when you change the folder a workspace is pointing to - it's asking if you want to copy the files over to the new location.
If this is a new depot and you haven't submitted anything to it yet, you can hit no and ignore it.
Even if you have files in the depot you can hit no, it's just asking if you want to copy the old location to the new one.
It's basically asking me to make a new folder in my project folder and move everything there it seems
No, how did you get to this point.
Did you create a new workspace? Did you take an existing one and change its location?
(or other options on it)?
The safe thing to do is just hit "do not copy" and then see what p4v shows in the workspace view.
okay, then I should be good, it just was confusing the way that it displayed it in p4v
Where is that command line tool, I can't type anything in the log in P4v (I am doing the typemap now)
just open up any command prompt
like the windows command prompt, not anything from p4
If p4 isn't available then you can either add it to your PATH if you know how (likely C:\Program Files\Perforce) or just type out the full path for each command (likely C:\Program Files\Perforce\p4.exe, if this is powershell it'll be & "C:\Program Files\Perforce\p4.exe" yourcommandhere)
you'll probably need to set P4PORT and login as the command line tool doesn't necessarily share session information with p4v -
# if you're using cmd
set P4PORT=ssl:yourserver:1666
# if you're using powershell
$env:P4PORT = "ssl:yourserver:1666"
# or set it semi-permanently
p4 set P4PORT="ssl:yourserver:1666"
# finally, login
p4 login
then edit your typemap
p4 typemap
By default I think it opens notepad on windows, but when you originally installed p4v it should have given an option to change it (I believe you can also change it in p4v options or via p4 set P4EDITOR=C:\Path\To\Another\Editor)
I don't think I'm using ssl on this
ah thank you
lol I just had to type p4 typemap literally in commandline on windows (you had mentioned it as a client I could do that)
binary+w //....dll
binary+w //....lib
binary+w //....app
binary+w //....dylib
binary+w //....stub
binary+w //....ipa
binary //....bmp
text //....ini
text //....config
text //....cpp
text //....h
text //....c
text //....cs
text //....m
text //....mm
text //....py
binary+l //....uasset
binary+l //....umap
binary+l //....upk
binary+l //....udk
binary+l //....ubulk```
this is the right typemap right? https://www.perforce.com/products/helix-core/configure-helix-core-game-engine
Learn how to configure Helix Core with your game Unreal or Unity game engine.
yeah if you already have a login ticket you can just run p4 typemap. I sometimes have an issue with that which is why I wrote out the full process.
anyway, that looks fine. You may want to add to it depending on what kinds of files you have - for example, I personally store some art source files in there (fmod stuff, mostly) so I also have wav and mp3 set as binary+l
you don't technically need the text lines - perforce would auto-detect them but it's not a bad thing to have.
binary+w means those filetypes are binary but aren't lockable and can be written to without being checked out which helps if you're storing builds in perforce so that you don't have to lock those files when building locally.
why would you have wav/mp3?
those are source audio files for fmod events. Likely not applicable to you, just an example of other kinds of files you might care to submit.
fmod is a third party audio system, not something built into unreal. Again, just giving an example.
You likely don't need to modify the typemap any more than what you have - but if you have stuff in the future that you want to submit that should be locked like uasset files just know that you can always go back and edit it.
ah, so if I wanted to (just for an example) make a workspace/depot that was for premiere files and instead of having VideoFinal18_1- I would just add the premiere project extension to the type map, then check it out when I worked on it and submit it with a change list. (that's the point of perforce/version control I guess)
Right.
was i missing anything from this? my p4ignore file from previous perforce server
Also, it mentions in the docs that you can include your binaries - I'd "like" the latest build to be synced but I don't want to have 30 gb version of it - so I just need to have a limit on the revisions then?
Yeah, you can set a limit on how many revisions the server will store. It's part of the file type so it can be something you apply to individual files (right click a file in p4v -> change filetype) or you can set it in the typemap to apply to a bunch of files.
If you do it per-file you get a gui in p4v that'll set things for you. If you need to set it in the typemap (which, by the way, can be done by folder and not just by file extension) you'd set it to something like binary+S1w which would be binary, store a single revision at max, don't mark as read-only on disk.
thanks again for all your help in all this
np
is that what you do for builds? basically I want it that I can compile a build and have it get pushed, download it to another (to be sure it really is the same build) or is it better practice to compile the build on the other machine as well
Depends on your workflow.
If you only have engineers who would be building their own binaries anyway, there's no reason to store it.
If you're working with artists who you don't want to have to deal with building things themselves, storing builds somewhere is a good idea. I don't personally use perforce to distribute editor binaries but that's because I have a CI server (teamcity) that they can be downloaded from with a script.
That makes sense - thank you for explaining that
um, this is silly but do I need to submit the p4ignore.txt?
You should. It's worth noting that you may need to p4 set P4IGNORE=p4ignore.txt on every machine using it.
another setup: personally, I do include binaries in our server. I do limit them to just a couple versions in history like you said. Coders don't submit any binaries ever though, only our CI server does it. So any coder submits a code file, the CI server kicks in and adds new DLLs a couple minutes later, and then our artists just run a Get Latest in P4V and have everything they need. I have a Virtual Stream set up for coders which gives them the entire project sans Binaries folders, so they just build their own DLLs freely locally. Same idea as what siliex described but without using the extra functionality of teamcity
none of these workflows work unless you actually have a standalone build server though (and a week to learn it all and set it all up if you're not experienced at it), thanks hot reload/live coding
Right now my initial commit was about 38k files and I come back to the computer this morning, thinking it would be finished and it says I have lost connection to the server
and of course perforce has no logs that I can determine what the hell is happening
wow, I think I got this server hosting for a steal
not sure what happened to the files during the upload from perforce that didn't apparently finish
I guess I might have to break it up into several changelists
If a push fails halfway through the server just cans the whole attempt like any good VCS will ( @jolly fog hi) Yeah, if you're on a flaky connection or if you got a real "bargain" server it might be worth breaking into smaller pieces for reliability
I've never had to look at perforce's log files, the error on client side has always been enough for me to figure out what happened eventually... but you could go figure out where the logs are if you wanted. From what I gather the server side logs are more for checking performance, and you have to turn on client side logs manually because nobody needs them 
hey, getting this error about not being checked out in source control, but i'm not using source control as far as unreal is concerned?
"The following assets are writable on disk but not checked out from source control"
i do have a .git repo in the root of the project but i manage that manually, never have activated the source control settings in unreal
it's refusing to save some assets that i just created, they've never been saved before
the button has the π« sign on it?
What's this about -
what about getting revisions - those are still individual, so if a client tries to pull 1000 files, and crashes half way through, when the revision request is repeated, it will check the 500 already downloaded files, recognize they are identical, and basically start halfway through, right?
that just means you typed in a folder that isn't in the workspace... you don't need to use the dashboard, I haven't opened it in years
yeah if you Get Latest it will get each file update individually
Can you still "submit to source control" on UE5?
Hey there, does anyone know how to gain write access to a file that's checked out by another user (in p4v) ? Solved: the issue wasnβt the file being checked out but the fact that the machine had been renamed after checking the file out. Perforce just didnβt like that
Just make the file writable if you want to do throwaway edits
Tell them to check it in if you want to make actual/permanent edits
Hey guys, is there some setting to automatically mark assets to add when created/imported? Seems like that behaviour changed at some point (using perforce)
Others would know better than me, but if it is included in your typemap (what type of file it is) and it is in the folders that have been added to perforce, it SHOULD mark them for add automatically. But if you have the file listed as a type to ignore (in your p4 ignore file) then it won't add them
Looks like Perforce added a Digital Ocean app, just tested it on a $5/mo plan, works well https://marketplace.digitalocean.com/apps/perforce-helix-core?refcode=90e2df25d996
he tells me, right after I setup a contabo server
You don't know a way to export/link the new submissions/changelists from perforce to something else, like Notion?
Not sure if there's an integration, but you'll probably have to script it
If I want to be sure I can roll back my project from updating to an engine version, do I just need to basically check out everything in Perforce from my project folder (including content) and then revert any unchanged files after it finishes - then anything that was changed will be in it's changelist?
Nope. Checkout the uproject file (since updating to a new engine version will need to modify that and fail if it isn't writeable).
Nothing else needs to be done - updating engine versions just involves changing the uproject file and nothing else. Any assets that need to be modified after that will need to be checked out as normal, but the engine isn't going to just overwrite a bunch of files without telling perforce (it can't anyway - they're read only)
@runic summit
Even if upgrading does manage to overwrite files it shouldn't have, you can just reconcile offline work which will add those files to a changelist.
Thanks, I'd think so too but lately I see more and more people on the team committing changed files while their newly imported content, textures for example, are missing in the changelist and need to be manually selected in the content browser and marked for add. That obviously results in missing files for the rest. Just curious if anybody else is experiencing something like that.
If their editor is properly connected to source control it should automatically add new content (usually when the content is saved, not immediately on import). There are occasionally weird situations where this doesn't happen - I've found that quixel bridge (in UE5) likes to add files in such a way that seems to bypass unreal's source control integration so files need to be marked for add manually - but it generally seems rare.
Also, typemap is mostly irrelevant for this. Perforce autodetects filetypes when they aren't specified, and having something in the typemap is only necessary if you want to change this behaviour.
Thanks for the clarification, will look into that.
Has anyone here used UGS in the past?
I used it before on client projects but wanted to set it up internally for our company, however it seems to enforce having the Engine uploaded to perforce?
Like, can that somehow be used without a custom engine? we don't need one atm, especially not on p4 >.>
Guess not, they actively check for a relative engine being uploaded
............................
I'm still curious what benefits UGS would offer to companies who aren't massive (I have only ever skimmed the docs for it, never actually leaned how to use it). All of the things it talks about offering seem to be beneficial for large teams where everyone isn't communicating with everyone
I guess maybe I just need to pretend it's a wrapper that entirely replaces P4V with extra features?
@woven sluice Yeah kinda
You basically get a nice list with CLs
And if the MetaServer is also available to you (e.g. inhouse server), you can add quite a lot of info to it
E.g. people can mark builds as bad
There is also a nice handling of binary files. If you have at least one artist in your team, it's already nice to have
They don't need to compile anymore, and UGS shows which changelists rely on new binaries etc.
You can also add stuff like jira identifier, so you can submit changelists with e.g. [SHORTCODE-45] and the chagnelist description gets a little clickable tag that brings you to the jira in question
We are only 4 peeps atm, with one being WHO. But we have an artist on an internal project starting next year, and then UGS would be super nice
I will try to check if they really need the engine on p4 or if I can change it to point to an existing installation.
After all we have source code of UGS via Engine Source
the binaries thing isn't an advantage that i can see, you can get convenient functionality out of the box with just perforce and a build machine for that, but everything else sounds at least a little bit nice π
Of course, the binaries stuff can be done with simple jenkins job
But then they still need to make sure they get the latest binaries via p4.
UGS can for example allow users to only get content instead of binaries
Imagine you have a CL 1000, that has new code and requires binaries. But in the meantime someone submits some changes to a level file or so that you need and the Binaries are still building.
You can choose to just get that CL without the code if needed
It's small things but we used them often when working on The Ascent
To be more precise, the BuildMachine could be busy or even something failed.
If you get latest between the CL submit of the coder
And the BuildMachine submit
You are f'd I guess
(if something relies on the code)
that doesn't make any sense
if you're an artist/level dev, you either need the DLLs or you don't, and you either get them or you don't, getting latest before CI puts the DLLs in would have the same effect either way
I do understand what you're saying, it's just super niche armageddon situation
It's probably badly explained by me
I guess you're suggesting if people push both new blueprints and minor level changes and you just want the level changes
blindly mashing "get latest on all" would break things
that makes sense
Yeah I think it also had to do with people pushing more and more CLs while the binaries were still not there
You would basically be locked until the BuildMachine is finally ready
You can submit PCBs to Perforce in a .zip file to associate them with a changelist. After that, Unreal Game Sync can sync and extract the .zip file's contents instead of compiling locally.
Doing this uses the same user interface as compiling locally, but any changes that don't have matching binaries will be greyed out.
Something something
The top sentence is doable with just p4/jenkins of course
I guess I haven't been exposed to these problems yet because I managed to set up our build server so it always pushes DLLs into perforce for artists within about 2-5 minutes after any coder submits a file (no engine source build, project isn't huge yet either). coder submits a file, few seconds later our CI discord bot posts "I'm building", few minutes later it posts "I succeeded, DLLs are updated to this changelist" or "I failed, here's the error log link, fix it" ... no slow automated testing or anything either though π
Anyway, I really freaking want UGS to work for us, cause it was nice to work with on The Ascent.
Have to figure out what I have to change in the code to get it to look for a local installation
Yeah we have the same
Although actually I still need to setup the P4 triggers
Which is something new for me
Will look into that the coming days
If I udnerstood my short read over the docs correctly, I just need to run p4 triggers, enter something like jenkins-editor-binaries changelist-commit //depot "run SomeFile.sh"
And SomeFile.h is just some bash script that uses curl to send an HTTP request to the Jenkins Server
Which will of course all horribly fail
yeah pretty much
been meaning to switch to teamcity ever since jenkins corrupted our perforce server from its damned inability to properly work with parallel sync but not yet 
Anyone know of a good way to export changelists automatically, like when they are submitted? I'd like to have them auto-add to my dev wiki on Notion - I know this question is half-Notion based but figured I would start here
see messages immediately above
dunno what Notion offers for hooking into it, but you can get the compootah to start running code that has most of the changelist data with p4 triggers
if the p4 triggers don't feed enough info in for you, you may also want to learn how to use p4 -Ztag to retrieve info about a changelist ... it's, uhh, confusing. I might be able to dig out some examples sometime if you have to go there
Thanks, will make sure to double check that when I fail mine
Teamcity from jetBrains?
Not the biggest fan of subscription stuff if I can have that stuff in my office selfhosted
it isn't subscription. but, I got frustrated with it because I found it way harder to do basic stuff with it compared to jenkins, like you have to actually code a proper plugin for it to do some simple build start notification stuff, instead of just stuffing some easy .bat code in a pre-SCM step like you can do in jenkins
so... i'm still using dirty old jenkins for now
I used Jenkins extensively for many years, and teamcity for the past 2 years. TeamCity is far superior IMO. Just easier to work with, no weird problems with perforce etc. I run it self hosted on a build machine.
everyone says that, yet I still can't figure out how to simply make it send a cURL to let me post a basic "build started" message π (without learning how to build a full java plugin for it)
Powershell
assuming this is a windows build agent, just use Invoke-WebRequest or Invoke-RestMethod
Doing it on an agent as a build step is a good idea π
it's been ages since I tried to tackle it... I seem to maybe remember that to do it "right" I would have had to entirely ignore the built-in SCM pre-build part of the build pipeline, and run the SCM manually myself as a build step, does that sound right? IIRC my idea was that I wanted to get a notification before it even started pulling from perforce and the standard systems didn't offer anything to set that up (except for making a custom plugin)
guess i'm overlapping into #automation but I'll cut the convo short soon anyway 
Yeah, that was basically right. But duplicating what it does for SCM is like 1-2 lines. A bit annoying, but not particularly hard or even hacky.
Hoping someone can help at least point me in the right direction. Starting my first project with a buddy of mine. Small in scope, no particular game idea in mind, just learning. I'm a programmer and he's more on the art side.
I created our git repo, enabled LFS and did things as I normally do. Submitted just a small, blank project with a cube, circle and one rigged character from Blender just to test that he can pull down the project and see everything as expected.
He downloaded the project files from the online repo but gets the following:
Tried searching online and found some old, dead, unanswered UE4 AnswerHub questions to no avail.
Is there some documentation or video or anything somewhere with instructions on how to do team collaboration with a git workflow? He won't ever need to touch code so I don't see why he'd need to have Visual Studio installed. His contributions will be primarily adding art assets and working with uasset files, nothing in the code.
you need to share the DLLs and target files in the Binaries folder
if im using a source build of unreal, do i commit the binaries folder to git so other users dont have to build the source?
i noticed that the gitignore provided by both unreal and github lists binaries to be ignored
i wouldn't recommend uploading the entirety of unreal's binaries to git
zip up a build and distribute that
use installed builds ideally
the only reason im using a source build is because of dedicated server support. ive made no changes to the engine source at all, does this matter? or should i still provide an out-of-repo zip?
~~Hey all, I'm trying out UE4 on Linux but I'm getting this error when I try to set up Perforce as source control in the editor:
SSL library must be at least version 1.0.1.
Seems to be coming from the actual p4api, anyone managed to solve this problem before? Everything works fine from my Windows machine.~~
See #linux
I setup github with my ue4, and I have a project that I wanted to add to a github. anyway when I try and send it to github using the source control. It errors out telling me I ran out of Video memory. anyone have any ideas.
ping me when some one can answer.
hello. I hope this is a right channel. I am using Sourcetree, but everything I know is how to push commits to server. I made a mistake and my current situation looks like on the screenshot. all I want is to delete all above origin/master origin/HEAD and be again in that commit without master1. master needs to be where origin/master is. I tried couple things, but I think I made situation worse. sadly I don't understand almost everything about git, I always used P4V, so please use simple words π
is there a way to view blueprint diffs in Github?
@jolly fog I can't switch to master. error in screenshot. I tried deleting ".git/hooks/post-checkout", expanded ".git/config" (in screenshot). I didn't found anything more what I can understand to try
32 GB ram. git version 2.30.2.windows.1 (from Sourcetree). I can't find git folder on disk, so I don't know if it is 32 or 64
done. I was able to do steps from yours first post, so everything is how it should be. thank you so much
you can just use the source build for packaging then if you want, but keep in mind that people won't be able to test server replication
pushing with the default plugin will load every single asset iirc. i suggest using another community plugin or a git tool
@quaint obsidian Can you give me a name for another plugin that I can use. So that way I can look for a video on it.
what about GitKraken Client
No, I have to pay for it.
would this help me view blueprint diffs in github?
i set up the editor's blueprint differ which is actually pretty neat. one workaround to viewing these diffs in github would be to check out the person's branch and look at the diffs in editor
but it would really be awesome if there was a way to just see the diffs on github.com
yeah, if bps were text files would be nice, but cant unfortunately
well, you can see their diffs in editor despite them not being text files, so it's technically feasible to be able to view them in github also.
right now the team's workflow is to take screen shots of all of the blueprint changes and include them in the PR. this helps us be able to refer to changes after the fact for learning and such
changing the code review process to checking out the branch and viewing diffs in editor instead of screen shots in the PR would eliminate this
is there something better than either screenshots in the PR or checking out the branch to view diffs?
i know i don't control GitHub i'm just simply asking if there is a way and attesting that it's feasible. FYI there are tons of github plugins that modify the behavior of github by processing things on different servers and reporting the result back to github in an integrated way
i guess there's not a way to do this yet. thanks
Hello,
I do not have any networking background and I'm trying to setup a raspberry pi with an SSD to store git repos with Unreal projects at home.
I'm not totally sure if is possible (LFS support?, 32bit os?) but I'm following several tutorials on how to set a git server with a pi. Long story short, I can't seem to connect and, as I said, I do not have the basic knowledge in network connections to understand what I'm messing up. Anyone can point me to a good learning resource about setting this things up?
I can connect via SSH from home, wiregurd is installed and i can set working tunnels.... What ancient ritual is missing?
what does the git trace look like?
sourcetree or github desktop are good clients
as for plugins, you can try
or
I use the github for the client. It's just when I'm working on the project. and want to submit my work to github threw the source control. the one that comes with ue4 doesn't work like it should.
I will try some of these. Thank you @quaint obsidian
@quaint obsidian The 1st 1 seems to be a project files. I'll have to see if this is not on the market place. and the 2nd 1. didn't want to download. ???
none of these seem to be in the market place. All I wanted was the plug in. I didn't want or care about the source code. @quaint obsidian
does it make sense to exclude .Builtdata files from source control to avoid others having to download these large files and have them built lights locally?
Yes, That makes sense. Getting them to do that is another issue. It would be easy for us.
thanks
you would have to compile these plugins from source
Yes, I know. It's just I didn't want to have to try to compile them my self. If for some unknown reason it doesn't compile. Then I'm screwed anyway. It's easy just to download and install the plugin.
if you can compile, it will (i.e, if youve setup ue4 c++)
and im pretty sure the first one has binaries already
@quaint obsidian I can't "git add remote" because when I activate the wireguard tunnel internet stops working and I can't connect to anything.
Using ssh locally works ok.
Without wireguard i get this message using public ip "ssh: connect to host xx.xxx.xxx.xxx port 22: Connection timed out"
@woven latch Itβs a bit strange to decide to set up a home network if you donβt have any experience with networking. Why not just use a free private repository from one of the popular providers like GitHub, Bitbucket, GitLab, etc?
@grizzled rain I teach to a few students online and I would like for them to be able to have backups of their projects, and also a way for them to learn source control and how to colaborate between them. The size of the average Unreal project doesn't allow me to use those sites. The "home network" is just a pi with a 2Tb sdd. But I can't figure out how to connect to it from outside.
Now I'm back without vpn just trying to connect to it forwarding ports. (I know it's not safe)
use cloudflared tunnels
it's an easy way to add secure access to servers
also can use zerotier
Once I have an active tunnel with handshakes, how I'm supposed to push/pull/clone? I'm trying this without success: git add remote pi pi@xxx.public.IP.xxx:/PathToGitInPi
Adds the remote but whan using it to pull/push has the connection time out error.
you need to address it by its name on the network
not public IP
this can be a LAN IP or a hostname you assign
for example cloudflared, you connect to localhost on a port you assign
other VPNs may assign things to a LAN IP
like 10.0.0.1
but going through a public IP isn't going to route it locally
thanks!
so with git lfs, its created 2 folders: "hooks" and "lfs". do these folders need to be committed? they arent ignored so i guess so, but just making sure
@mighty light what version of LFS?
there was a bug in older versions which didnt use the .git folder as it should
git-lfs/2.11.0 (GitHub; windows amd64; go 1.14.2; git 48b28d97)
Hm I should probably update these. Looks like lfs is up to version 3 according to https://git-lfs.github.com/ not sure if that's the actual site for it though
Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.
yep it is
@quaint obsidian sorry to bother!
So, once I have a wirgeard tunnel i could access to the pi via ssh like pi@PiNameInHomeNet ?
if thats how it's setup, i think so
i cant make it work...
Edited: Done! With the help of remote.it ! Super nice features and easy to setup!
so ive updated both git and installed git lfs (i never installed it manually before so i guess older git shipped with it?) is it safe to delete the hooks and lfs folders in my repo now? or do i manually move them to the .git folder?
Hello everyone
I don't know if I'm at the right cc for this
I have a project that I created in 4.26, want it to convert it to 4.27 or 5.0 but got an issue, "The following modules are missing or built with different engine version. Would you like to rebuild them now ?
the problem is that it won't rebuild if I click yes
I compared the plugin and 4.27 have all the plugin that 4.26 have.
so probaly not a plugin issue.
I hear that I probaly need to rebuild it manually
I use UnrealBuildTools from the 4.26 binaries folder
C:\Program Files\Epic Games\UE_4.26\Engine\Binaries\DotNET>UnrealBuildTool.exe -ProjectFiles -UsePrecompiled -Game "e:\Unreal Projects\T5c_4.26\T5C.uproject"
it generate the solution file but visual studio don't reconise it
there's no source folder
The projet still able to load in unreal 4.26 but won't open in 4.27 or 5.0
better to move them
thanks, i appreciate the help
I have found the solution, I just need to add c++ class in the editor and it create source folder and files, than I was able to convert the project to UE4
How did my HLOD's get added to source control - I thought they were set to be ignored
It might be worth it to have a single revision but they'd get invalidated the moment someone moved something in a level, so I'm not sure
but every time I go to quit the game wants to save all the HLOD files
Has anyone seen anything about blueprint diffs outside of the editor? Preferably in a web friendly format. I'd like to improve our Pull Request reviews because reviewing Blueprints just doesn't work today in my opinion.
you could potentially use blueprintue.com and export blueprints to text into there
but you'd have to make a build system for that
You can use the blueprint diff tool. It's still technically running the editor, but it's a standalone tool that can be launched separately.
Still not a great experience but... better than nothing I guess.
UE4Editor.exe <path to project> -diff <path to left> <path to right>
That means there has to be a way to generate diffs to attach to PRs
Not really... unless you mean taking a screenshot of the tool.
There is a textual representation of blueprint but it's not meant to be particularly readable, and it won't fare very well in a normal diff tool. Your only real option is to download the change and use the blueprint diff tool.
Fwiw we use this site to show BP's in a useful format when reviewing, but it doesn't show diffs. When you think about it how would you expect a generic BP diff tool to work?
probably how the one that already exists works... which is unfortunately not great but it's better than nothing.
Hey guys big problem here and searching for a solution
I use perforce for my work
The project I have is almost 60gb
I am about to do a format on my pc because I purchased a new disk
Although I donβt want to download the project again
Is there any way to make it sync after the format if I keep a copy?
the perforce server "remembers" what files it has sent you... if you copy the workspace exactly somewhere else and then copy it back, it'll work fine. if you are reformatting, your PC might have a different name and you might run into issues with P4 telling you that you don't own this workspace. similarly, if you're putting your workspace into a different spot it might throw similar nuisance issues at you. it's possible to get around these with enough willpower and/or possibly admin help
Okkkay
sidenote if you haven't turned it on already and if your P4 server can push harder, using parallel sync can change your download speeds from like 10 Mb/s to 100-200 Mb/s
for the tradeoff of losing a progress bar
The problem is that server has slow upload speed almost 5 mbps
So
I have all the willpower to learn how not to download again all the files hahaha
I think one time i literally renamed my pc to get access to an old dead workspace from a dead pc. But admin should be able to edit the workspace
I have admin rights
So if I find where to fix it
Found this
Letβs see if works
I don't think this is what you will need. Although the note about not having any work in progress/checked out files would be wise
You won't be trying to change the workspace name. Just the host pc name and maybe the workspace root directory. Properties of the workspace to trick perforce into thinking nothing has happened
Okkk
Let me do the format
I will take a copy in my ext had
Harddrive
And then we will see
Automating that should be possible. If a human can copy paste stuff, so can a computer. Might not be worth the effort, but it should be possible
