#source-control
1 messages ยท Page 40 of 1
My idea was using one of the laptops running the server
which im not sure if that can happen
People can connect to your Perforce server via the Internet.
When i say Locally i mean on your machine.
People just use your IP to connect
In P4V
@wide turtle The only requirement to be able to use a local p4 is that you can resolve your ports. Some ISPs don't let you forward, but with LAN that shouldn't matter.
thanks guys this makes sense
noob question here - I pulled my project from my github, where I don't track the Saved folder, and it was unable to be built without a log file - is there a workaround or should I just upload the logs?
It just needs the Logs folder to be created. For some reason it cant manage that on its own.
@hexed sandal
Thanks, good to know. much appretiated
Perforce is placing copies of the .db files in the base directory of my drive P:/ as well as my P:/...../perforce/server directory. I am specifying the p4root when starting p4d with the -r command. Does anyone know why this is happening? I would like to have only the .db files within the P:/...../perforce/server directory
does anyone know whats going on with github
i've been over my git-lfs quota for 4 months and its not complaining about it
does anyone use Plasticscm?
and if so, is there a good way to link engine & game folders?
I kinda want to something akin to perforce streams, but there doesn't seem to be a good way to do that
I'm using Perforce and my packaging fails instantly. Do you have to check out entire folder before packaging?
Technically no. Only of the folder you want to write into is readonly.
But the error should tell you that
Odd. When I check out whole folder it builds fine. I should just need to fix any read only folders?
morning - best practices for working with redirectors and source control?
how are people dealing with potential fallout from stuff like cleaning up redirectors?
assume worst-case-scenarios i.e. distributed teams and large numbers of people
Anyone ever figured out to work on same file in same project for TeamWork ?
The only way is VM afaik
@summer lantern if you use perforce it kinda just works, it will try to check out every file that references it and only delete the redirector if it was able to fix all refs
redirectors are automatically deleted?
no, it does this if someone runs the fix redirectors thing
if you run fix redirectors, I don't think any files get checked out
it does if you use the button in the editor
so what happens if I have Actor A inside a level, then someone else names A, B, fixes up redirectors on their machine, then submits?
in your scenario that shouldn't break anything?
assuming nothing else was referencing A, they'll be submitting a changelist that creates B, deletes A, and modifies the level
then it will notice it can't check out the level and not delete the redirector on their machine
okay, now what if the level only exists locally on my machine?
okay then you might have a problem
this is the problem we've been encountering, haha
I was kinda hoping people would have a workflow that avoids this kind of thing, since teams can get pretty big
that's an interesting problem, now I'm wondering what you'd do about it too lol
@open bone Yes I used plastic for a while
I'd love to recommend it
but I just can't
it's fast when it works
branching is good
but then you can't import unreal from git
because it is simply to big and plastic can't handle it
and you have ignore.conf which works like crap
you simply can't make viable ignore rules with it for unreal
beucase it first apply one set of rules (ignore) and the other set of rules (unignore)
it does not apply them from top to bottom like git or perforce
Anyone knows any affordable source control services? Im very familiar with perforce and the actual management of files, but I dont have any idea of what I would need to set up my own little repository for my personal projects so I can work on them in different workstations
any pointers on the subject are greatly appreciated
I noticed that about the ignore rules
but given the fact that it has a "cloaked_files.conf" seems to create a much better situation
you can just ignore the main intermediates and then cloak the bins
and you get a pretty good ignore set
@desert arrow Wrong channel, you want to be posting in #share-your-stream
what jack said
Hey, im running P4v on a 4.19 build, what is the correct way to upgrade my project to 4.21.2 and then source control it?
do i just make a copy and upload the copy, but then loose all the history?

