#source-control
1 messages · Page 33 of 1
anyone got a good guide for setting up streams in perforce?
Lesson learned don’t delete a file that’s linked to your source and then try reverting a change
File(s) “wtf is this .7 file..”
what option is the best for an online server for perforce
Payed is no problem
its priority to have an easy set up
Only had local server and not hosted
If you're fine with setting it up manually on Linux, I'd say a cheap-ish VPS would be best
Vultr has $2.50/m VPSs on the bare minimum, but I'd say you probably want to go for at least the $5/m one
DigitalOcean is great too, but a bit more expensive
I guess that all depends on what you consider "easy" setup though—personally, I think the command-line setup is pretty concise and pain-free, but someone with less experience might not....I get that
Its a bit tricky to set up perforce on the server
and we apperantly got a DOS attack so need to redo everything 😦
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
Is the allar guide outdated? we could not get it to work properly. Something wrong with the part when perforce restarts qutomatically on the server if the server restarts
Yeah
Did you try setting it up the manual way or just running the script? @cloud bay
Yeah, I feel like just running the script at this point might be pretty fragile
as well as Linux
So, the new version of Linux uses other newer shit
To do the thing
Which, right now, I can't remember, because I just reboot if it's ever down
It's not just the script though
It's outdated
Ah yeah, this uses daemon :/
These days systemctl is used
I am Linux newb, I was just happy enough to get it working 😃
If someone wants to do up A NEWER VERSION
With newer Ubunto
I don't think anyone would complain 😃
Unbuntu
Ubuntu
W/e
We got it up and running now. But on the older server version. It should be fine right? 😛
Yeah that would be great 😉
@haughty ember
Whats the easiet way to setup source control for small projects ?
Easiest? Probably git
Best performance (will probably save you time in the long run)? Perforce.
Damn, ive been trying with SVN cant get my friend to connect.. Gonna give perfoce a try
We had problems with git. But as long your few, go for it
We are two, almost seems like its better not to go through the hassle and just do it manually or something
@knotty trout If you're having trouble getting connections with SVN, changing to another source control software probably won't help.
Be sure they're using the right IP, make sure you have those ports open.
Hello, Is there anyway to keep fbx, 3dsmax files on github or bitbucket?
If I have my own spaces?
VSTS offers unlimited storage
I didn't find yet a configuration file or command to change the max size of a depot with perforce
actually it seem that 20GB is the maximum size of my depot
but a project with an unreal build from source will take more space than this
@obsidian thistle If you have more than 5 users you get limited by depot size. Under 5 users has no limit.
I have actually 5 users
4 users + perforce super user
maybe it's simply a display on P4V
Id say your being limited because of how many users you have
** IMPORTANT UPGRADE NOTES **
CHANGES TO UNLICENSED SERVER FOR THIS RELEASE
For v16.1 onwards of the Helix Versioning Engine (P4D) the number
of free users allowed with an unlicensed server has changed to 5,
the number of clients remains at 20. Previous versions of the
server will continue to support the 20/20 usage allowance.
actually my p4d version is before v16.1
There is also an workspace limit. Which is the “client” limit of 20 they talk about. If you exceed this limit as well it will restrict your account.
You need to make sure you delete unused workspaces from the server so that it doesnt exceed this limit if you wish to continue as an unlicensed user.
ok thanks 😄
anyone here experienced that bitbucket/sourcetree sometimes seem to make a 1kb file out of a umap file instead of the actual size it is when using lfs? note, it only seem to happen once in a while, but obviously it's a bit nerve wrecking when that only happens occasionally
@turbid prism You sure it's source control doing it and not UE4? A very small asset file tends to be a redirector to an actual asset.
as far as i can see yes... i tried making a backup of the file, noting the size down (bigger than 1kb), and then pulling again, and then it turns into 1kb
but as mentioned, only sometimes (actually quite rarely), but still enough to make me feel uncertain when i commit
which is kinda the opposite of what sourcecontrol should make you feel hehe
Agreed. No clue, sorry. :/
no prob, thanks for asking though
Thanks @robust jacinth the problem was the port! Is there anyway to change the depot location on perforce ?
Yes, but you'll have to look at the docs.
I wouldn't know off the top of my head.
ah alright
Is it a big problem if i do it later on ? Like after it gets a bit big ?
Got preforce setup! Do I have to send my friend the files ? Cause he has a clean workspace but the project files are in the depot or can he just download the depot and put it in his workspace ?
Once files are on the Depot you shouldnt have to send anything to anyone. They just sync with the Depot and they get all those files.
guys so i set up a git pre-commit hook to compile project before commits are made . Is there a way to compile using only the commited files ?
right now it inclides files that havent been commited too
I don't believe you can do that with UE4's build system
Maybe see if you can stash changes during the process
gottcha.
maybe i could create a separete folder or set up a jenkins task to do that
just copy over the changes to be commited along with whats at the head and compile that
which brings me to ask. Is GIt Bisect useful ? What sort of git hooks/ task are people are people using right now ?
I don't use hooks myself, what I generally see if a server hook to check incoming commits
ah gotcha . Thinking of actually putting in a pre push that runs some stress/ fbx tests. I'm not sure how i'd run a few of those server side
not sure how Unreal handles cross compilation
@molten marsh Thanks! 😄
So im having a problem with git, basically UE attaches well to git but as soon as i finish uploading all the stuff to github desktop it gives me this error
And i dont know what to do to have it solved.
would be so much apreciated if someone wastes its time on me.
Is it possible to buy dedicated servers or something to put perforce on and connect to it from there ?
Sure is. Or you can host an Server locally yourself.
I host my own on my Build Server.
which Git application can we use with Unreal? I'm trying to get the "GitHub Desktop" application to work with it, but unreal won't accept any paths for it
Great!
@Archer#3838 If you are talking about GUI
I personally use Source Tree
And don't use anything inside UE4
Only thing I can guarantee will work in UE4 is Perforce
BTW why is everyone calling this vcs "Perforce"? I mean, "Perforce" it's a company title and they have a lot of different products, while specifically vcs is called Helix.
They're a little bit unclear on the naming themselves
For example, this is straight from their manuals: Perforce is an enterprise version management tool that you can use to manage source files and other...
P4V itself is called both the Helix Visual Client and the Perforce Visual Client in their official documents
Plus, that's just the name everyone knows ¯_(ツ)_/¯
Kinda like how people say VAX (Visual Assist X), even though it has just been Visual Assist for a while now
It wasn't even until late last year that the actual application was renamed.
Actually, not even. It's still totally "P4V"
@robust jacinth I have definitely seen the "Helix" title at least a year-1.5 ago, so not "late last year" for sure 😃
I tried setting up perforce for a team a few times and never got it working in a way I liked. But yeah GIT inside UE4 is the devil. Causes all sorts of weird behavior with files when renaming/moving/deleting etc. For what its worth I like the program GitKraken
@calm basin he was talking about the application—P4V—not the brand name overall
(plus, he corrected himself right after that it's still P4V :p)
And like I was saying, P4V is referred to in multiple ways in different parts of their documentation, so it's a bit fragmented
I'm not arguing that it's not called Helix...I'm just giving some reasons for why some people may still refer to it as Perforce
@median heart I see, thanks. Just it was a bit confusing for me when I have tried to google "Perforce" for the first time and there was no such application, only the company with lot of products 😃
@calm basin I meant the actual exe. It's still P4/P4D/P4V etc.
(And now I read that it's already been cleared up. Woops. I just responded to the mention, without reading.)
Whenever I package, I get a bunch of errors about not being able to get at files. I always fix this by copying my project and marking everything as readable in windows explorerer. The new version packages fine. Is this what everyone does every time? Seems like a hassle.
My assumption here is that Perforce is locking those files, which makes unreal angry, but unreal isn't smart enough to check them out or something?
it sounds like you checked in files under your project's folder that you don't need to check into Perforce. Things like:
Intermediate/
Binaries/
DerivedDataCache/
get a lot of temporary files written during packaging and should not be checked in.
@odd shell None of those are checked in. The read-only errors I get are for pretty much everything, all the stuff I have in the content folder, etc.
That's odd. packaging shouldn't need to write to your Content folder.
I saw your packaging log in #packaging . Yeah, doesn't look like it's a Perforce thing.
hmmmmmmmmmmmmmmmm
So this popped up today out of nowhere:
I am using Perforce...
What kind of shady stuff is going on here...time to investigate
Maybe a plugin that needs disabling?
Aye
I thought I had that and Git already disabled. Not that it should have mattered though. It shouldn't be running unless I am using it as the SC.
beginner source control user here. which should i use?
I can use my pc as a host for a project, but dont have to if letting another place host is easier.
ive tried github and p4 a couple times and have failed all 4 attempts.
Perforce is going to be the easiest to use and the least pain in the butt solution in my experience.
Getting the personal server setup working with P4 should be trivial.
Like, super trivial. Like open up the client and click Personal Server and follow the prompts.
Though for sure, setting it up for broader use is way more involved.
Is there any reason why you wouldnt choose to fix up redirectors in folder? It seems like a no-brainer...?
Redirectors are binary files.
Sorry, assets in general are.
Fixing up redirectors involves opening up every asset that references the redirector, editing it, and saving it.
Binary implies exclusive checkout in source control, so you can't fixup a redirector without checking out every asset that references the redirector.
Not about being able to check out the redirector, but being able to check out everything that references it.
Not a bad idea to try to resolve as many as you can on a weekly basis or some such.
I always fix up redirectors after renaming or moving an asset and then just in general every now and again just incase.
That can work too, but sometimes you risk checking out 20 other files and a handful are already checked out and buggery ensues.
Just thought I would share as It has some really cool features
that are not in the current version that ship with the editor
has anyone here ever used PlasticSCM for UE4?
thinking about switching to it from perforce
I think @haughty ember has? Maybe?
Since I'm futzing with my P4 setup, figured I'd share some of my stream setup that I'm going to be testing out momentarily.
Are you going to Stream your Stream?
I am not, no. 😛 Not much to show.
And first I need to understand what the hell I did...
Something with import vs import+.
Sad, I won't get to see your stream of conciousness setting up your streams on stream.
... how deep can we go?
This... doesn't make any sense.
What... did I do?
I think the left-side was an initial attempt at setting up branchable engines for different projects in separate depots
And the right side is a child stream of the left... using import+ to allow me to directly sync and edit my main engine stream as part of the dev stream.
I think I should have a virtual stream between Main and all Dev streams that allows them to import+ the engine?
That... that actually sounds bad.
Dev-A could make changes to Engine which would instantly propagate to Dev-B and break Dev-B.
Ugh. Getting cross-depot stream relationships setup seems problematic if you're trying to share things.
I think you have to straight up do an integration to introduce the files and leave that be how it is.
Integrate the whole Engine folder and whatever else.
I was gonna suggest something but realized that I don't know if its helpful so
May as well - can't hurt.
Well I've never tried setting up something like what you're doing, and feel like I need a docs skim.
so let me go skim that and I'll come back
Eugh, another one is trying to submit any kind of changes back to Epic - without keeping a GitHub repo, keeping a tidy pull request would be difficult.
Does anyone have any good resource of something like: The guide to perforce for someone who is very competent at git and would like to get going with Perforce reasonably quickly? 😉
Always been using git, for game projects git+lfs, but it just feels.. flaky. I dislike having to run a separate service just for handling the LFS component rather than just doing it over vanilla SSH like I can with everything-else-git.
Sorry, don't have any resources to suggest. :/
I think I've figured out how I'm going to set this all up, though. Maybe.
Am I being dense here? This doesn't make sense...
Why would the default behavior for a release branch be to only allow changes to go down from it?
Also, this is in general a really fucking bizarre way to visualize these things, considering that Perforce insists on calling "Main" the "parent" of "Stable"
I am having the hardest time getting files from one stream in one depot to be branched to another stream in another depot.
getting files from one stream in one depot to be branched to another stream in another depot
have you considered using branchspecs for this?
I've been bashing my head against this for hours - making a branch spec didn't seem to make any difference. Always said 0 files would be affected.
I finally gave up and put all my projects in 1 depot.
Different mainline streams.
I think trying to use a virtual stream as my source was still presenting an issue, for whatever reason.
Almost 6 AM here, I'm burnt out and I don't even know what I've done at this point. Ugh...
Thats how i manage my projects. Its just easier to deal with haha.
Hmm, still a shame we can't download project plugins from MP (vs engine)
For ease of just dumping it into Plugin folder
Time to reverse engineer how the launcher does it! (Disclaimer: Probably don't)
Yeah, it's kinda complicated
As it downloads the file by chunks, and to get those chunks id you need to make a request with token auth
Hello, Should I open branch for every level?
@tepid ore if is am understanding you correctly...and I may not...my answer is no
Levels are typically separate
Branching is mostly done when you are going to dramatically influence the main logic of some system (s) by modifying it as is. You branch to make sure those changes don't take until you are ready to merge em
That's just one typical scenario for branching. Plenty of others
Like, we will probably branch a build for the PS4/VR version from our main branch
Since the requirements are more stringent in regards to (mostly) art optimizations (they gonna not look so good as on PC) and other things that we don't want to change for PC version
Any code optimizations though can't be bad.
But who knows. Not something I have given too much thought to. But I do need to plan for later.
thanks for answer. I work on a VR project. We have different scenario. But we have same library. So we discuss about every scenario should be different branch or not.
@tepid ore That's a really odd thing to do. Ostensibly, you should have few branches: some kind of main branch, release branches for each release, and maybe some other development branches for bigger tasks that you don't want messing up everyone else's work until it's done.
You don't make a branch of a single level, that doesn't make any sense - why would you want a diverging copy of your entire project for each map?
My project manager told me about branch. She has not any experience with Unreal Engine actually. I tried tell her but she didnt listen me. She said I want know about where are we in our project pff. She can realize if can read commit I guess. @robust jacinth . thanks for anwser also
Branching has nothing to do with UE4 though.
This is general software development stuff.
And also theres just one Unreal Engine developer in our project no one else. only me. why should use branches I dunno
Like I said
Typically, you branch when you are releasing a particular version, so you can make hot fixes to it and continue development in the main branch without introducing incomplete features and new bugs in to the stabilized release branch.
can anyonje with git experience help me? I dont know how it happened but I am like missing a commit on my local git
but Im ahead of github
like I have one commit that is missing, as though it was never commited, but all the wrok is still here
so I dont know if I need to delete one from github and take it from there.. or??
Im not even sure how to go about deleting the commit from github
Typically you don't delete commits
But I am not super duper experienced with Git. But doubt it is any different than Perforce or any other VCS
Not sure what GUI you use
I use SourceTree myself
I use github desktop, but I also use the git command line
like what I need to do is keep all the work I have right now
but put it on github
like there is a 0% chanche of me needing to look at any previous commits
I just need to keep my current progress stored safely and where any new team members can get access to it
any help would be greatly appreiciated
Dropbox or similar file sharing/syncing service might be better for that use case
@odd shell um no
@ornate trout use Perforce if your team is 5 or under
Check pinned. Plenty of guides and random articles I put up there
Do the research
I mean thats hwat needs to happen with this particular instance in github, I do sometimes have to go back, but I want to fix this issue with git, because I dont know how it happened in the firstplace
Perforce...the wild beast
So, has anyone ever run into an issue with trying to Integrate something from a Release branch back into the Parent (Main) via changelist and getting the stupid "Client Not In View" error message
https://forums.perforce.com/index.php?/topic/1023-integrate-command-fails-with-the-wrong-message-files-not-in-client-view/
^I thought I was onto something with that thread and a few others, but nope.
Anyway, Instead I went ahead and from Stream View, to Integrate and that works (albeit it does it all at once, and not via changelist).
In this particular usecase, I don't mind doing it this way, since I know all the changes going back into main will work (nothing was touched with those files on Main since I was "gone")
But in the future, I feel like this may become an issue, especially when/if things move around and/or I want to test every changelist Integration on Main as I do it. Anyway, if anyone's ever run into the issue, please @versed relic me with thy resolution.
Thanks!
Integrate command fails with the wrong message "file(s) not in client view" - posted in General: Originally posted to the perforce-user mailing list by: Jayaprakasam, Kannan
I'm using P4V the graphical tool on Windows 7. I have a perfectly
innocent requirement of copying a file from
//eBiz/Release_9/9.1.0.HF1/ML/pcws/server/common/soapreqgen.cpp to a
new path called
//eBiz/Release_9/9.1.0.HF1/EBF/EBF10091/pcws/server/common/soapreqgen.cp
p
The former path is already m...
And uh, why is someone named @versed relic 😉 My bad.

i have 4096 ~500kb files stored with git-lfs and they're taking about 10 seconds each to download
does sourcetree suck or is it git-lfs and i just have to live with it
I think its LFS GeorgeR
Suddenly my project linked to source control is broken and now I can't reconnect.
The Repo is there, local and source tree. ( I checked in new content, submitted. but failed to push it before my system crashed).
Now i'm getting this error ->
Using bitbucket and sourcetree
And these error in sourcetree
Anyone knows how to fix this
It appears your index file was corrupted when your computer crashed (or, at least, that's what your errors are alluding to)
You could try to delete the index and reset your local repo; you may lose changes you hadn't successfully pushed (but I'm actually not super sure about that, to be honest)
@jolly fog
Try that, and if that doesn't work, worst case scenario is you just get a fresh clone from the repo
In that case, you would definitely lose any unpushed changes.
I did delete index file
not sure how to reset the local repo with git bash
did a fresh clone as well, but that didn't build and kept giving me vs build failuers
git reset
I can't really comment on your fresh clone not working; if your repo wasn't in a buildable state, there's really not a ton that can be done about that at this point.
fatal: Not a git repository (or any of the parent directories): .git
I'm certainly doing something wrong here when trying the reset command
Did you completely nuke your git folder?
nuke = deleted?
Yeah haha, sorry
Eugh...
If you can't recover those from the recycle bin, that copy of your repo is basically useless at this point
I would suggest definitely not doing that in the future :p
uhh ohk
well i think i'll create a new repo
faster than trying to fix this one
I mean, you might be able to try to manually transplant a git folder from a fresh clone into it to recover your changes, but that would be a tad hacky (at the same time though, I guess if it works it works)
I've never tried that though, and I have no idea if it'd work
hmm.. well my code is saved locally
that has a chance to work and chance to not
so new repo might be better
do you have any idea if i can setup git repo with p4 or a server which isnt my pc
'git repo with p4'? Do you mean the Perforce-Git integration? I've never tried that, so I can't really comment on that
But yeah, you can definitely set up external Git repos, that's what remotes are
Initialize a bare Git repo on another computer to which you have access, and you should be able to push to it
My first option was to setup p4 since i'm experienced in it
but that requires a server,
now I can't create my pc or any otehr pc a server, so something that is free and acts like a server for p4 🤔
Helix4Git consists of Helix Versioning Engine with the Git Connector that communicates with native Git clients and mirrors Git repos into Helix.
hmmm i think this could work 🤔
PERFORCE FOR LIFE
You misspelled Git
mfw svn
I love git for source work, and LFS is good, but in the long run Perforce and UE4 integration are the best bet for UE4 development, especially in team environments.
I havnt svnd since like 2000
lol I haven't svn'd since one of my first projects but here I yam
Normally prefer p4 w/ ue4
so, can anyone explain to me what git lfs is? like how does it work
because I read the website and it doesnt really explain it very well
ok, I see how it works now
but Im still unable to figure out how to use it properly
I've got well over a gig worth of 3d models, but when I do "git lfs track MyFileNameHere" it seems to track it, but then when I do add and push, it still says im trying to push the same large amount of files to github and rejects it
IIRC GitHub has a size limit on your repositories. That doesn't change even if you use LFS.
@GamingBacon97#8934 If you're setting up LFS, make sure that you don't have an older commit from before adding the LFS tracking that is still trying to add the large file to the repo
Hmm, maybe I should commit more often...
any git wizards on?
i forked a project, he added a new branch, i want to pull that branch - how do i do that?
nevermind, pull locally, add base as remote, checkout new branch, push to origin
yes I don't commit often either which is my problem, @shut rain I wish it would just incrementally do it
Anyone ever encounter preforce issues such as when you edit an item and get the check out prompt, when you click on Check out, no dialog appears. Then when you save the item, it tells you it's writeable but not checked out. Even if you mod the file and use the Source Control button to check out modded files, it won't do it. I have to browse to the file, right click it, check it out that way, then I can save and Submit. Happens with some blueprints, but not all.
Look in the actual Perforce client, rather than in the UE4 editor.
That'll tell you what's actually going on in the purest way possible.
I'm curious to know if perforce source control plugin support streams or not
Look like no
I have no experience with perforce streams but I would like to use for a better versionning of my project
@obsidian thistle I have been using streams for (release/dev) branches
Has nothing to do with UE4 plugin tho
It's whatever workspace you are on on p4v
And whatever project you open up
ok if you want to change your current streams we can simply use P4V
and the perforce plugin will use this streams
Not exactly
I said, it depends on what project you open up
You cna technically be working on two different streams at the same time
To avoid confusion, best create new workspace (not really a choice) and set up the new workspace inside the Editor
with an Engine build this can easily take plenty of gb haha
Just know that you can still open up different workspaces once p4v is open
yeah
but normally the current branch is always dev and push to a beta/release branch
thanks ! 😄
Hey guys, is it a good idea to integrate github or some sort of git with an unreal project?
And if not github, what should I use (preferably usable with group work)
can some one briefly explain how source control works?
like i know the basics
but
the pushing
pulling
and uploading to branch.
alright so I assume you are using git, basically when you pull, you are taking from an outside source such as github and updating your files with there changes that they have pushed to github
but, you dont wnat your work overwritten, so thats why there is checking out
which is similar to a library
if someone has something checked out you cant edit it until they push it back
theres lots more to it than just the basics though
That explanation kinda combined two different systems, which might make it a tad confusing
"Checking out" in Git and Perforce are completely separate concepts.
You started with Git, then talked about the P4 checkout 😄
In Git, you "check out" a branch to switch to a different branch on the local copy of the repo, which is good for organization of changes
In Perforce, you "check out" a file, which then prevents others from making changes to it
They're really not related, they just happen to have the same name.
Git doesn't have the Perforce-style checking out because it's not centralized, so there's really no way to stop other people from making changes to a certain file
(it does exist in Git LFS as file locking, but that's partly because LFS assumes a more centralized nature—that's really the point of LFS)
oh lmfao @median heart I thought they were the same
I suck at using git, and I've never used preforce
perforce is much better, but you have to pay for an actual server unless you dont care to store it all locally
the P4V client is much better than anything git can offer, even the github desktop client is shitty compared to P4V
actually you dont have to pay if you have another PC to serve as your server
that is, again, if you want somewhere to backup your shit too and not just function as version control
I don't really use git as source control, as I work alone
but I do use it as an offfsite backup
ok im having an issue
git lfs is finding like na extra 5 gigs worth of files that arent shown to be tracked
because the ones shown to bge tracked add up to less than a gig
but I've commited and when I do git push git lfs is rpeorting that ver 7gigs are goignt o be pushed
youre supposed to have an ignore file that lists all folders/files to ignore
you should be ignoring the Intermediate folder, etc.
anyone have experience setting up a local network server and making a vpn on it so you can connect to it from home etc
I'd suggest Pritunl if you want a full suite with account management and stuff like that, or you can just go pure OpenVPN if you want it simpler
was thinking just a default windows setup without third party
Hi guys, I wasnt using source control and tried to recover backup files and now my project crashes every time I try to open. What else could I try?
can I have more details? like crash errors/logs, maybe a story as to how you got into the situation
@TadasJ#4765
@TadasJ#4765 well, the nuclear option will be compiling a debug-only version of the engine (of comparable version to the one you use), opening it up in that engine
And then manually bypassing the parts that error out
It must be some sort of an assert or something else, some form of minor corruption. Usually you can still load corrupted files with a debugger attached to the engine
the launcher version does have debug symbols
and let this be a lesson, use source control from now on
hey
so I was committing some files
and pushing on every commit
then suddenly it asked me to pull from the remote (no idea why)
I think it stashed my files
and all my uncommited files were deleted
@pulsar parcel but the engine is compiled in release
So those symbols have limited use
I tried using Data Recovery, and while I can see files from 2013 I can't see any of the files that I need
release builds don't completely destroy debugging info
it should give you at least some clue as to what is causing the load to fail
@plucky arch @pulsar parcel you can indeed attach processes from launcher builds
And yes can you include debugging synbols in Packaging as well as crash reporter
That's how Backtrace actually grabs their info
Bit off topic, but if you're having hard crashes in your game (players reporting) Backtrace might be a good answer. Not useful for soft crashes like stalls/freezes though. Still looking for a good solution.
i don't think using a crash handling service is an appropriate solution to an editor crash on startup
just open VS and debug it with the symbols (optional download w/ launcher)
Guys how do you use source control so you can dev with your team?
i'd recommend using perforce @undone isle
hey all, new here. I come from a software engineering background, and I'm most comfortable with Git. Just wondering what the arguments are for Git vs. Perforce? Any other alternatives worth checking out too?
this would be for maps primarily, not so much code
I'm looking for someone to setup perforce on my project , paid task
@jolly fog You can use the #looking-for-talent channel to post an job listing or you can follow the tutorial for how to setup Perforce that is pinned in this channel. If you have any issues you can ask here or DM me.
Oh well you'right , sorry for this inconvenience
Id help you myself but im in bed on my phone 😛
eheh no problem , it's not a urgent task too 😃
perforce source control
does anyone know how to prevent the P4ServerLog error
"unable to connect the file system p4log has only 224.42m free but 250m is required"
from google results it mentions something about rotating the logs?? but im a perforce noob i dont have a clue what to do
at the moment im forced to delete my whole server and restore it from a backup and then it all works again for a few months then i get the error again
Free up more space on your hard drive. You'll run into bigger problems down the line if you're running on such tight space.
its the logs taking up space i need to rotate the logs but im no good at command line stuff
Hey guys, i was reading this VCS setup https://www.gamasutra.com/blogs/RyanDarcey/20161021/283799/An_Unholy_Alliance_Unreal_Engine_GitHub__Perforce.php
And from what i could gather he had the corce UE4 part of the solution liked to github, so he could just pull the latest changes for updates
Isn't it possible to update a c++ project through the launcher aswell?
You can't automatically update code
Not sure what your question really is @tight galleon
in order to update the engine version of a c++ project, do you need to pull those changes from github or can you update it through the launcher?
(assuming you didn't change a single line of engine code of course, otherwise i would say you should have that always in a separate branch, and handle the conflicts in a rebase when you want to update the version)
@tight galleon @brittle raft sure you can 😉
By "update", Get Latest, Pull down from Git
Whatever the programmer's secret sauce was for the new modded source build
Keeps all devs up to date
Merge from Master whatever you want
That's what they mean by that
@tight galleon Updating version has nothing to do with BP or C++
Or Source vs Launcher
You can't do it from the launcher, no
You need to pull engine changes from Git
He's talking about updating the engine
Hmmm
Oh well
@tight galleon updating the engine is do,ne from the launcher (for launche builds)
Guess more clarification is needed
or through Git (for source builds)
Aye
Whether the project is C++ or BP is irrelevant
I agree
Question is confusing 😃
but if you're working with a c++ project, aren't you inherently doing source builds?
Nope
I am using launcher builds only, for my almost-C++-only project that barely uses any BP
can elaborate a bit on the difference between the two please?
or you can just tell me to google it i won't be offended xD
lol
Launcher build = engine compiled by Epic, downloaded as a regular program
Source build = you compile the engine yourself, takes an hour or too
Launcher Build = Cannot Modify Source Code
Source Build = Can Modify Source Code
That's literally the only difference
^ source code of the engine
Other than, only Source Builds can build Dedicated Servers
Which
I still actuallly don't understand
How Epic hasn't fixed that
There's gotta be some way to make it easier for Launcher builds
yeah that was the only time so far i actually had to source build
i don't have any plans of making engine changes right now, but i guess i'm going to keep that linked to github either way just to make it a little less painfull down the road
thanks a lot for the help @haughty ember @brittle raft definitely cleared some stuff up for me
👍

@haughty ember victor sorry to mention you directly but youre pretty good with p4. do you know how to set up log rotation ? my server keeps getting wrecked by the log file growing too big and taking up all the space
@PrintStringFTW#6597 Yo, no worries. TBH, I've never run into that issue, but I have practically unlimited space.
I'd start with that though
@signal mulch
@PrintStringFTW#6597 What is your P4DEBUG Level set to? (can check with p4 configure show P4DEBUG) Might be worth setting that to 0 when you aren't actually debugging. Otherwise it will make your log file grow really quickly
Other then that I just run a script once a month that deletes the P4Log file, personally the only use I've had for it is when I am actually trying to debug so I've had no loss by deleting it
About using Git for UE4, am I understanding the problem correctly that the large binaries are only actually an issue when the file size of the binary is larger than a certain amount? In other words, I only realistically have to worry about large binaries and therefore require LFS for complex static meshes, sound files, and similar art assets?
Because even my most spaghetti'd Blueprints, I've noticed, tend to be less than 1MB.
Personally I haven't used LFS, but I can tell you that there's a limit in git, which prevents you to do a push/pull that's about 4 GB or bigger. You'd have to split a huge commit into several smaller ones or copy the repo via ftp. Also, big files are not that great to work with insofar as if you change a 100 mb binary file a few times your repo quickly grows bigger. And if you're using GitHub, there's also the 1 GB limit for free repos iirc.
Today, I learned about p4 unload depots.
After spending like 30 minutes trying to understand why my automation's workspace didn't exist, couldn't be found, but couldn't be recreated.
Someone or something at Epic must have effectively archived the workspace, p4 unload.
Had to use p4 reload to actually make the workspace be unarchived.
Basically
Question has probably been asked a bajillion times here but there's no pinned messages regarding git clients. I heard bad things about GitKraken and the UI put me off instantly. I'm using sourcetree at the moment but I don't like the interface, I'm looking for something much more sober and functional, that would allow me to, for example, quickly clone another repo without too much hassle, any good recommendations?
for windows* also being able to do most basic things through the context menu would be a plus I guess
@lofty pivot If you're newb, use SourceTree
Actually, even if you're not. SourceTree is all-around pretty good
@haughty ember I'm used to source control in general, I've used svn, git and perforce in large codebase company settings, but I'm just not too fond of sourcetree as a client
It's not bad, it's just that I'm used to just dropping "git clone X" in a terminal, but I'd rather not use windows' terminal if possible.
If you're used to a more *nix-style terminal, you might want to try out Cmder; it has a lot of customization options and acts more like a Linux terminal
Else, there's really not a GUI I've found better than SourceTree
If you're more comfortable with a CLI, I would say go for it, haha
Not exactly #source-control, but related...
Fixed my automation that syncs Fortnite from Epic, builds it, and tries to populate the DDC.
At least, I think I did.
It ran for 5 hours when I tested it.
The automatically scheduled automation, however...
... 12 hours later, still running.
[2018.03.03-21.03.17:575][ 0]LogDerivedDataCacheCommandlet: Display: Waiting for 103677 shaders to finish.
[2018.03.03-21.08.41:722][ 0]LogDerivedDataCacheCommandlet: Display: Waiting for 102677 shaders to finish.
[2018.03.03-21.14.18:923][ 0]LogDerivedDataCacheCommandlet: Display: Waiting for 101677 shaders to finish.
[2018.03.03-21.19.59:069][ 0]LogDerivedDataCacheCommandlet: Display: Waiting for 100677 shaders to finish.
[2018.03.03-21.25.03:673][ 0]LogDerivedDataCacheCommandlet: Display: Waiting for 99677 shaders to finish.
[2018.03.03-21.30.07:443][ 0]LogDerivedDataCacheCommandlet: Display: Waiting for 98677 shaders to finish.```
Just a snippet of the log.
Hehe
Anyone still using github for their projects? 😏
Anyone know whether the Unreal Game Sync tool/program is sent out with the engine/is distributed somewhere that isn't github
Also whether it just syncs the project binaries or whether it can do automated shipping builds
@robust jacinth Looks like the tool I mention above that our team are interested in using is actually developed partly by you! Any chance there is any documentation on the Unreal Game Sync program?
It is in the UE4 repo.
Has a readme.
I myself did not work on UGS though, at all.
Hey does anyone have any opinion on using TFS with Unreal?
is the lack of integration the only downside with TFS?
Hi @slate cosmos , TFS uses Git under the hood (which has some level of integration), and I hear it is a pretty solid hosting solution with great price
Yea but any drawbacks with it vs perforce?
Because TFS isn't integrated with Unreal
Also I don't think TFS is using git?
Not sure though
git doesn't have file locking but TFS does
Well actually @reef oriole @slate cosmos Yes and no 😃
VSTS and TFS can Git by default
But you can use Team Foundation Version Control (TFVC)
Which is like Perforce
Centralized
Also @reef oriole when are they accepting your new Git plugins into engine?
Plastic too
And might as well do a TFS 😉
@haughty ember biggest draw back with TFVC is simply the lack of integrated support?
@slate cosmos Hmmm, depends
People use Plastic and it doesn't have it, only via plugin
I mean, TBH, as long as they can take snapshots of your work, solo-wise, any VCS will do
Teams is another story. Perforce or Go Home imho
@haughty ember Epic is not interested in integrating all VCS plugins by default. Also, as I've discovered, it is really costly & lengthy to get update into the Editor, so I favor putting new features into my own Plugin and let it mature for some time before event proposing them through a MR
also, I need alot of time to make a proper Merge Request an revalidate it into the latest master
how I can use one plugin across several projects and keep that plugin always updated? Like if I make some fixes for the plugin in one project, some fixes in other project and I want to always keep plugin up-to-date everywhere?
make a repo for the plugin and set that up inside the plugins folder?
That might work
inside the plugins folder? Do you mean, one which is inside engine folder?
I dont really want to add engine folders to the perforce at this stage
oh you're using an engine plugin
then I don't understand your problem
if it's an engine plugin the changes should reflect for all the projects that you're using that plugin for
no no, that's not the engine plugin
I can make it as the engine one, but I dont want to
currently I have three copies of one plugin in three different projects and when I make some changes to the plugin in one project I have to migrate them by hand in other projects, which is very stupid way to do such stuff. But I cant figure out a good way with perforce for this
Well @dull current, the first answer of @cinder ledge was the right one: put the plugin in it's own repository, and keep a working copy up-to-date in the Plugins/ folder of each of your project
For instance, I do have a Plugins/UE4GitPlugin/ git clone in each of my UE4 Projects
when I make a change to the git plugin, it is not commited to my UE4 Project, but to the UE4 Git Plugin (github) repository
and so it is easy to update (git pull) every other instance of the plugin (if/when I need it)
sounds interesting
btw, what about perforce streams? Someone used them?
@reef oriole are you still wroking on Plastic SCM features or it is just maintance mode now ? (;
@dull current All the time, internally.
@robust jacinth and how good are they? I'm looking for a way to improve branch usability in our team
@river tinsel it is always an alternance of maintenance mode and then new devs ; last update where in early february, I start a new job in a few weeks so it will stay a while in standbye
I don't really follow. They're good? They're a more modern branching mechanism?
I suppose so. In terms of perforce.
I recently found this : https://cloud.google.com/source-repositories/
Fully-featured private Git repositories hosted on Cloud Platform for secure, scaleable version control and collaborative app and service development.
5 users, 50 gb storage, unlimited repo (private), 50 gb bandwidth for free
nice for a code only project
@dull current Sooo
I am actually using Streams for branching
I do release stream branches, and also dev ones
The only issue I've found is that I can't get folder to folder branching to work with Streams
This is probably intended behavior and I get that
So what I do to workaround is Integrate to mainline after resolving conflicts (merge/overwrite) and just don't submit the folders I don't want
Doesn't really take too long to do, I get the results I want. I remember looking into it awhile back but couldn't find any solid answers, and the documentation wasn't helpful in that regard either. Seems that it should work. But meh. Life goes on.
How do I use the built in Git source control? I cant get it to let me edit the email or repository root
Scratch that, I am gonna try Subversion
Repository root? You mean... relocating the directory?
Yeah, on my system, but I am trying subversion now
I'm not fond of Git anyways, but you definitely took the nuclear option at a pretty mild point of friction...
Hi @tawny pine, Subversion is was better for handling binaries. Git is very handy for quick prototyping since you don't need a server, though 😃
Just to clarify the intended usage of the Git plugin: you are supposed to have the git command line installed and setup (including your name and email adresse)
then you cannot specify the root of your local repository (workspace) : it is the intended to be the root of the UE4 Project.
(disclaimer: I am the author of this Git Source Control Provider plugin 😃 )
Anyone have a prefered issue tracking/agile board system for use with Perforce? Looking for something that will integrate easily with our P4 server so we can track everything.
we use Jira
they have a P4 integration plugin. we set up ours so you can add hashtags in the commit description, and it will update the Jira accordingly; will also log changelists and P4 streams/branches
Tutorial time? 😃 😛
@lilac aspen Does that work on the Jira hosted solution or only if you host your own Jira server with the plugin. My struggle has been finding a way to use the Fisheye. Doesnt seem to be an option on the hosted Jira, and in my experience running Jira yourself requires some beefy server stats. I of course am trying to save money since were developing with no funding atm.
Looks like it requires hosted fisheye at least.
@buoyant ice i don't know, sorry. we're hosting our own Jira server
Yeah seems like that would be easier and probably cheaper in the long run actually.
Does the .pdb file under Binaries need to be checked into perforce for artists who don't have visual studio to be able to open the project? Or is the .target, .modules, and .dll files enough?
Shouldnt need pdb
awesome, thank you DD
@buoyant ice https://www.redmine.org/ is a great open source alternative. Only expense we have paid is about 40$ USD for a decent theme
Redmine
what do you guys think would be a good workflow for two programmers to work together in UE4? we were considering github but we realized we need to be able to both work on level design, blueprints and other assets too
we're totally new to collaboration in UE4 and currently scrambling to look for answers on how to do so effectively before we start development
@chrome pollen, perforce is the way to go
thank you so much, i'll give that an indepth look today
is assembla a good hosting site? @obsidian thistle
I don't know it
ah okay
but maybe, I live in Europe and OVH is a nice host
Dedicated server from 7,00$ /month. Intel processor - 100 Mbps bandwidth - 500Gb to 2 Tb disks - 2 to 16Gb of RAM
it's an OVH company with discount price for small dedicated server
ooo thank you
Man whats the trick with that OVH company.. that seems WAY to cheap for that hardware
Not bad. never seen any US with dedicated offers like that.
** FUCK ASSEMBLA **
@chrome pollen fuck them
Host your own
Or get Vultr/DigitalOcean
ez to get up and A LOT CHEAPER for ya
I should delete them from my pin
@buoyant ice I am using OVH's Kimsufi both personal, and in work (I work remotely in small ecommerce online shop as sysop, sometimes helping webmasters as part of my job), and I never encountered any problem except one few-hour outage in last over 5 years that I got money back (about 15% of month payment or so, don't remember exactly). On screen my personal server's manager of kimsufi. Except that, I find only one con: Getting LETTER (physical) payment invoice by physical mail every month. But used to it.
Whoa, it sounded like advertisement. Well, whatever, I can honestly commend it.
@short siren Thanks! I actually figured out they have Eastern servers in Canada and picked up a nice i3 with 8 gigs of ram and 2TBs storage to use as a Jira/Perforce server. Like 5x the resources for the same price as DigitalOcean or Amazon.
I would like to know if someone has an idea of perforce price for a team larger than 5 users
$420 USD per user per year
For your first year you can try negotiating with them tho. We got 7 seats for the price of 4
@smoky trench, ok thanks 😄
also you host your own perforce server ? or at this price you have a cloud server ?
Host our own at that price
thanks for all those informations !
I'm setting up a perforce server, and have managed to connect it in UE4 just fine. If I now wanted others from my team to work on the project, would I just need them to connect to the server in UE4, or would they also need P4V and the other setup steps?
The UE4 perforce setup page mostly just goes over initial setup, it's not very clear on how to add others to the project (or maybe that's just me)
They need to install P4V themselves and set it up too
Same thing as you, except for the creation of the repository
UE4 doesn't handle version control, it just has some integration to make it easier to use directly from the content browser
Okay, and then once they connect to the server in P4V they can also see the workspace for the project in there or something?
You create a workspace once, add files, and then people connect to your server to synchronize the workspace
Alrighty, thanks a ton!
😛
i have probably a dumb question
i know git fairly well, is perforce worth learning?
for my own purposes, not for my resume
Its more suited for things like UE4 in my opinion. So with that said yes.
if not. Maybe not.
Git serves itself well for solo devs
But I do like Perforce better than Git
But I do notice I use Git more on Solo Projects
Especially true for client work
That is just me doing something and then they need to review it/get
I manage my own Perforce server for client projects if they dont have source control (which is concerningly common)
Ive only come across a few of those types
I am surprised no one's built dedicated Perforce Server NUCs
I wonder if I can build one with the new Pi
you could with the old B
now the B+ has a little faster CPU and better networking
In this article, we will set up a Raspberry Pi, using the Raspbian distribution, including the Perforce server and client, along with Git Fusion!
Once we have our Perforce server configured, we will import some projects and view the results from ...
Too bad it's old
If someone comes up with a guide for the new model pi, you'll be famous for a bit
I use my old laptop as a Perforce server, which you'd think would be an asset, but on the rare occasion I get to work for another person they just prefer to use Git or Subversion.
@haughty ember they removed the os image for a perforce server from AWS, but you can set one up for about 5$ a month on azure and that way you don't need to worry about external sharing of your pi based perforce , as you can easily manage the endpoints that have access. ... But any excuse to get in about a rasp pi is always a good one.
@fair canopy I have perforce servers at home, via Vultr and Assembla
The only reason I want it on Pi, is just because
But my linux and the like is poop
I'm lucky I was able to put the one up on Vultr
I done it in windows on aws
thanks to Allar's guide mainly
I get ya though if you have time for pi projects bring on the fun:)
But anyway, I was thinking about how funny it would be to build a Perforce Pi Farm
Ha take it your next project will be a pi render farm:)
Just had an image of your Lego esk perforce pi farm . ... It could be magical
Hey, having a problem with my new perforce server. I can use it fine, but I'm trying to have someone else on my team access it.
Installed P4V and connected fine, gave the new user "super" permission, bust still getting an error "Remote server not configured to clone"
So how would I do this?
I already set server.allowfetch=1 on the server...
She'd have to clone the project if she wanted to work in it right?
@shut rain Out of curiosity, who told you to use DVCS?
Or rather, why did you?
All you need is P4D and P4V (which you probably have from following whatever DVCS guide, but just in case you don't)
These fools keep changing the names though, but the "acronym" still stays the same
Helix Core for Server, Helix Visual Client for well Clients
You can use P4V for Admin stuff though
Helix DVCS reminds me of Offline Reconcile, but anyway. No experience with their DVCS, only centralized. Which works splendidly.
Install the Helix server and Perforce Visual Client (P4V). Setup user account and configure initial workspace.
I switched to Perforce because of the UE4 integration, and because it was recommended to me by someone else in the industry @haughty ember
I have set up our server with the Helix core server, and locally I think we all need to have P4V? Not 100% sure, but it does work well this way
As for why I'm using P4V, I've followed Unreals setup guide on Perforce
(plus that's what was answered when I recently asked here, unless I didn't understand the answer right)
Anyways, if you say Helix Visual Client (isn't that just what the "V" in "P4V" stands for?) Is what I need instead of P4V, I'll check it out @haughty ember
@shut rain My question wasn't why you switched to Perforce
Please reread what I wrote
@haughty ember tbh with all their acronyms I'm not sure what part of it is DVCS (or maybe it's cause this is the first time I'm setting something like this up), sorry for misunderstanding!
Would DVCS not be peer-to-peer? We're using an external server running a Helix core server, not one of our machine hosting it
@shut rain just follow this and you'll be good
Install the Helix server and Perforce Visual Client (P4V). Setup user account and configure initial workspace.
Thanks @haughty ember ! Works nicely!
nice 😃
Hi
Having a bit of an issue
I wanted to see if I can setup Perforce on an Azure Windows 2016 Virtual Machine
I have been able to set it up on the server and it works
the problem is I can't connect to it remotely
Can you help?
Have you allowed the port on windows firewall?
Yes
1666
The strange thing is I can connect using p4v but I cannot connect on Unreal
Will try it
I'm having a problem with Perforce, where P4V is connected to the server, the project is downloaded locally through P4V, and in UE4 the IP etc. gets autofilled, except the workspace isn't in the dropdown for some reason?
Only one person on our team has this problem
Nevermind, for others experiencing this problem, make sure the UE4 autofills the correct name...
On my end @RiverThomas#7570 -- the auto-filled IP when I try to connect via UE4's thing is wrong and I need to manually type it in myself each time. Maybe it's just me, though, but if I were in your shoes I'd double check that. my bad you already realized that
Huh, it was the IP that was wrong for you? weird
hey so
for some reason my perforce locked all the files
no idea
files are checked out
alright, i give up
I got what is probably a simple problem, but i cannot figure out where to shoot the trouble.
a long time ago i rigged the console to print out a value on tick
by now i cannot remember where its coming from and i don't want it anymore
anyone know a way i can figure out where this is printing from?
i checked all of my blueprints (i think)
@neat dock ah
so, not even sure what channel you were intending, #source-control isn't close to any real support channel
well maybe packaging
Anyway, Find In Blueprints
either print string or that number
Collaborating on one remote project and it's a good time to get everything running under proper source control system. Aiming for P4 as I don't think we can do it with git. I know that some folks are fine with setting up a local server at home and having other folks being able to work with it. To me such setup s a bit contrived as its quite risky. Maybe we will have such setup at the end but I want to try one of the cloud solutions for now.
Any recommendations from previous experience as to decent cloud provider for P4? I've read that you can get a box on amazon with everything pre-packaged but those folks can be costly.
@rocky marsh vultr
Mine is $10/month
Check pinned
The only one that actually officially does P4 out of the box without any real setup is Assembla, but you will be paying a great deal for that ease of use.
$225/month
Plus trouble shooting
Some help costs extra if you don't know what to do and you need them to do something
@haughty ember thank you! I’ll check it out
@rocky marsh Allar wrote good documentation on how to set up a perforce server using digitalocean.com, 20$/month tier
@jolly fog thank you!
I thought - maybe it’s pinned here - and all those questions I had are pinned here already 😄
FWIW, you can probably get by on the lower tiers if you need to, especially since they recently buffed the specs at most price tiers
But yeah, setting it up on a VPS is relatively painless
hi everyone. Anyone have experience with Rsync of UE4,have some problems with ssh key on remote machine?
so i have an issue, i cant upload my map to github its 600mb anyone have any idea how i can deal with this?
@cyan narwhal GitLFS
or peace out Git and use real source control for ue4
Perforce
lol @cyan narwhal always the same isnt it glam
Yup
what files should i have on my ignore cause everytime i open or save it keeps doing ini files and logs etc
A good question got raised in the #cpp channel recently: Github is almost useless for sharing UE4 projects. So then what do we do about sharing our portfolio projects with employers when we apply for jobs? Just give a link to where they can download the already-packaged project?
Vids of work?
C++ code can be uploaded to github just fine right?
I know Unity launched a beta for better git support, not sure about UE
In fact, you can use Github to share multi-gigabytes UE4 game project, it has already been done
as long as you don't have one file bigger than 100MB
which can be tough but is a good practive (for instance, split your maps in multiple levels using world composition)
I saw a tutorial for Source Control that used LFS to upload larger files. Does anyone know how to get that setup correctly?
maybe it's a dumb question... can the Itermediate folder be excluded from the repository?
Yep @foggy scaffold
You can exclude anything on this list: https://github.com/github/gitignore/blob/master/UnrealEngine.gitignore
thank you very much
anyone using perforce swarm?
what is a good way to let artists get latest changes in the project without recompiling code? As far as I found we should add our code binaries to the perforce, but I dont know how to avoid collisions between programmers, because we need to constantly update binaries and submit only the latest version
See Engine\Source\Programs\UnrealGameSync\Deployment.txt
omg
how did we miss it
but it looks like overkill for such small task that I need 😓
What you need really isn't a small task at all.
You want non-engineers to be able to use the latest binaries.
Except latest binaries has to be binaries that exist - they can't exist if the latest files in source control don't actually successfully build.
You also need to download these binaries from somewhere, not source control.
You don't need to store binaries for every changelist - you only need them for changes that actually result in different binaries.
You need to only offer the option to sync to a changelist for which pre-built binaries exist and know when to download a different set of binaries.
UGS does all of this or provides information on how to do this.
oh god why everything should be so complicated..anyway, thanks for this info, I'm going to dig into it
@robust jacinth did you setup it? Looking through code it wants to find unreal engine folder in my perforce repo..
which I don't have in perfoce -_-
I have not, but it's expected you will need to set it up specifically for your particular deployment of it.
As for complicated, I'm not sure what you expected of a multi billion dollar industry that combines technology and art to create simulations of imagined realities...
😨
You can diff within the blueprint editor.
I don't recall there ever being any kind of merge capacity. You should never, ever, ever be handling merging of binary assets.
You effectively need to redo whatever work you're trying to merge in.
so basically have to make noone ever changes the same things?
You cant' merge
it would just overwrite
@dusk dove That's why you would be using Source Control in the first place
So the asset gets locked while someone is working on it
haven't tried this locking thing yet
And you wouldn't have any issues
about the best you can do is diff and then copy the work over.
maybe we're doing it wrong by not using it
What are you using exactly?
git+lfs
hmm
LFS should have locking
The issue is, that there's no "auto-freelock"
whatever you want to call it
When you submit
Git is sort of hard to work with, unless you have a "Card Master"
Someone that is green/red flagging assets as they get worked on so other can't jack things up
If you are still early in development and your team size is 5 or less, you should check out Perforce
Makes like much easier in development
But here's the LFS- locking: https://github.com/git-lfs/git-lfs/wiki/File-Locking
you need to latch into pre-post hooks effectively
it still doesn't cover all the bases either, it is this sad level of wanting and incompleteness.
and you'll break the souls of your artists. We've actually be getting people onto command line early to indoctrinate and it works pretty well but a lot of times they just don't interact with version control that much.
@dusk dove and @haughty ember I have implemented LFS 2 File Locks in my dev version of the Git Plugin
conveniently called Git LFS 2 plugin
no it is not, it is a separate plugin you have to put in your project Plugins folder
alright, gonna check it out
https://github.com/SRombauts/UE4GitPlugin (binary availlable for UE4.18 and 4.19)
also, there is a big performance problem with the default windows credential manager, like multiple seconds to checkin
huh
so basically, if we just add the lockable line to .gitattributes for uasset and umap, the plugin will automatically start working?
or is there an extra step to start using this in a repo that didn't use it before
just to finish regarding performances: what I meant is that you should try to configure git either to use SSH, or to store password as plaintext of with alternate credential manager to fix the perfs
and then report your solution to me!
Regarding your question:
I think you can add the "lock" keyword and start using it,
but I have never tried this (well, perhap's, but now I don't remember for sure: I think it just work)
@reef oriole hm, there is already a GitSourceControl plugin in the engine folder, how does it know which one to use?
As stated in the README, the project plugin override the engine plugin with the same name.
Also, you can tell that it's running the correct version since the source control menu is different
and you get a lot of output logs
(sorry @dusk dove for not answering this in a timely manner)
yeah, we already got it working and it's great :D
@reef oriole though this thing is still pretty slow even with ssh https://i.imgur.com/HHj0eGv.png
even running git lfs locks in cmd is slow af so it's probably not the fault of the plugin
is it supposed to be possible to make a commit without also instantly pushing it?
btw. revert in editor crashes in random uobject code, manual revert doesn't automatically free locks. is there a solution?
anyone can help me set SVN on my VPS?
@reef oriole using ssh definitely doesn't change anything, it still takes several seconds for each git lfs command to execute
@dusk dove sad thing 😦
I am actually very disapointed by the current status of LFS2
my only big game project is using Perforce
and all other smaller personnal "prototypes" only use raw Git since it's way easier/cheaper for this kind of usage
idk 10$ month for amazaon doesn't sound expensive
if we factor more space for EBS it might about 20
10$ a month is not a bad deal and when you link your twitch and amazon you get 5+ good games for free
We`re using PlasticSCM and I just love the easyness with it. Maybe it costs some bucks more ... but never had an issue ... esspecially the GLUON UI is very Artist friendly 😃
A version control that will help you develop new features in parallel, go distributed, merge in time, and never break a build again
we`re using the cloud-system
We use to use plastic, we abandoned it a few months later
It costs more than perforce and it's terrible, buggy software
It has a tendency to create merge conflicts even when there weren't any, cloaked files didn't work properly, artists didn't understand merges
Its star feature, easy branching, is pretty much equalled by task streams in perforce
It got worse when our company opened an office and people were submitting things around the same time as each other. You had to be at the head revision to submit and then you had to pray you didn't get any bs merge conflicts when getting the latest
We are just a small team of max 6 ppl and therefore its cost was just about the same as perforce (server needed), but when you reach the 5 ppl, perforce was too costy for us ... for a hobby team. We really havent got any issue ... and avoiding merging by communication. But jeah, on the last point you`re right. For us all the other systems had produced more problems, than plastic ... so we stick to plastic.
So right there you're saying you're making concessions because of how the software works. If your team gets to the double digits or you're working from the same physical location, the problems will be making you wish for perforce
whats the thingy to type for gith to upgrade my engine from 4.17.1 to 4.18.3
i cant remember 😂
is it ugh
git checkout 4.18.3-release -b 4.18branch
I've got a strange problem on 4.19. I'm attempting to place an open source project on github, complete with config files and the .uproject file.
I've been following this answerhub post:
https://answers.unrealengine.com/questions/16787/how-to-setup-git-for-an-ue4-project.html
Here is my repo:
https://github.com/uetopia/ProESports/tree/4.18-4.19_OSS_Enhanced_Complete
I download the zip, unpack it, and move the root folder to c:/ProESports
Then I right click the .uproject and "Switch Unreal Engine Version" I choose my source built engine version.
This generates project files also.
I open the .sln and choose "Development Editor" "Win64" "ProESports", then build…. VS Ouput window says
Build started: Project: ProESports, Configuration: LinuxTestServer x64
This results in Build: 1 succeeded.
Then I attempt to build UE4 Development Editor, which complains about make files being missing, and creates them.
Then I go back to build ProESports for development editor, and I get:
The property 'NMakeBuildCommandLine' doesn't exist. Skipping…
Any clues as to what I am doing wrong here? Am I missing some files in the repo?
I've been on a number of teams using different source control and I've never felt like we've gotten it "right."
For git: How do you get around not having exclusive checkouts? Conflicts on binary files have been a huge pain for me in the past. Is it just team communication? Is there an option I'm missing?
you can use the git lfs lock plugin mentioned above, but it sucks because each lfs command takes several seconds to execute, totally slowing down your work in the editor (is the fault of lfs, not the plugin)
there might just be no way to do it correctly and efficiently with git
@Frith#8299 "so git support is still beta after all these years? will it ever not be beta?"
I am the author of the git plugin; it is still in beta since I am still the only one to make fixes and features
(by which I mean, no one from Epic Games is maintaining it)
And the merge request I made whith documentation was never merged
Also, it should probably remain in beta at least until proper Git LFS 2 file Locks support
with no more delay at each "git lfs locks" command
since it would then be on par with Perforce features
Hi :)
😉
Haven't used git lfs recently, but here's what I remember
Basically it puts every version of your files in the .git folder
There're a few tricks to get rid of old versions, but IIRC you have at least 2x the size of your assets
Which sucks
I though space wise lfs managed it more efficiently
Well I might be wrong on this
As far as I could tell lfs focushes itself on speed mostly, doesnt it?
Yeah well, I have one devops and a sysadmins telling me to use lfs to solve Part of our problems, but I couldnt find a reliable source of information that could fullfill my needs in terms of information
So all I can rely in is on users and their experiences
Its my first time utilising GIT on a large scale UE4 project because of $$
So you noticed that the space on the server was bloated super fast?
Or was it locally?
@analog burrow
Actually you should try with a test repo
Create a bunch of dummy 1GB files, change them etc
See if it's viable
Yeeeeeeeeeah.... I.... Guesss
@reef oriole Do you know the status of proper git locking comparable to perforce?
i'm having a painful time using perforce... does anyone know of any free training resources for it? i seriously despise this VCS so far...
Hope you're using both the plugin for VS and the plugin for UE4.
Both of them make it so that you basically only ever interact with P4V when you need to submit.
Or sync.
should i be doing my changes in a separate stream though?
so we have a mainline and a dev stream, should we just be sending changes directly to the dev stream or is it good practice to use our own streams?
Yes, directly to the dev stream, unless you want to make a small, temporary task stream for something you feel is an appropriate chunk of work to justify it.
Personal streams don't make sense.
Your workspace is yours, that's your personal set of files, tracked and managed.
great, that sounds good. thanks for clarifying
NP
Cant speak to @robust jacinth experience with P4VS but ive had issues with its performance and opted not to use it.
Did you turn off the server querying it does?
Probably not. I assumed it was just not very good.
Mmm might have to give it another go if you think those changes help?
P4VS is fine, honestly
Maybe for you
If you don't disable those things, then yes, you'll face exactly the issues you just described.
Which is P4VS trying to query the file state of every file in the entire solution, stupidly.
And then trying to do it again every so often.
it isn't worth my time to install it and configure it, IMO
If you're fine with what you've got, sure.
Just saying that most of Epic uses P4VS and it's fine.
I use it for work and for my own stuff without any problems.
Think it'd be worth putting those settings in a wiki or something easily searchable
Ill give it another go with those settings. I just found it horrible to work with in its default state so i went back to my old workflow
Cause maybe then I wouldn't avoid p4vs until the end of time
(if I'd tried those earlier)
I hear ya. But I'm the sort of person who goes in to the options/settings for any program or game before doing practically anything else with it.
... and also have dealt with P4VS being shit due to exactly that reason and having had the discussion about why you should make it do a lazy load and never check the server. 😃
I didn't see an option Don't drag my editor experience down :P
If you see the log output, you'll end up realizing it's hitting the server and freezing VS until it finishes those operations.
IDK, I have some scripts for if I wanna manage file status manually - reconcile works for everything else
It's your first clue that it's related to P4VS querying the server regularly and when selecting a file.
¯_(ツ)_/¯
I did use NitftyP4 for a while before that.
maybe I coulda been more diligent. If I'm ever forced to use p4vs again I pray I remember your advice here.
I've just got a button on dopus
really handy if I select .h/.cpp via split pane and then check them both out at once.
I've got Alt+O working in it too.
Never had less hassle adding/removing/managing files in a ue4 project.
My workflow when editing any source is basically never interacting with source control - it's all "auto-magic". Except for adding files, which I do in the native OS filesystem browser anyways, so I just drag-drop the new file in to the P4V changelist.
Neat
Regen is available with UnrealVS.
I have seen the regen option get busted for some reason though.
And I can regen launcher projects with it
Anyway the chances of this being allowed to run inhouse are pretty slim... :(
Any tips on optimizing Git perfomances on a big repo like UE4? Maybe some sort of caching mechanism?
don't use git
best you can do
is to buy SSD
and keep it here
and
there is that
Perforce the best and most expensive ever 😂
@crimson lynx Serious answer : Git + LFS for games
For your UE4 repo, Git should behave pretty well
Git clients, not that much
Hey everyone. I am starting to build forked unreal engine builds. Now the question is if there is a best practice on how to deliver the build to our team (remote team consisting of 20+ ppl). Afaik I am not able to use the Epic Games Launcher for this.
git + lfs is garbage
it will duplicate all your binary files in repository
granted it will at least not create history of them..
it takes twice as much space
If you're concerned about file size you're in the wrong business :/
well if the difference is between 800gb vs 400gb the I start beign concerned ;s
I like git for code as much as next person
but for storing big binary assets it's still garbage ;/
Even 800GB is still a few minutes of cloning, for an operation you do only when setting up your project, so I dunno
Get a regular 1TB disk drive for $40 then 😛
to slow 😄