haha, true, normally I have that channel selected ๐
Anyone ๐
I tell everyone to check-in and don't touch anything fixup and commit
One person to fixup them all
@fading quartz Just upgrade on the spot and then any assets/code you need to change add that to your next CL and submit that as "Updated to 4.21"
@smoky trench isn't that risky for breaking your build?
how?
I don't know :/ that's above my tech knowledge
That's what version control is for haha
ue4 recommended to me to make a new copy
haha
damn i just made a copy and did all the shader compiling haha ๐ข
But seriously, that's the point of version control so if you break your build just revert to the previous file versions
yeah true
im super confused, i converted it in place
it took like 1 sec, and in p4v there's no new files to check in
Are there any integrations that work with UE4 that aren't perforce?
@inner linden
Been in for ages
I know SVN has been a thing
Mostly just dont have a place to host the perforce at the moment
@fading quartz You may need to run a reconcile but did you have to update any assets?
no I didn't have to update anything, I just had to delete some files in the Intermediate folder
I think because I have all folders into p4v and maybe I wasn't supposed to have it :/
Im using amazon AWS, it's free for a year.
Oh, not bad. How much after?
im not sure :/
@fading quartz You have all folders :/ why lol?
Their lack of specific pricing is what bother sme
I know it's supposed to be per usage
yeah same lol
but it still pisses me off
I locally host my P4 server
@smoky trench cause im a noob
and i didn't realy the docs properly i guess
ill try reconciling offline work
Lightsail looks neat but the data transfer caps make it useless to me
OVH is fine but low storage size with expensive upgrade options
Did you have to update any assets/plugins/source code @fading quartz for the upgrade?
because if you didn't then there won't be any changes
OVH has the unlimited data transfer but their storage upgrades are pricy
nope, maybe because im blueprint aonly?
how much storage do you need?
Looking for about 60 gigs
BP's will only be updated when saved, so unless you saved the BP's they won't come up
Even 50 would be fine honestly
we use linode for hosting p4, but, the repo is not 60GB lol
how much redundancy does p4 use?
none
Hmm
What did you reconcile? If you have your intermediates in P4 then yeah there will be a bunch of changes. But you sure as shit don't want intermediates or saved in P4
you're responsible for backing it up
Right, I think I meant linode. not P4.
linode offers daily backups, so that's why we use it
Sorry.
so i should remove them from my worskapce view?
@fading quartz You should delete and obliterate them imo
The Linode Backup Service is a simple and reliable on-site backup solution for your cloud server. This seamlessy integrated system performs backups without interruption.
is explained here
kk thanks
what are they Jack?
you're in your depot view, go to your workspace view and mark them for delete
one of my blueprints just disappeared\
Check the folder it was stored in explorer
not UE4
it might still be there just not imported to the engine
I forget how you can re-import them though
i see them in the depot but now the engine doesnt see it
You pushed the file to perforce previously? Just restore the file.
I don't have it open at the moment.
I dont understand how its in my changelist checked out
but the engine doesnt see it
Like I said, the engines link to the file is probably broken
But the file likely still exists on your hard drive.
If you delete the intermediate folders and reopen UE4 it will recompile all the files
And it should show up again.
maybe because i had it still in checkout
hmm
oh man so strange i delete all the intermediates and it says its 4.19 instead of 4.21 in the epic launcher
so it's probably not reading that file because i modified it via 4.21??
sounds like you're trying to launch the game using 4.19
and you have an asset saved in 4.21
so strange. I did the convert in place again and i see it
because its now launching with 4.1
4.21*
when i click about, i see its 4.21, but again no updates updated like u asked me before
If you're a BP project then the assets won't show up as changed unless the BP is saved
gotcha
thanks so much @smoky trench and @inner linden
appreciate all the help
๐ฏ
Indeed, glad it's working.
I highly recommend using the internal UE4 stuff to manage your assets rather than directly touching p4v
I only ever used p4v to pull a prior revision of an asset
and I generally closed UE4 while doing this to avoid any problems.
I probably didn't need to, though.
good tip, will do!
Also save often and always check stuff out if you're working on it ๐
Especially if you're with a team
the in-editor stuff is very unreliable if you're doing anything more than change + submit
(and conversely check it in too when you're done!)
if you're going to revert to a previous version of an asset and UE is open, make sure you do it in UE
otherwise just close UE
last time I tried to do that the editor just crashed lol
Move operations you want to be doing in UE
I had a lot of problems reverting assets within UE.
I can't recall exactly what was causing me problems.
I just remember that the work around was to close it and revert from p4v
I'm doing something like this:
check out, modify, move, whatever, submit from the editor
revert, sync from p4v with the editor closed
If you have the time and skill to set it up UnrealGameSync it makes it really easy to work with perforce and UE4. It removes any need to mess around in p4v and makes it super clear what branch/version everyone is working on and allows voting for builds and automatic distribution of binaries to artists so they donโt have to compile anything. Just amazing tool. But itโs a bit of brain surgery to get it working with Perforce if you donโt fully understand perforce.
do you use different branch for engine version (for example if you want to build dedicated server from source, you dont want to push that on main branch, because artists will need to rebuild everything for regular engine version)
so how do you handle different versions, because i want to build dedicated server from source, but i dont want to push project settings on branch, and so on.
main question is: how do you handle different versions of engine and building dedicated server and not affecting other programmers/artist
Hey guys, question, I devellop kind of long under unreal aswell with bp and normal code, but now I want to make a kind of bigger projekt, that I just that huge that I cant do the lv desing and so on allone. As u allready be able to think, I dont realy know how it work, but I have some questions first, : can we(2 or more) work on the same part of a level at the same time? Because I see its on a server and then if I save something, then they .... would it only take the latest save and the other not? thx for u answers ;D
split it onto sublevels of a main level
So you might have MySpecialMap, the main level
but you can also have MySpecialMap_North and MySpecialMap_South. Or you might opt to do MySpecialMap_Lighting and MySpecialMap_Gameplay
you can edit these sublevels while being able to see the others, so you don't lose context
But this isn't really a topic for #source-control
Ah ok thx for the answer that means I have to use Spatial?
Spatial doesn't do that either
There's no current solution for two people editing the exact same map asset in real time.
I just told you the next-best workaround.
Oh, and if you submit a thing before they do, their submission won't go through
at all. They have to pull your changes, redo theirs, and then submit their changes.
ok thx for the answer, I see a post for a old plugin, that wasnt published and so I think source-control had this within allready
@neat grotto hey just re-read our conversation from almost a year ago at this point and it helped me setup UE4 with Perforce again!
Just figured I'd drop in another thank you for your time haha!
Hope all has been well ๐
Hey glad to hear it! ๐
Server Price Breakdown: DigitalOcean, Amazon AWS LightSail, Vultr, Linode, OVH, Hetzner, Scaleway/Online.net: - Price Breakdown.md
Also this might help someone in the future
Helped me out recently
@inner linden Nice! That looks quite handy for choosing a hosting provider.
Yeah for sure
I recently purchased an OVH cloud 5 dollar instance
but uh... That scaleway...
Probably gonna migrate over to it next month
Yeah. Seems too good to be true at that price point. I'm assuming there's a compromise to get it that cheap.
Yeah, there's a good chance there is something fishy
But that being said it could be a competitive thing
Might just be more bare bones compared to competitors.
"Bring em in for the 5 dollar tier" but then everything else makes up for it
Yeah, who knows if their server deployment infrastructure is up to par with the others.
I still use DigitalOcean and am happy to pay their prices. Love their service.
Reliable, great dashboard, obvious billing, no upsells.
Nice documentation too, and even a network of tutorials from both staff and community members.
tbh i use digital ocean tutorials
all the time
for various things unrelated to their services
They have the best server setup tutorials I've found.
yeah half the server related stuff you search leads to a digital ocean thread somewhere
Totally.
I'm getting WSAECONNREFUSED when trying to connect to perforce. I have a Amazon EC2 server, which p4v finds but cannot connect to for some reason. Anyone have knowledge on this specific problem that could help out? Been trying to figure this out for over a week now.
@eternal kindle That usually means the Perforce server is not running.
I recommend logging in to your EC2 instance and checking it out.
If you installed Perforce using apt, there should be a utility called p4dctlthat you can use to check if the service was stopped.
I used putty to transfer files to the EC2 exactly like in this tutorial: https://www.youtube.com/watch?v=7eVO0qXC3nk
It says that p4dctl can only be obtained as part of the UNIX package and I have the Windows version. Is this a problem in using p4dctl?
This is just a quick video to go over the first time setup for getting a Perforce Helix server going on an Amazon Web Services EC2 instance. Introduction and...
Every time I save my project to my memory stick it takes up more space than it should. E.g. if used space is 4gb and I go into my project and change one detail and then re save to my stick it will go to 8gb. Is this just to make me buy more memory?
Just dont save temporary folders (eg intermediate, vs, saved etc) those are getting more fat by the day. Run your project from hdd/ssd, and not from a stick. That would be self torture.
Whats in you guys' .gitignore file? I'm curious what kind of things are commonly excluded from Unreal/VS projects
binaries, build, vs, intermediate, deriveddatacache, saved you most def don't want those.
Saved maybe, but not recommended anyways. Since the lot of temp data being placed in there too.
ok, I'm really starting to like Plastic
you can hide changed files (like bins) and it's like plastic ignores them but it doesn't actually
so you don't have to commit them
but a build server can
problem starts when you have literally hunderds of files you want to ignore
and must add them one by one ๐
Was working over one of the maps in the StarterContent folder and pushed to git without the build data for the Minimal_Default map (using the gitignore from github it excluded it). Now I pulled the project on a different pc and when I ran it, my scene was gone. Did I miss something?
Hey guys! For the source control, i need to buy a server to do that right? since there aren't servers that gives enough space for free
right?
@digital light for perforce yeah youโd need to either host on your own machine or rent a vps or dedicated server.
fi I deleted binaries intermediate etc will anything happen?
I am not so good with this side of things and am scared to make big errors
@faint cairn ?
You asked for "How to work on one project with multiple people" or not?
Yes
O ok ahh
In the meantime you can look into "Perforce" and "DigitalOcean"
Where Perforce is one option for Source Control
I see
And DigitalOcean is one option to host a server
Cause that central data needs to sit somewhere that both you and your friend can access it
Not if you want to host the Server
That costs ~5$ per month
You can also host the Server on your own PC but then that one most be online etc. to be accessible by your friend
It creates a copy of the project on your PC
And a copy for each newly submitted file
The system is used to make sure that you can go back to earlier revisions of files etc.
You should technically always use it for all of your projects anyway
Keeps you from losing all files if you are unlucky
@jolly fog If your unsure about deleting something. Just move it to your Desktop or another folder elsewhere first. That way you can easily recover it if something goes wrong.
The Binaries and Intermediate files are all auto generated. Intermediate is safe to delete for the most part. Binaries can be deleted if you are using a C++ build that you can then regenerate them with.
Binaries and Intermediate files typically should not be added to a Source Control depot
Could someone explain the downsides of Git to me? We've been using it for a large project and would like to be aware of the pitfalls.
should i ignore .dll files for plugins, and how to handle plugins in project? does every PC build plugins for himself or?
anybody around that can answer a question on the UGS Launcher and using it with Perforce?
Bah nevermind. I always get tripped up by our multiple p4 server setup
what do you guys think is a good source control for large UE4 projects? with lots of blueprints and whatnot. I was thinking of using Git-LFS, but now I'm leaning towards Perforce and using Git for the code
perforce for the entire project
yeah I really think I'm going to go with perforce. Git-LFS is just making things way too time consuming
I've had problems with Perforce for actual code projects though, the checkout and locking system is worse than SVN from what I've used
don't use that for code
just work normally and reconcile source folder when you're ready to submit
locks are for unmergeable files like uassets
Why are you locking code files on checkout anyways? They're just text so it's safe to multi checkout and resolve on checkin
Hah what @dusk dove said basically
is there a guide anywhere on just installing perforce and paying for a server somewhere?
all i see are like 100 minute long tutorials on setting up location repositories
like is there anything that i can setup in 10 minutes that just works?
no
use the package manager install if you want to run it on a linux server
lots of ancient tutorials around
i dont care where i run it. I just want to install perforce, buy some space online, and use version control. i dont get why it's so obtuse...lol
well you kinda set the thing up once and then it runs on its own forever
except for server/security updates of course
@solemn cypress what problems have you had with git lfs?
can I ignore the map builtdata files?
then everyone has to build their own lightmaps
If I delete something from my project and then sync my project. Will it remove that information from the other peoples computers or will it say that itโs not in the depot for them?
You need to commit the delete action to the Source Control solution, if its deleted on the SC depot it will get deleted from other peoples machines the next time they sync.
Ok thanks
A common question with Unreal Engine 4 (UE4) is "how do you set up version control?" I think this is a very important question and if you have never used version control for your projects you are crippling yourself from the start. I won't go into details about why you
Ty
that guide is loooooong overdue for an update :v
I used it a couple months ago and it worked perfectly out of the box on the first try, shrugs
the author allar is in this discord so if you wanna dm him and beg him to update it, I guess you can try that lol
I'm sure it still works, but it's not the proper way to do it anymore as they offer package based install now which is much simpler and better
i am thinking about squashing my git commit history down to 1 commit to save space with git-lfs on git hub, has anyone tried that before?
honestly we should just be recomending SVN to noobs
way easier than perforce and works damn well
Ugh, sorry about the delete.
If I wanted to keep the main files on the local network but have the whole thing backed up to a cloud server daily is that easier to setup in SVN? In Perforce you have to create checkpoints and it's not straight forward.
yes
just commit your project to the svn server every once in a while
with tortoise-svn, its literally right clicking the folder and selecting "commit"
and thats it
thats the biggest strenght of svn. With tortoise svn, even non-technical people can use it
I'll have to look at it more when I have some time in the future. The one time I had to restore from a perforce depot it didn't behave exactly how I had hoped and some of the work had to be recreated. I typically keep a local linux server with my depots and then have that autobacked up offsite daily. I occasionally have internet outages, not often, but I like to keep as much local as possible. I'm physically near one of the main backbone rings and a few large data centers so service is fast as hell even with large backups.
by local I mean on the network not the workstation
It's not that deep of a tutorial and not perfect
https://presence-origins.com/ue4-perforce-source-control/
@burnt shadow I used it last year and again this year. Mostly for the TypeMap settings though cause I'm lazy like that.
Anyone know of an easy way to implement git lfs file locking into the editor, we can do it from console already, but that's not very artist friendly ๐ or will I have to make some sort of plugin
@rotund bobcat You can use the new UE4 git plugin which hasn't been merged back into the engine yet: https://github.com/SRombauts/UE4GitPlugin/archive/master.zip
Also our fork: https://github.com/ProjectBorealis/UE4GitPlugin/archive/pb-changes.zip
cool thanks
Need help when trying to launch my project I get the following message,
If I say yes I get
Can anyone help me to fix this. if I can't fix it it's 3 months of work gone.
well... did you try what it told you to do?
you mean rebuild from source manually?
open the sln, click build and see what the problem is?
If so. No I don't know how to do that. I have visual Studio 2015 but know how to rebuild it. If I click Yes that is what got me the 2nd screen shot.
trying that now
The 4.20.3 UE4 engine is the only engine I've ever ran it on. ( Still loading.)
VS2015 is still loading.
ok it says Ready. How do I go about rebuilding it properly as it asks to do? will this stop me from being able to load my project in UE4?
you right click your project target in the solution explorer and click build
then close the error list window and look for errors in the output window
then fix the errors
I'm sorry. What is the project target? I see the solution explorer on the right.
the one under games folder
the Udemy_Classic_01 right directly under games?
yes
build or rebuild?
Zeblote?
it says something about needing update 3. trying that and will try to build again.
Zeblote, Thanks for your assistance one this. It's updating to update 3 now for VS2015. Hopefully this works.
on this*
I'm now getting this...
close the error list window and look for errors in the output window
the actual error is this part
I haven't seen this error before - I can't tell you what it means
ideas on how to fix it?
no
why are you using vs 2015 anyway?
it's 4 years old now
you should be using vs 2017
or 2019 with 4.22 in a couple weeks
It's all I have right now... Is there a way to get rid of the c++ code it's trying to load? I didn't mean to click that in my project... I just don't want to lose all my work. about 3 months worth.
oh, you don't actually need to use c++?
you didn't say that
in that case, delete .vs, Binaries, Intermediate, Source folders, delete Project.sln, and remove the "Modules" section from Project.uproject
also delete the VC.db file
the Binaries folder?
the Udemy_Classic_01.VC.db file?
what about the .sln file?
I'm getting the same error asking if I want to rebuild them and it puts the intermediate file back in.
and Binaries
how do I remove the "modules" section?
notepad I'm assuming?
Can't promise this is the solution, but if you're following an old tut with new UE4
you have to provide a different path to includes, and you should be including far more of what you use.
Eg
SceneComponent.h becomes Components/SceneComponent.h
with a class USceneComponent; in your header (at the top, outside of all classes/structs) and the include in your .cpp
I'm trying to get rid of the C++ stuff from my project it's what is stopping it from loading... I closed it but didn't save it hoping to undo what I clicked... wasn't trying to even use the C++.
I don't know enough to fix this... I just don't want to have to start over...
If you think C++ is preventing you from loading, and you don't know whether your BP reference anything from your C++..... you're at risk from having to start over anyhow
A lot of these aren't hard errors, but they probably aren't covered in a tut
how do I remove the "modules" section correctly as Zeblote stated to do?
delete the folder
I have the whole project file backed up so not worried too much about messing it up further.
there is no modules folder.
oh I see
right click the uproject and edit the file from the context menu
Its JSON
be careful with the syntax, but there's a section on Modules
context menu?
I understand but what program do I use to edit the uproject file with. notpad? wordpad?
notepad
anything would actually work
uproject isn't actually a different format - the extension just registers to open with UE4
ok this is what I get...
{
"FileVersion": 3,
"EngineAssociation": "4.20",
"Category": "",
"Description": "",
"Modules": [
{
"Name": "Udemy_Classic_01",
"Type": "Runtime",
"LoadingPhase": "Default",
"AdditionalDependencies": [
"Engine"
]
}
]
}
its actually a text file
{
"FileVersion": 3,
"EngineAssociation": "4.20",
"Category": "",
"Description": ""
}```
Here you are, this should work
So the trick here is....
so keep everything above the } description section...
you wanna find the enclosing brace (its a square brace)
A potential snag is that there is a nested [ ] within it
but if you keep count of opening and closing symbols you'll be alright.
any case.... your sentance doesn't make sense so I think you misunderstand the actual transformation I did.
so it should look like this
{
"FileVersion": 3,
"EngineAssociation": "4.20",
"Category": "",
"Description": ""
}
no comma after "Description":""
, represents that something else follows... correct?
I think it's loading...
Thank you ImmutableLambda and Zeblote so much!!! How do I make sure that when I resave this again that the same thing doesn't happen all over again... anything I need to look for or should this have fixed it 100%? It is loaded in UE4 and everything appears to be in there.
hey mates, have somebody using Git control version on UE ?... i donยดt know why but my classes are not commitables... is this expected ?
i have checked on github, all my maps, textures, materials and models are there, but not my cpp classes
So, I'm trying to lock a file but it says the repo/info/lfs/locks does not exist, because well it doesn't
how can I make file locking work then
we're using bitbucket btw
pls help
perforce
Anyone in here using Git LFS 2.0 file locking with their UE4 project?
@full horizon Did you determine what happened with your Git setup?
Yes i fixed, but im not using internal source control of unreal, I'm using github, there i can commit cpp ๐
perforce is expensive as shit though
Yes, too expensive, non accessible for mortal like me too ๐ฌ
you can use it for free with 5 users
Perforce's streams are messy in comparison to Git branches, in particular when merging back
Hence why so many Perforce users don't use them, or use them well
My team really wanted to make it work, but trying to use Perforce in the feature branch style of something like Git Flow was just painful.
Git and LFS was a game changer for the team. We all had good Git knowledge from our day jobs, but LFS really took care of the main sticking point for us. Git is not good with binary data.
We first made use of Github, but the cost of LFS on that platform was prohibitive as they charge ( or at least did ) for not only the LFS storage, but the bandwidth to access it. We ended up choosing Visual Studio Team Services ( VSTS ), as it offered a good task/ticket system ( similar enough to JIRA ), but also unlimited free private Git Repos with full LFS 2.x support. VSTS also offered continuous integration, and good ties into Jenkins. Overall it was a win for us compared to other offerings.
Is perforce the most widely used version control for UE projects? I've plenty of git experience but zero experience with perforce, is it similar?
Also, does anyone have any recommendations on where to host the perforce server on a low budget?
linode works very well for us
reasonably fast and with daily backups
you can also host it locally on a spare pc or something like that
Thanks I'll check linode out
p4d requires basically no resources, so the only thing you need to look for is the disk space to store your depot
@fresh trout do you or your group have server admin experience? There are other companies that offer more turnkey solutions for Perforce if you want an easier solution. ( they may cost more )
I'm working on a project alone, I had a bit of an issue yesterday which corrupted one of my blueprints so thought now would be a good time to get version control in place. Ideally I wouldn't have to manage any servers, I didn't realise I would with perforce until looking into it tonight which is putting me off, I'm still deciding whether to use it not or just throw it on github and call it a day.
for working alone git is probably the better option
the main reason to use perforce with unreal is fast locks for binary files when working with multiple users
While Git LFS 2.x has file locking, it is something "you" need to do yourself.
Perforce is more direct about it by default
well we tried lfs file locks and it was slow as hell
Hmm I use them all day, haven't noticed any speed issues at all.
like, actual minutes to move a small folder in unreal
because the thing would be sitting there for 5+ seconds on every single lfs action
Hmm something seems wrong then, never had any performance issues at all with LFS file locking
Haha I see your comment from april 2018
I will look at timing my locks this weekend
We're using git for a 100 person entirely remote team!
Works pretty well
We've forked LFS to multithread locks
and we've made numerous improvements to our routing/networking which makes git scale a lot better
you mean "works so badly we had to go out of our way and modify it"
it's kinda rude to put words in someone's mouth
no, i meant exactly what i said
I'm sorry you couldn't get it working
Hey all, me and a friend are currently teamviewering my pc to work on our project but was wondering if there was something where he can access and work on the game from his own pc and when he saves or updates the game it will mine too can someone help
Yeah, you basically setup a, for example, Perforce Server on a Digital Ocean Droplet (5$ a month) and both of you can connect to it and sync the files @mental jewel
Thanks @faint cairn could you explain more if i was to purchase a server on digital ocean what would we have to do to get the files? From mine to his
There are tutorials, specially for UE4, Perforce and DigitalOcean if you google a bit
Usually the top most result by Allar
That should get you going
So we need two branches in perforce, a development branch and a release branch. Does UE4 support this? Can it switch between them without needing two copies of the project?
Can we stop promoting my perforce guide
update it, if you're so self concious 
update it but the update just deletes the guide
I could see him making a new one, but people still just use the old one
When importing an asset such as a texture, this creates a uasset file in the Content directory, however the original texture file (jpg/png) is not added to the Content directory, do I need to also copy the original texture to the Content directory for things to work as expected for other developers checking out the project?
I ask because if I open the texture asset from the content browser I can see the source file pointing to a location on my machine which won't exist on other developers machines.
@quaint obsidian Your fork of Git LFS, are you going to be pushing that back to the project?
we're already talking to git LFS about it
but we are actually making a refactoring of git LFS too which might be a candidate for 3.0.0
@quaint obsidian Nice! Good luck!
I'm really glad open source allows us to rapidly iterate on this stuff and share the benefits with the community
@quaint obsidian With your multithreaded locks, how much of a performance increase did you see with locking. Some people have seen upwards of 3 to 5 seconds per lock. I think I sit at maybe 1 second + or so ( killer network and box ).
well of course it would have the same time per lock, it's just improving the times where many are (un)locked at once
we saw 1000 locks take 39 seconds
instead of 4 hours
my blueprints aren't syncing on perforce correctly. It only seems to save like half of the things i do to them. Like if i change a default value of a variable and then submit it, perforce says it's successful. But then i get latest and it doesn't save the change.
You shouldnt need to do a GetLatest if you were the one that committed those changes, you would already have them locally. Sounds like your either not submitting correctly (which means when you GetLatest your getting an older version) or the asset isnt saving properly.
I'm submitting by pressing Submit to Source Control in the editor
if that's not the right way idk waht is...lol
Typically i submit through perforce, so that i can check the changelist itself before doing so to make sure that i havent missed anything or am checking in something i dont want to in that changelist.
I recommend that you try this as well, verify your submit in Perforce and make sure its committing what you want committed.
Ok so I'm going to check it out. Change a default variable type. Compile and Save. Go back to the P4V and submit it. Press Submit. that asset is showing up in the change list
Submitted Change. 1 File edited
sync in UE4
crashes my editor lol
but when i open it does have the change
Get Latest?
Yes
ok
@quaint obsidian Great to hear
@runic trail You dont need to do a GetLatest every time you commit something. Usually what i do is a GetLatest every morning before i open the Editor to start work.
yeah i'm just trying to help my friend
he did get latest
and it gave him 50 compile errors that i dont get
he's joining the project
so we'll be good
thanks for your help
Well sounds like someone hasnt committed something that is a dependency of something else that has been.
nah, it was literally his first every load of the project
and i have nothing checked out
ue4 just didnt save everything
gotta do perforce
we use google cloud storage
we used gitlab self hosted and used LFS cloud storage in the gitlab config
Out of curiosity: does anyone here version packaged builds of their game? If so, do you version them along with your project files or separately?
built versions of our game are commit artifacts
@jolly fog Perforce has a -N option that allows you to dictate the maximum number of revisions for a file type if I recall. So perhaps for .psd files, you could set that to 20 or some value you are comfortable with to help keep the size of the repo in check. I am not a perforce super user, but I do remember that particular feature.
@jolly fog I personally use VSTS ( now know as Azure DevOps ) for my project. Unlimited free private Git Repos with LFS. It has been amazing.
@jolly fog Yes, no storage limits.
I have been using it for years, and have a good sized project. With the LFS storage alone I have to be easily over 50GB of use already. I would caution about putting certain things into source control. For example, if I was in your situation where I bought an art pack for use, unless I modified the art pack itself, I wouldn't put it in source control.
As it can be re-downloaded easily.
This is for Git itself ( filename .gitignore ) https://pastebin.com/y5VfMjJB
This is for LFS ( filename .gitattributes ) https://pastebin.com/Vh0VDvpn
These are good for starting out on the right foot with Git with an UE4 project.
@jolly fog I am assuming so. Obviously if they feel differently they will contact you. I do know some people tried to ruin it for everyone by putting tv shows and movies in their repos.
There are alot of added things that would be common for a developer
@jolly fog Game development is managed complexity ๐
I would recommend having a batch script that helps setup new machines. How large is your project people wise?
@jolly fog Because VSTS is free for 5 people or less
Ok
Azure DevOps does cost after 5, but it isn't too crazy. I know a few teams that "share" accounts amongst their people ( team of 11 ), and they found a way to make it work.
@jolly fog Sure thing, glad to help. It can be tough to know what is out there, let alone have any history with those offerings.
@jolly fog Our project used to be self stored on my own hardware via Perforce, and Dynamic DNS. It was "ok" but Perforce branching was something that lacked alot of what we liked about Git. There were some limitations for the free Perforce setup as well. We moved to Github, but we also had issues with binary data, so when LFS on Github was announced we jumped on it. Due to them charging not only for storage but for bandwidth, 4 fresh clones and we were out of bandwidth for the month, that wasn't sustainable cost wise.
So I looked into VSTS
Currently we are integrating Jenkins into our VSTS setup, so we can have automated builds for iOS and Android.
@jolly fog Some are, but they usually throttle after some threshold.
ah
where did you find a provider with a sensible $5/TB bandwidth rate?
I was randomly looking at the google cloud storage thing someone mentioned above and their bandwidth is $100/TB lol
I have had to start looking into CDN's, found a couple good ones. Our goal is to make sure our game is downloadable over the air without wifi, then trigger CDN pulls based on what section of the game you are in. Segmented to use as little as possible from the CDN for those who download the game to try it and leave.
did you find any CDN providers without the insane 10x "enterprise" markup?
like you'd get on azure or aws or google
Edge Delivery 200 was the one I was looking at, 10TB for $200
The big thing is the distributed setup, so that no single point is the only point of relay
Meaning the guy in Ireland downloading is getting from a different point than the guy in California
interesting
Do it yourself off Amazon S3 is INSANELY expensive
aws = amazon web scam
Exactly
Comes out to something like $8 per GB
When all is taken into consideration
Highway robbery
I am talking with multizone CDN style handling, just straight standard S3 is closer to what you stated, it gets crazy the instant you need to do multizone
You get charged for interzone traffic
it is gross. I sat with an AWS rep to go over the CDN delivery setup
Makes StackPath's offering look super cheap
p4
git lfs
at cxurrent stage
is just not worth it
it is slow as fuck
doesn't handle exclusive checkouts automatically in unreal
and every modification of file while under control of git lfs in unreal takes ages
p4 protocol is chatty as fuck
but it's still light years faster than git lfs
@river tinsel haven't had any issues with Git LFS currently. Fairly large project, makes use of Git LFS for a ton of data. Who was back ending your LFS data?
@toxic spoke tried azure devops, and self hosted
@river tinsel I am currently on Azure DevOps, the speed for LFS has been fast ( file locking less so, but not as bad as some users have experienced ).
All .uassets are under LFS as well all other binary data. Our project is pretty large, and LFS has been smooth.
Then again we don't have artists putting 300MB ZBrush files into it. Most of our file sizes are below 30MB, the majority much smaller obviously
That "shouldn't" be a problem. I have a few files of that size I am sure.
I will say this, alot of people don't keep in mind their connection speed between their Git and LFS server and them. I ran into this with a few VPS back in the day when I realized all of them were limiting my speed. I was getting 2MB to 4MB per second from them. It was horrible... Even Github I find to be pretty slow. Our VSTS/Azure DevOps connection seems to be much faster in general.
It may take a few moments to push my changes back to origin and LFS, but I generally have other things I can start doing, so I am not sitting there with a stop watch ๐
@jolly fog My issue with Perforce is the following:
I didn't like the whole stream branches workflow, especially when merging back. It would stomp my commits back down and not have the history of the commits from the feature style branch. This got worse when there was more then one developer actively working on the project.
The next issues was that the cost of Perforce was expensive if you couldn't fit into their free tier, which was becoming very difficult.
@dusk dove Perforce?
yes
Yea, Perforce gets nutty quick
After working with git for so long, it is hard to imagine not having great branching/merging tools
Tools like GitKraken super simplify Git as well.
Git bash is totally good ๐
too bad gitkraken absolutely dies with unreal engine
@dusk dove What do you mean? Me and my team use it with UE4 all the time, on a fairly large scale project.
Is there something particular?
when you try using it for the engine itself, it shows tens of thousands of modified files that should be ignored
Hmm we haven't run into that, then again we are pretty specific on our .gitignore file construction
you made a custom gitignore for the engine folder?
So you are getting false positives?
yeah it seems to fail with the inverse gitignore that unreal is using
hmm we haven't seen that at all so far, then again we only just recently ( like 3 months ) started handling the engine on our side
maybe they finally fixed it then 
This is for Git itself ( filename .gitignore ) https://pastebin.com/y5VfMjJB
when I reported the bug like 2 years ago, they said they could reproduce it and were gonna fix it, and then nothing
That is our primary .gitignore don't think there is much magic in there
this is for a project folder right?
we had something like this at first but it was causing problems with it ignoring all binaries
so you can't keep a .lib/.dll of some external library around
If we need something we should have the source
If we run into something where we have a precompiled lib that we don't have source we will amend
We wanted to make sure that if something could be recompiled that it would be as part of the process.
So when we were using Amazon Game Sparks, we had the source for the SDK which we would compile on our own.
If we had been handed precompiled libs, then we would have made an amendment to the .gitignore and called it a day
It is nice to know if something that was done in someone's setup / branch caused issues beyond their intent, or if there is something wrong with the developers dev environment. Sorta like a canary in a coal mine.
Call me old fashioned that way ๐
For git, we use submodules for plugins and binaries so that dirty changes to the submodules made by programmers can be ignored but artists can still pull binaries from the submodules
the engine is using a custom tool of ours, ue4versionator, which automatically downloads an installed build of our custom engine on checkout
the engine version is in source control, within the uproject file
submodules are something I haven't gone too deep into "yet"
@quaint obsidian do you use a Gitflow style of branch development?
Only required for programmers! We have a single branch for artists, but they can optionally do feature branches. Some do for some breaking art changes, like rigging changes. But for the most part, artists are more used to Perforce and using a single stream. So, we accomodated that workflow within git and they all work on the same branch. It works pretty well because they aren't touching each other's stuff and nothing breaks.
Then, we have a development branch for programmers to create feature branches off of. These are merged after a certain level of quality and inspection.
Finally, we have a master branch that is our development game builds. The content branch and development branch are merged into here weekly.
@quaint obsidian I have setup something akin that in the past
Content branch gets merged into development branch daily.
Master branch merges into content branch when the master branch updates.
This is automated using our CI, which does these repo maintenance tasks based on checks and build passing or not.
@quaint obsidian I am assuming you have a CI setup?
Ah you just mentioned it ๐
Do you use Jenkins or Azure DevOps?
Our engine build is also CI, but manually run. It automatically deploys to Google Cloud so ue4versionator can access it and appropriately updates the uproject in the development branch with the new version..
We use GitLab.
Our own physical servers for CI.
We are setting up Jenkins on our end ( our Jenkins guy does the Jenkins work at his day job ). He is having a hell of a time figuring out the Unreal Build Tool for some reason, he feels he can't find adequate information
We might be switching to DevOps for CI
because they have free Windows builds
we have our build scripts available here! https://github.com/ProjectBorealis/misc/tree/master/Scripts
We are using DevOps for Git and Git LFS and project management. We will continue to use Jenkins and hook it up to Azure DevOps. The one area we need to look at closer is what Azure DevOps Pipelines would give us that Jenkins itself doesn't already do.
@quaint obsidian Thanks for that link, he should find it useful. @jolly fog haha
We currently build only for iOS and Android, as our game is mobile only. For our build hardware, the iOS jobs go to my old POS Mac Mini 2011, while the Android build goes to whatever windows machine is currently available.
@quaint obsidian I see you were linked to the git repo for: https://prefabricator.io/
How do you like it?
Have you seen any performance issues?
I am about to sit down and write something for set dressing our backgrounds that was going to be guided, but I was looking at this and thinking I may save time using something like this.
We haven't noticed any performance issues from Prefabricator itself, but we don't use it extensively. Just use it mostly as a placement tool for our modular assets. We haven't looked into using the random generation or runtime placement features.
The only performance impact has been from the many drawcalls, but that'll be solved in 4.22 :)
Yea that new Mesh handling is looking sexy... hope 4.22 drops soon ( was supposed to be this week )
Figured it would have been today
The amount of runtime use would be "minor" ( the cost can be soaked in loading for the next "room" ) and is probably less then 50 shapes as a whole
I would suspect it to be wednesday, thursday
@quaint obsidian Tell you what, if it is Wednesday @jolly fog will go and use Perforce, if it is Thursday he will go use Git on Azure Dev Ops ๐
no use dropbox
RCS

I also use Azure DevOps(VSTS) with git/git lfs for many years, And I didn't push engine & game binary to git repo, instead, I setup azure pipeline for engine code and game code. When someone modify the code, it will generate precompiled binary. After that, push it to Azure Artifacts(Nuget) or local nuget server, then push a git tag with current build revision. So when other people(ex: designer or artist) pull repository, git will trigger post-checkout and install those precompiled binary from Nuget server.
I am using Azure Devops for my unreal projects like this way.
is anyone using Azure Devops/VSTS getting 503 errors?
Literally the guy above you said he does
@ him?
@blazing quail hey are you getting any 503 errors w/ VSTS
no, I didn't get any errors
ok well i think something's wrong with my internet
Let me check
@toxic spoke lmk
ok
@covert fern You still seeing 503's?
Yeah
Are you using a VPN?
Hmm maybe turn off the VPN?
But it's a hardware one for our whole network
Hmm maybe heck the logs on the VPN, and see if there are some errors
Not sure if I can but I'll see
Also are you using GitKraken? or just the shell
Got a question, i have my example project(-starter content) on my GIT repo, everything is good. But ive made modifications to my map by messing with lighting, and i want to undo my changes but git isnt showing the file as changed even though ive saved it many times after making changes. Whats going on?
you need to commit the map each time you want to save your changes
How? Git doesnt show it as having changed
Thats my problem, the file isnt coming up as changed in Sourcetree or git bash
Nevermind, as i typed that i was like you know what...ive had sourcetree be stupid at work i wonder what happens if i restart it
Hello hello,
Our team has been using source control (perforce) for our UE project for a couple years. We have to build custom version of the engine for game console support and we do it on both of our systems to keep things in parity. Does anyone know of a simple way to share a single custom engine builds to multiple team members? As of 4.19 there is unreal game sync (UGS) but we are not really sure if it does this, and that's after reading the doc. Anyone have experience in this department and willing to shed some light on things?
UGS is intend for distribute engine & game binary to non-programmer, you will need put your game project beside {EngineRoot}/Engine folder(ex: {EngineRoot}/YourGameProject), setup different p4 stream and UGS meta server, then use BuildGraph to generate & submit precompile binary to perforce. You may need to setup jenkins to check if there has any code change(p4 submit) periodically. After that it will do the job well.
here is official document: https://docs.unrealengine.com/en-us/Programming/Deployment/UnrealGameSync/QuickStart
Years ago, one of our programmers just made a quick script that is launched from a perforce tool. It just looks to a build server based on project name and pulls binaries. You sync by just right clicking in perforce and clicking the tool. Haven't experienced anything better and took a couple hours to make (we already have a build server)
Hey. Does anyone know where the setting is to stop the 'Collections' and 'Developers' folders from being generated in the 'Content' folder? Some googling suggests that it's related to source control but i'm not using the editor source control and yet they are still being created. This is with 4.16 but it persists right through to 4.22 if that's the version the project was originally created in.
Is there a way to git cherry-pick and have it show up in commit history
It will be extremely difficult to know what commits we bought over without it
Think I have to do the merge manually and push it
What do you mean by that? A cherry pick will add the commit, so it will be in the commit history
Hello! I have a project in perforce with my team but we have a problem. Art assets have a source file, for which of us the path is relative and for other the path is absolute. I want everyone to have a relative path, can you help me.
Hey! Has anyone here tried the new Multi User Editing for 4.22?
How does it work? Do all users need to be on the same network? Does all users need to have the repo locally before being able to connect?
@pine mica There are docs for getting started right here: https://docs.unrealengine.com/en-us/Editor/MultiUser/MultiUserGS
How do I change this default On Submit setting?
https://i.imgur.com/9SURtfm.png
I especially want designers to change it to Revert Unchanged Files
Here's the million dollar question. How can we make perforce error when an artist tries to push a redirector. Without having then set p4 ignore
Hey guys, anyone around who can help me with perforce?
@broken loom Why would you want to disallow redirectors being checked in?
So they fix them before pushing
@robust jacinth
I know there is still the case of something checked out
That they can't fix
It is possible to do this, but it won't be trivial.
There are programmable hooks for Perforce. For example, we can't submit a changelist without a #jira tag in the description.
Or during hardlock, can't submit without certain tags that identify a person with the authority to okay the submission.
I don't know if they're all server side or some client side.
@robust jacinth we decided to really clamp down instead ๐
Set clear guides/rules, make sure they all apply the p4ignore and understand how to handle redirectors etc. It was a bit over the place before
Now when you enter our server all you see is a lobby and a channel containing just the doc with the rules and required reading
Will see how it goes
Just have to put on my dictator hat when they inevitably break something ๐คญ
@fast yoke very much in the wrong channel here ..
Oh sorry, I will delete it. Can you tell me where should I post it?
whats happening with github again? im getting lot of mail about im auto subscribed for cloned ue4 repos ^^
Same. Got like 4 this morning. Ppl are trolling I think
hah same, I dont use GitHub a whole bunch so I was confused on those emails as well
@cold siren We're working on a resolution, apologies for the spam!
great :)
dont worry i can delete those mails, just mentioned here in case was not noticed by the staff ๐
Just got back to this, anybody able to login to Github? I tried to sign in from the main page but Im just getting the Unicorn
@quasi frost A fix has been implemented for the mass subscription of new forks
The Github login issue has been reported as a separate problem, but I would try nonetheless. If you go straight to https://github.com/epicgames (for example) you shouldn't see that issue
@glass stream Yeah I ended up going that route. Thanks for the heads up!
Does anyone know how MultiUser work, because if my friends would like to join the server they just cant.... we arent in the same network the Adress is also right, and we dont know whats wrong does anyone has experience with that allready and could say me the sollution or if you have the same problem?
how have they still not figured out how to put a progress bar on this thing
@proud gust You have to do it over LAN unfortunately. I think software like Hamachi might work as well, but I haven't been able to get that working properly myself.
So I'm using Perforce with my project - do I need to run the project from the Perforce workspace folder (C:\Users\Me\Perforce\MyProject\MyProject) or can I just run it out of the epic games launcher?
Doesn't really matter, launcher will just be loading that same path anyway
Got it, thanks!
On a different note: as mentioned, I've got my project synced with Perforce. Is there a way to exclude the Saved folder from the depot but keep the rest of the folders in the project?
set up a p4ignore
Dont forget to setup a typemap file either
Okay, I set up the typemap file and created a p4ignore file, but it doesn't seem to be working properly. The workspace path is C:/Users/MyUsername/Perforce/MyProject/MyProject/ (this is the UE4 project folder). I created the p4ignore in the first MyProject folder (I believe this is the workspace folder?) and inside it is this: MyProject/Saved/**. I opened CMD and typed in p4 set P4IGNORE=.p4ignore and added it to the depot and workspace. I typed p4 ignores into CMD, but it only lists .p4root twice, no mention of the Saved folder. I'm probably doing this way wrong but any ideas?
You need to set the P4IGNORE to the actual ignore file
p4 set P4IGNORE=.p4ignore wont be valid at all
P4IGNORE=F:\UnrealEngine\General.p4ignore
Thats my ignore for example
Remember, P4Ignore files are set Client Side. Typemap is set Serverside
yes, we've been using it like that for a while
What if you have multiple .p4ignores
good question, never tried
Mmm doesnt seem safe to me... lol
presumably it uses the one in the more related folder
Absolutes are much better IMO
I'll try using an absolute path and see if that works, thanks!
I avoid absolute paths wherever possible
makes it much easier to make scripts in the project work for everyone
Sure for a larger team i guess your right.
maybe your file is outside the workspace folder then
It shouldn't be but this is my first time using Perforce, there's a pretty fair chance I did something wrong lol
๐คท
it's incredibly
that this command is needed at all instead of it simply defaulting to .p4ignore
then it would just work like .gitignore does
Yeah probably just legacy like everything else and never been updated to something better lol
Does anyone know if there is a option to make MultiUser work without Lan I mean with Server ip or so?
no, you can use a VPN
sry if I ask but I think u know more about that then me.... I know what a vpn is and I have pysphon installed at my own, but how should that help me?
Hiya folks, noob question here... I just setup perforce, and when I open my project from perforce, it created a second entry in my UE4 Launcher. Should I be opening the .uproject file from perforce like that, or from the launcher? If I open from the launcher, which copy of the project do I open? My original is located where the project files are, but the new project file in the UE4 launcher says it's located in the perforce directory.... on my C drive, even tho I put the Workspace location on my D drive?? And I navigated there... it's a streamsdepot folder that looks like it's holding all the data? I also want that to live on my D drive lol... so confusing
@proud gust VPN emulates a local network over the public net
you can use ZeroTier One for your team
@quaint obsidian ok thx firstafull if I have any further questions I come back here ;D but thx for the moment I look on this and try to work with that, thx ;D
Ok nvm the second half of my question... I'll deal with directory location later, it looks like it doesn't take up any size, really
but should I be opening the project file located in my Streamdepot or the project file where I originally created my project?
project on the left is the one I originally created, project on the right is what showed up when I opened the project through perforce and did some changes, checked out and committed...
@quaint obsidian I just have to create a local lan right?
Do you have anything for windows(10) because zerotier wont start on my pc...
i use it on windows 10
Does anyone know a good tutorial, or tutorial document that teaches how to host multiple ue4 projects on your own p4 server (in this case my own computer), and how clients can switch between each project on their client p4 app
I usually just make a file in notepad++ and rename it .p4ignore and then set it to that from the visual client.
err scroll, was reading old stuff , I guess.
lol
You can use a single workspace for multiple projects, but I usually make one for each. When you connect it will ask you what workspace and depot to use. I think you can use a single depot for multiple projects too, but I've been making a separate one for each. The client app also asks what workspace to use when you connect and there's a drop down menu to switch.
Good afternoon everyone! Does anyone have a moment to help me with GitHub? I created a repository on GitHub.com, I'm trying to connect my existing game to it. But I can't seem to figure out how to do so and I can't find any tutorials that show how to add an existing project to a GitHub repository.
@rugged rock you would need to clone the repository onto your hard drive (using github desktop app, or git command line or a gui client), copy your project files into there, then add those files and commit to your local repo (excluding intermediate and saved folders - Google for gitignore UE4 setup), then push to the remote repo.
You can also clone the repo directly into the current project folder if the repo is empty, then you can skip the copy step.
Bear in mind that this may be slow for large content files- consider enabling git LFS to deal with large binary files in a cleaner way (but I think this costs money on github?)
Anyone use gitkraken? I can't seem to get the LFS button to appear below gitflow, works fine on sourcetree so I know I have git with lfs installed
fixed
@kind geode Thanks! I got it up and running. It appeared as though the issue I had was UE4 had a Repo in it's own folder (where my project was) while the local repository for the remote was in the GitHub folder. By moving my project to the GitHub folder, it began working smoothly - Thanks for your response!
Also, I did have to use LFS, but that wasn't anything more than installing it which only took ~10 seconds.
So I restarted my PC and now have no idea how to get my Perforce server running again. I tried running p4d.exe but it closes immediately. I checked task manager for the Perforce service and it's not running, but if I try running it, it stops immediately. Any ideas?
uhh so I cloned the release branch, but it is taking forever to download
last time I downloaded the source in a zip file and then built my own repo, if I clone the release does it need to get every commit or something?
@indigo relic iirc if you're using git, yes it fetches every commit on the branches that you're pulling.
no idea about the other ones
@indigo relic may want to take a look at this https://www.perforce.com/blog/vcs/git-beyond-basics-using-shallow-clones
This is part 6 of a 6-part series on Git commands.
One problem commonly encountered when using Git in the context of Continuous Integration (CI) and Continuous Delivery (CD) is server load. Because Gitโs design includes everything in each copy of a repository, every clone ...
do you guys ignore dlls and libs in your repo or not?
1:18 PM] DamirH: Anyone had the pleasure of 4.22 crashing every time y ou use "Update / Sync Workspace" ?
With PlasticSCM
@rotund bobcat - The develop ones, no, the debug ones, yes. Need them in the repo so that artists etc. can open the project without compiling it
I have Plugins/Runtime/*/Intermediate/* in my gitignore but it's adding D:\BlackLegend\Plugins\Runtime\Substance\Intermediate\Build\Win64\UE4\Inc\SubstanceCore\SubstanceCore.init.gen.cpp to my staging area
why?
nvm think it was still tracked from previous commits
hey guys, I'm trying to use git which has always worked for me, but I'm unable to push a the repository to github now that the project sizes are around 5GB. After having to wait half an hour each time, Git tells me that my files exceed the limit of 100MB, but I've checked and I've removed all the files that are close to 100MB, but it still gives me this notification. How can I fix this? what would be the best way to have source control on large files?
i am starting to think git is not the best thing to use my .git directory is 170gb
That's impressive, how did you even manage to get so much
your .git folder shouldn't be 170gb if you use LFS
it has pruning
@fading totem you have to make sure that those 100MB files are not in the history (in any commits)
Pruning isn't automatic tho @quaint obsidian so it's easy to get it out of control
you can easily add it as a git hook
Absolutely, but an additional step that isn't normally considered
I guess, but I just see it as a setup of the tool, just like you would need to set up any other tool
Great for coders but for non technically savy developers this is a hurdle that wouldn't be obvious
Is it possible to have unreal handle multiple repositories in the same project?
My team and I do a lot of projects in unreal and want to have a central project to store our content which we share across projects (vehicles, people, blueprints, editor scripts, materials) and then have a seperate repo for each "project"
So Essentially, we'd like to have a repo for content/core
and then an individual repo for each project, which would be content/projects/"Project Name"
This way we can have our shared assets, and everyone we be able to sync with just the project they are working on at the time.
I've got this mocked up via git and an external git client, but I'm not sure if it's possible to do this using the in editor source control UI.
Hey all , new here!
I am struggling to get my projects started because of source control. I tried Git LFS but when I try to make repos, commiting them and cloning them to other machines, it all reverts back to the defualt Starter Content scene with the chairs.
Also Perforce requires me to either buy a server to host my repos or set up a local machine to be working all the time (which I don't have).
Still what are your recommendations here? Thx!
@lavish blaze Why not have everything in one repository? But you can do it with submodules. The submodules will be recursed into during the pull operation that UE4 source control does for git
Also re: great for coders Jack, that's why the coders should have setup instructions/scripts for other devs :)
I've not heard of submodules before! That sounds interesting
@neat fox What were your steps for using Git LFS in your repo?
@quaint obsidian mind if I ask you a few questions about submodules?
I don't mind
would it be possible for me to "ignore" certain submodules? Essentially what I want is an opt-in system where I can clone the sub modules I need for the project I'm working on.
I'm focused in architecture, so ideally each submodule would be a different building.
yeah so I'm pretty sure that git pull will only update submodules that have been initialized
do you guys put libs/dlls on LFS or is that overkill?
whats the best solution these days for a 5 team depo set un Unreal, I'm looking into a P4 bitbucket combo BUT there is a 10 gb limit on the depo which sucks we probably going to need at least 30 to 50 gb since we will be submitting all the source content
I have a google stream account but I really doubt that can be a good option except maybe for the source content
@rotund bobcat i make those available on LFS for our artists
it depends on how frequently you commit new binaries and how large those binaries are
hi folks. Hope someone can tell me best / good practice when using Perforce. I've download and installed, but have yet to set up a workspace or stream thingy. What I want to do is be able to work with my colleague on a UE project, only have access to one PC each, and it's over the internet.
I'm guessing he can access the server via [myipaddress]:1666 ? But the main thing I'd like to understand is , right now I have my UE project in it's own folder. Whats the best way to set things up so I don't royally screw things up for myself? experience level = new guy with source control.
Thanks in advance.
Essentially what I think I'm asking is when creating a new workspace can I point it at the existing project folder, or does it need to be a new folder?
not sure you can point it to existing folder. had some troubles setting up perforce. i found the best solution was to follow this guide: https://allarsblog.com/2017/04/05/populating-perforce-with-an-unreal-engine-source-build/
This document covers how to set up a new Perforce server and populate it with an Unreal Engine source build alongside your projects. This is the most basic setup for 'beginner' Perforce pipelines and does not cover things like streams. Please note that you should only do thi...
worked best for me
however: I'm having some issues with perforce not pushing map changes properly and trace channels. making the other person manual adding those and having to set the trace settings on each object. anyone knows how to fix that?
@burnt shadow why would u? itล one of the best guides out there. i tried a few before i managed to get it working using ur guide lol
it's outdated
so im really new to source control, after a quick google search there seems to be a few free services. I was wondering how it works with hosting files. If I wanted to collaborate. would my team download files from me? or are you supposed to host the game files on a server?
Thats up to you and the Source Control solution you go for.
Perforce can be hosted locally by you or on an external server for example.
I host my personal Perforce Server locally in my garage ๐ Its on my build server.
alrighty i'll take a closer look in to it thanks!
So anyone knows how to push map changes properly? Not all of them go through. Or the custom channels and stuff.
should .pdb files be ignored in git?
I host a local perforce server, but offsite backups (plural) should probably be a priority expense. Assembla was offering $40 a month I think a while back and setting something up with AWS didn't seem too expensive when I looked. The only hold up I had was project size was small for me.
And actually Assembla seems to have listened, every complaint I made when they first started pushing perforce hosting seems to have been addressed.
They've lowered the monthly, doubled the storage and have an unlimited package for $960/year
oh never mind, devils in the details. The gotcha was in small print.
can p4v stop being garbage
every second time I try to close it doesn't work and I have to kill it from the task manager 
it seems to forever stuck itself in the "doing something" state when the login token expires
Weird, maybe the automatic refresh of the view doesnt check the login status.
So if it expires its just stuck fetching something it cant access
Never had that issue
anyone know if git update-index --skip-worktree only affects local machine or is it pushed to all users?
nvm it doesn't
Risky enter of the day
Hello, could someone explain me how CI/CD work with git ? Can't figure out how to enable automatic builds with UE4 & Gitlab
you have to set up a .gitlab-ci.yml
@summer lantern @brittle raft Did any of your ever use "PasticSCM"?
nope
A version control that will help you develop new features in parallel, go distributed, merge in time, and never break a build again.
@white ocean suggested that to me iirc?
And @reef oriole made a proper plugin for it iirc.
Might try it out one day.
Still waiting for a way to merge blueprint changes (diffing seems to be easily possible)
No Cedric, I never used it.
I've been hearing about it for years, though it was never recommended to me
Last I heard, it was "working, but not that great", and I'm afraid I don't have any details on it.
My approach to merging Blueprints is basically don't - when I branch out, I make sure content changes will be one-way only.
Until Epic can provide a standalone tool to diff two Blueprints visually without loading the full engine and full project, I treat Blueprints like I treat textures. That's a file format problem, not a source control problem.
Yeah it's def not a Source Control Problem. I'm totally stuck on Perforce and Git (for non-bp projects). Just remembered Andi telling me about it, but guess barely anyone uses it.
Hey. We used Plastic including the plugin and cloud servers now for smaller projects and we were pretty happy. i never would try to merge Blueprints even it if works in many cases. In my last project we also saw them as binary files. It forces you maybe to split up your stuff in a way several people can work on it. We used a lot BP librarys for example. It also makes the project more modular.
We tried to use Plastic 2014 and it wasnt great. Mainly because of the lacking integration with unreal and you couldnt lock files exclusivly. It has that now. We added the file types to the cloud setup that are exclusive checkouts and it works like a charm. We work with people all over Europe. The Server is in Amsterdam and it is fast enough for us. We had only two hicups where an update took longer than normal. But you can set it up locally as well. I like it because it has an extra client for artists that is very barebone and not confusing. You can use it as distributed as well for code only while having everthing in one repro and they handle bigger binary files very well.
It is used by some. The Subnautica guys using it
Telltale.. ok... difficult :D
Rust was using it as far as I know.
We use @reef oriole plugin but I heard Plastic changed their interface. We compiled it for 4.22. and it seem to work. but the status icons on the assets where not ok.
I guess I will look into it via the Free 30 Days at some point
And see if it holds any additional value to our internal company scm
Cause "never change a running system" is also a thing. Perforce, for free, seems to work quite fine.
Hi there, I have been summoned ;)
I was working on the 4.22 release of the Plastic SCM plugin when I noticed it does not work properly (status icons not reliable) with latest release of the Plastic SCM command line interface
A nice guy from Embark Studios did some early fixes, which is great, but is apparently not enough
I am on vacation now so I should have some time to dive into the issue
It was nice to meet you at Unreal Fest Europe @white ocean !
Embark is using Plastic?
Cerdic I wouldnt exchange for Perforce. That was just not an option as cloud solutions are to expensinve.
Embark Studios tried to use Plastic SCM, but at the end they choose Perforce because they wanted some advanced feature they where used to or needed, as they told me.
Interesstin to know. I might try to ask them.
@faint cairn I've used Plastic before in production, it's actually pretty damn nice
But like you noticed, barely anyone uses it. They are doing very very very bad in marketing
But yeah, I think Perforce is the standard for a reason. More stuff out there to learn from, get help from if you need it.
are you actually making it
Soon as in the next 5 yrs?
Does anyone know how to download a specific changelist as a zip from perforce?
Without downloading the entire repo?
I just want the files that were changed in one changelist
You're gonna have to download the files then zip them up
p4 sync //<WorkspaceName/*@<CL>
//<WorkspaceName/* can be any file spec
@faint cairn I do not recommend
for two reasons
ignore.conf is hot garbage
untill they make it work like normal ignore files (git and perforce) it is literally unuseable
forget aboutt importing github repo
if it bigger than few thousand files
UE4 simply cannot be imported
couple that with ignore.conf not working as intended and you have mess in your repo
other than that it was fast,
but required beefy server to run
why ignore.conf is garbage
becuase it doesn't work linearly
first the ignore rules are applied
and then all unignore rules
git and perforce work from top to bottom, so you can ignore entire root and then selectively unignore certain files you need
in plastic i had to do some RegExp sheaninges to get it barerlly working
and in the end it exploded anyway..
Really interesting point of view; I never had to ignore complex things, and actually never tried to import UE4 myself, but my CTO did it to evaluate Plastic SCM
Perfect timing to announce that I have finally released a new version of the Plastic SCM plugin for Unreal Engine 4.22 ;)
https://github.com/SRombauts/UE4PlasticPlugin/releases/tag/1.4.5
I had, because I really wanted to exclude all files which are downloaded by setup.bat
and also ignore most of binary files but not all
essentially recreating Git layout of repo in plastic
it is simply impossible
Is plastic worth trying now? i've been using subversion and im very unhappy with it. Still not convinced perforce is a necessary.
git :^)
i don't like the decentralized approach of git.
I mean, git seems better suited to open source projects than commercial game development.
i don't like the decentralized approach
thats what im saying world
some things need to be centralized
decentralized means everything is fast, works offline and has lots of redundancy
but what if I have a really fast server that I'm always connected to with a storage solution I trust?
then centralization makes more sense
Centralization makes sense in 99% of projects and Git's success is pretty much unrelated to its decentralized approach, it's successful because free, open-source, with free hosting.
Git's decentralized approach also makes sure it will never seriously compete in gamedev version control
Stuff like file locking is anathema to decentralization
Someone added folder + files to source control
-> I pulled
-> They renamed the folder
-> I pulled and old folder hierarchy still exists (but no files)
Whats the command to remove any folders that don't exist on depot? Reconcile offline work doesn't work because there are just folders no files ๐
Not a big deal, just wanted it to be clean..
Been getting a few empty folders that are no longer in sync with depot, bit annoying
has anyone ever gotten unreal engine to act as a diff or merge tool for engine types?
ie: launch the editor in a diff mode for blueprints
I want to configure source control to open it
and just do it for single asset merges and shit
UE4Editor.exe -diff <File1> <File2>