#source-control

1 messages Β· Page 46 of 1

cold lotus
#

If you use binaries in git without lfs you will render your repo useless sooner or later

#

The server can't handle all the deltas it has to compite and you end up with those 'remote hung up' which is just a timeout

#

Even cleaning or using the BFG might result in these timeouts.

glad vector
#

@cold lotus very true m8. Also very highly worth noting once more to the team. Thanks again for the incentive to do such.

cold lotus
#

Yeah, git is meant for source code not binaries, a shame UE does not have a text format for their assets, while that would not solve the issues with your resources like textures, meshes, etc

glad vector
#

yea, tru that. thanks again for the reminder

pearl marsh
#

if you have a project on SVN, if one person enables a built-in plug-in, does everyone else have to enable it as well?

#

there's no code in the project so the included folders are just content, config, and the uproject file, how do plugins get synced?

pearl marsh
#

I'm really lost here, I'm new to subversion and source control, and I have it working correctly from my server, except for when I enable a built in plugin, it does not get enabled for everyone else, is there no way to SVN my marketplace plugins or built in plug ins to a project for everyone else to use?

valid olive
#

@pearl marsh since you have the project under source control, you can test this: when you disable/enable the plugin yourself, are there any changes in the files that SVN manage? If there are not, then - what does that imply? If there are, look at those changes in detail (look at the diffs, line by line) - does it seem reasonable that those changes are all it takes to enable/disable the plugin?

fallen geyser
#

@pearl marsh when you download plugin from marketplace, launcher puts its folder in your engine's Plugins/Marketplace folder - this is your personal installation of engine and your personal folder of plugin ;)
you need move plugin folder to the project's Plugins folder (located in the project's root with Config and Content folders) and submit this

  • change in .uproject (enabling plugin, if it's not enabled by default)
pearl marsh
#

Thank you guys for your replies, yes files get changed when enable/disable plugin, SVN says only the uproject file gets updated. yet, the built in plugins do not get enabled for anyone else. Specifically, we are attempting to get multi-user editing working. Also, there is no plugins folder in my root project folder, I have not used any marketplace plugins for this project yet, sorry, that was for future speculation, but for now, I am just trying to have built in plugins get pushed to other users, and only the uproject file seems to change when enable/disable, yet the plugin enable does not make it to any other users

fallen geyser
#

@pearl marsh yes, you need to update project's folder from SVN, not editor - and then run the editor
think logically - .uproject is responsible for defining what should be loaded with the editor, in case of source builds you would have to compile newly enabled plugins before starting the editor

#

just get used to updating entire project's folder with closed editor

  • "content hot reload" is still experimental
  • often you need update project binaries, configs, plugins, .uproject
pearl marsh
#

I see, thank you, I understand on syncing the project folder part now. But as for working with plugins, I know custom plugins will generate a plugins folder in the root, but for the built in plugins, the only change that occurs is something inside the .uproject file, which you say is responsible for what should be loaded with the editor, so if it is a built in plug in I do not understand why the .uproject gets updated successfully, yet nobody else gets the plugin enabled or any settings pushed. Does this mean that we would need to switch to a source build of the engine to make sure plugins are consistent across all users?

fallen geyser
#

@pearl marsh no, probably somebody messed up something - didn't submitted or downloaded correctly

novel sierra
#

@kind olive I set up Perforce on AWS a few months ago and it was nowhere near as difficult as I thought it would be. I'm running the free version of the P4 server and using the free AWS tier. I've come close to the limits of AWS free tier (80% or so) but even if I had a busy week the costs for usage seem very reasonable

neon tulip
#

free tier expires though right?

novel sierra
#

Nope, you can use it indefintely as I understand it, it's the "personal license"

#

I mean, maybe I'm wrong on the legal aspect of that but there's no shut off switch either

neon tulip
#

hmm used to be 1 year free

novel sierra
#

I think it probably just blocks you from adding additional users? I think the max is maybe 6?

neon tulip
#

AWS?

novel sierra
#

Amazon Web Services

neon tulip
#

yeah, just wasnt sure if you meant perforce.. hmm i did not know free aws forever was a thing

#

confusing

novel sierra
#

Oh yes, both free. AWS has a free tier as long as the E2C instance you are using stays below a certain amount of data transfer and CPU usage

#

Yup! That first one is the one I'm using. Two people active and an ArchViz project so the data transfer has been the part that hits the limits

neon tulip
#

hmm I'm not seeing any always free ec2 instances

#

just 12mo

novel sierra
#

Oh dang, @neon tulip I think you're are correct in that it expires after 12 months

#

Apparently I don't need read the fine print very well. Car salesmen love me...

#

That said, still a year free, it'll be interesting to see what my AWS monthly bill is when that offer ends. I suspect still reasonable 🀞

vital sapphire
#

tbh the ec2 pricing isn't bad if you are just running a tiny instance

#

even the bigger instances are not too expensive

#

def worth the money imo for all the features AWS offers

#

ive even used the gpu instances for rendering and NN style transfer and its def reasonably priced for the hardware you get

#

just dont accidentally leave an instance running all night πŸ€¦β€β™‚οΈ

tranquil spoke
rotund bobcat
#

Is your git initialized in the right folder?

neon tulip
#

Digital ocean is a fair deal cheaper than ec2

dusk dove
#

expensive cloud computing

tranquil spoke
#

I was able to clear the error by manually committing the file outside of UE4

novel sierra
#

@neon tulip Have you used Digital Ocean? I had been looking into them when I first realized I was going to need some sort of source control. I'm also a web developer so my first choice had been git but obviously that tech wasn't built for the amount of binary files a typical game project has

neon tulip
#

Yes. I use svn

#

DO is way way cheaper than beanstalk app for the same storage

#

Is around 45 dollars a month for 350gb. SVN compresses things on the server so it goes way further than that

vernal kraken
#

Quick question about git lfs. I just started using it recently and my first few projects it seemed seamless. However, my new project is creating an lfs folder that it wants to commit. When I go to stage the files Sourcetree warns me that they're over 2 megs and I should add them to git lfs. Should I ignore the lfs folder and the hooks folder? My other projects don't have them. Thanks!

rotund bobcat
#

don't commit the lfs folder

#

the lfs folder and hooks should be in your .git folder right?

#

isn't that one ignored by default

vernal kraken
#

they're in the same folder as my .git folder instead of inside it

rotund bobcat
#

ok

#

that seems wrong

vernal kraken
#

yeaaa, not sure how/why that happened

rotund bobcat
#

seems like your lfs was wrongly initialized

#

did you just run git lfs init in your repo?

#

or how did you do it

vernal kraken
#

used sourcetree to do it, same as the other ones (which seem to be working fine)

rotund bobcat
#

I would somehow try to reinit lfs properly if I were you

#

dno how to go about it though

#

otherwise, for sure add the lfs folder to your gitignore

vernal kraken
#

mmkay, thanks!

#

I knew it seemed wrong

rotund bobcat
#

because adding the lfs folder to lfs would just create a weird infinite loop of creating assets to point to assets or something

vernal kraken
#

yea

vernal kraken
#

huh, started a new repo and it worked fine for a while and now the new repo has the lfs and hooks folder outside the .git again (actually it has a copy in both). The only thing I'm doing different in this project is that I'm doing a c++ based project instead of a blueprints one, so I'm using visual studio 2017 (the course I'm following is on 4.20). I found this https://stackoverflow.com/questions/50546186/are-the-git-lfs-and-hooks-folders-supposed-to-be-outside-of-the-git-folder on the topic, so I'm wondering if visual studio is creating those folders. I do see it has git in the lower right hand corner. Not sure how to go about fixing it though. 😦

#

disabled git in visual studio, hopefully that fixes the issue

quaint obsidian
#

@vernal kraken it's a bug with git lfs

#

what version do you have

vernal kraken
#

@quaint obsidian new computer so should be latest, just downloaded/installed 2.9.2 just in case

quaint obsidian
#

ah, the fix will be in 2.9.3

#

download the artifacts here if you want

fallen geyser
rotund bobcat
#

needs more git

fallen geyser
#

nope, git is terrible for assets and non-programmers, as highlighted πŸ˜‰

rotund bobcat
#

depends on your workflow and teamsize really

quaint obsidian
#

highlighted where?

#

also git is amazing :)

fallen geyser
#

beginning of their presentation

#

yes, for programmers and branching πŸ˜‰

quaint obsidian
#

we have had no problems with artists using git

#

it doesnt work out of the box in ue4 though :)

#

(just like perforce, really)

#

it just requires its own set up that hasnt been documented much, but im preparing a blog about that :D

fallen geyser
#

well, entire AAA project with hundreds of thousands of asset commits and p4 is still super fast with it

#

also easy reverting, shelving

rotund bobcat
#

yeah like I said depends on workflow and teamsize how bad it can be

quaint obsidian
#

and data loss, merge errors, timeouts :D

#

and terrible branching :D

rotund bobcat
#

if you're working with over like 20 people on a project, I'd definitely do p4

fallen geyser
#

obviously, I have nothing against git, but since p4 is free for small teams, I really never needed git πŸ˜‰

#

I do it even with 2 people πŸ˜„

quaint obsidian
#

we have over 80 people working on our project with git

fallen geyser
#

but yeah, it depends what you used first

rotund bobcat
#

well yeah, but if you're over 5 people it's not free

#

also known as crazy expensive

fallen geyser
#

i started with AAA, so p4 is what I've started with

#

not tru πŸ˜‰

#

it's limited by number of workspaces, never clarified on the website though

#

or many number of users, really I'm not sure πŸ˜„

rotund bobcat
fallen geyser
#

but studios usually create users like Design, Programming, QA and individual workspaces for developers (which is normal workflow)

#

yeah, so we can use it for 20 developers for free

#

minus build system or sth

#

but I know bigger teams which don't pay yet... so there's something shady with their numbers πŸ˜‰

#

however, their licensing is plainly stupid

#

they should go like normal subscription plan

rotund bobcat
#

well we did a quote for our team and it would cost us about x7 compared to git hosting

fallen geyser
#

for how many people?

rotund bobcat
#

I believe 13 at the time

#

it's been a while

fallen geyser
#

at the time, you could still use p4 for free πŸ˜‰

#

still I'd gladly pay for full license if given a choice - it's still super efficient with big data sets
whereas git LFS is far away from that

#

it's funny thing that theirs unclear wording on website keeps teams from trying it πŸ˜„

#

instead of saying "get it for free for 20 people" and then you'd almost forced to buy when team grows

rotund bobcat
#

the perforce GM said this though β€œWhat we heard at GDC is that indie game developers love Helix Core, which is currently available for free to teams of five or fewer, but they wanted similar access to our Hansoft project management product,”

#

so I'm guessing explicitly 5 users in the team

fallen geyser
#

what the fuck...

#

man, I'm using it for decade in many companies

#

it was never restricted to 5 people

#

a single dev = workspace, not user

#

p4 user is unit for setting up access/privileges

#

i.e. devs sometimes have different workspace for office machine and remote PC at home

rotund bobcat
#

so you're saying you could have 20 people working under 1 user?

fallen geyser
#

it sounds they p4 guys think they convince people to pay for licences at the start - they probably don't care if you'd use free version for years, no bonus for salesman

#

yep

#

I guess, you need at least separate user for admin account, but generally yes

#

and it's maybe second time I hear that indie studio would like use their Hansoft - I know only one producer in Poland that likes it πŸ˜„

#

well, that explains a lot, they don't want people using free setup πŸ˜„

#

so if you have on-site server in studio, try it, basic setup is super-simple and works like a charm
client UI is quite minimalistic, so simple
VS plugin handles auto checking out files you start editing

rotund bobcat
#

that's really annoying

#

I don't wanna check out code files

#

merging them is super easy

fallen geyser
#

ah, but terminology will be confusing for you initially "checkout" means marking file being edited πŸ˜„

#

you won't notice checking out

#

plugin does that for you, when you start typing in the source file

rotund bobcat
#

yeah but doesn't that lock the file for other developers

fallen geyser
#

text files don't need locking

#

but you could set it this if you need badly πŸ˜›

rotund bobcat
#

so what's the point of checking them out

fallen geyser
#

sometimes is useful to know that somebody works on this

#

it prevented me sometime from deleting file πŸ˜„

#

or messing heavily with the class layout or doing cleanup while somebody else is working on it

#

but technically p4 sets all submitted files to read-only, so either you need check out while starting work on it or set file to writeable (editor has option for that for assets)

#

ok, but let me stop promoting p4 πŸ˜„

#

actually I wonder if some of sweet p4 options (there are here since beginning of time) are possible in some Git UI clients?

#

in p4 it's possible to sync any folder or asset without syncing entire repo

#

which is awesome when you're tracking where bug appeared and which file (and file version) caused an issue

#

I can also review history of given asset/folder easily, like with entire repo

rotund bobcat
#

yes you can do that

#

you can cherry pick commits or files from specific commits

#

and log history

#

not with folders though I don't think

#

never had the need to though

fallen geyser
#

and can I see history of given file first? all revision of it?

rotund bobcat
#

yes, you can see all the historical changes

fallen geyser
#

and then pick specified revision?

rotund bobcat
#

yes

fallen geyser
#

which client then? πŸ˜›

rotund bobcat
#

sourcetree

fallen geyser
#

oh, so it's a bit better nowadays or I used it wrong sometime ago πŸ™‚

#

good to know

rotund bobcat
#

I do everything sourcetree + commandline

faint cairn
#

Everyone likes a different program. Choose one, test it and if you like it, stick with it.
We have everything UE4-wise with P4. And all our clients too.

#

And all other kind of pure code outside of UE4 hobby projects are somewhere on git.

#

I do have to say, setting these programs up sucks for all of them

rotund bobcat
fallen geyser
#

another question about git clients - is it possible to have multiple working changelists? without sending anything, even to local repo?

faint cairn
#

You mean branches?

rotund bobcat
#

like branches?

fallen geyser
#

no, like few lists of assets I work on

faint cairn
#

Perforce can do that too iirc. Problem is, if you use UE4 with BPs (or in general Uassets), you can't merge these back in.

#

Hm

#

I don't follow

rotund bobcat
#

I don't git what you mean

#

badum tss

#

do you mean like having the changelist of everything that has been updated since last commit, but being able to split it up?

#

what would be the point ofthat

faint cairn
#

You can have multiple changelists if that's what you mean

#

Pretty sure that's a key feature of source control

fallen geyser
#

ok, I prepared concept art

#

πŸ˜„

#

@rotund bobcat it allows to split work easily

#

even distribute on code change between few commits, so history is easier to understand

rotund bobcat
#

well you can just stage whatever you want per commit?

faint cairn
#

Yeah pretty sure git can do that

fallen geyser
#

yeah, I'm not sure that's why asking πŸ˜„

#

you know, in p4 is something visible by default in the client πŸ˜‰

rotund bobcat
#

you don't have to commit all your open changes at once if that's what you're asking

fallen geyser
#

maybe it's also easy in git, but hidden

#

I know πŸ˜„

#

but can I have a few list of local changes visible in UI? without using commandline or other tricks?
still asking about UI clients, of course πŸ˜‰

#

if I'd stage changes - how I would check what files are there and i.e. diff the files?

rotund bobcat
#

you can have staged and unstaged, dno if you can split further, cause I've never had the ned for it

fallen geyser
#

ok πŸ™‚

rotund bobcat
#

but you want to split the unstaged files into more lists?

fallen geyser
#

exactly

rotund bobcat
#

could you give me a use case where that would be useful

#

cause tbh I don't see the point of that atm

fallen geyser
#

it's my screenshot above πŸ™‚

faint cairn
#

Well I worked on a lot of shit the last 3 days, but you don't want one huge commit.
So I cut it into smaller lists and commit then one by one (making sure they don't rely on each other int he wrong order).

neon tulip
#

lfs sounds like a nightmare squint

faint cairn
#

I also have some stuff staged for some later commit

fallen geyser
#

one list for new system I'm working it
if somebody ask me for a bugfix something else, I put my "new system" to separate changelist and send bugfix code only

rotund bobcat
#

well, you could either make a separate commit with the bug fix

#

or make a branch to fix the bug

fallen geyser
#

also often separate list for crap/test assets, so I would send this accidentally

#

or I can split a system into few lists while I'm working for days on it

rotund bobcat
#

and if you don't want to send stuff just put it in an ignored folder

fallen geyser
#

evey list would describe it precisely what are changes

rotund bobcat
#

you can split your work in seperate commits as much as you want

#

you could have a commit per file

fallen geyser
#

I can also write detailed description for commit long before clicking "send"

rotund bobcat
#

yeah, you can commit locally

#

and then push everything at once when you're done with what you're doing

fallen geyser
#

sorry for a noob question then, but I can push only 3 out of 5 staged lists? not all of them?

#

I probably gonna hear "yes, use commandline" πŸ˜„

rotund bobcat
#

you can from the command line

fallen geyser
#

πŸ˜„

rotund bobcat
#

not sure in UI

#

but if you really wanna stick to UI you could make a branch of of the one you want to merge to

#

cherry pick the 3 commits

#

and then push that one

fallen geyser
#

good look telling that music composer or artist πŸ˜„

rotund bobcat
#

well you can add custom actions to sourcetree

#

so you could set it up for them

#

also why would you want to do that

#

if the 3 commits were finishing something, why not push it then

#

why wait till 2 commits later that you don't want to push for some reason

fallen geyser
#

ok, so old differences between these systems are still alive
in p4 everything works for user without command line or specific setup (no LFS, file locking as extras) - also history view for every folder, not only file - but that's issue of lacking UI implementation or something it's difficult to query in Git (history of folder?)
and branches in p4 are hard to work since branches aren't exactly needed for everyday work

#

also, p4 is easier in regards of revision numbering - just plain numbers starting from 1, easier to track or tell somebody what revision they should get/check πŸ˜‰

#

anyway...

#

if anybody would try p4, Epic's livestream explains almost everything well

#

just missing info about typemap, which is important to setup, to be sure UE4 binary assets would use exclusive checkout, one of biggest advantages of p4

#

and it's good they're talking about version control, it's now easy to link to their video if somebody on forums would complain "oh no, I just lost my project, cannot open assets, I hate Unreal" πŸ˜„

supple temple
#

hey so I just set up a git repo for my new project, UE can see it, vs2019 can see it, but I can't figure out how to add a file to the repo, like the equvialent of git add -- I have a .md file in a folder called Docs that lives in the project root next Config, Content, and Source -- the Docs folder didn't get added by the automatic UE git process, and I'd like to add it. I can do it on the command line, but I want to know how to do it in the UI

vital sapphire
#

i believe that is the case. I think UGS streamlines the p4 sync process somewhat

fallen geyser
#

to my understanding, UGS doesn't streamline basic actions
it's more like:

  • allow non-programmers to download updated assets only if matching build is already available (if you're use build machine and programmers send assets together with code - for few minutes you have repo with assets updated to build that didn't came yet)
  • sync compressed engine builds easier
  • and easier communication, like they don't need to use internal chat to say "hey, I'm working on build fix" which probably happens very often while working on the engine
#

I'm as curious as @pearl marsh, if somebody outside of Epic used it?

fiery prism
#

<@&213101288538374145> I reckon this is a good pin for this channel

maiden turtle
#

Me and a friend are running source control there's a .vs folder in the project root which is half a gig - is this important to share or can it be generated on the remote device without sharing?

fallen geyser
#

@maiden turtle never share it, it gonna generated on another machine that would need this πŸ™‚

#

generally, what you need to store in repository is the source code, configs (.ini, .uproject)
and binaries for non-programmers

#

Intermediate, Saved or other folders - safely put them on ignore list

maiden turtle
#

@fallen geyser yeah, as we went down the list in the project - it seemed 90% of the folders needed sharing so we just blasted over the whole thing, I'll look into adding ignores, you'd suggest that for intermediate too? Hadn't realised that wasn't necessary! cheers

fallen geyser
#

others programmers need source code to compile (raw material) and non-programmers needs an ready-to-use product (binaries)
.vs and intermediate - that's things stored on the local drive, so the work inside IDE and compilation would be faster, but that's need to be generated for everyone separately

pearl marsh
#

the non highlighted gets generated

neon tulip
loud tide
#

Thank u @neon tulip

#

Tomorrow i try byee sleep

maiden turtle
#

thanks @pearl marsh & @fallen geyser

fallen geyser
#

who knows how to properly setup .p4ignore for p4 plugin in Jenkins?
my reconcile works fine if I run it from p4 client, but reconcile run from Jenkins plugin doesn't seem to respect .p4ignore at all...

dusk dove
#

have you run the silly p4 set P4IGNORE=.p4ignore command there?

#

it won't work without running this on every computer with a workspace

fallen geyser
#

@dusk dove I did
it's just Jenkins plugin using P4Java, totally separate implementation than native C++ one, and there are some differences...

#

for now I just send everything from Binaries folders (workspace view narrowed for these folders only)
I checked that .target and .version files are also included in the launcher distribution of the engine, it doesn't harm to send it then...

willow pine
#

I forked the UE engine repo and cloned it, and now I have 2 remotes on my local repo. I used git tag and notice the 4.24.1 isn't there, so I did this:
git fetch src refs/tags/4.24.1-release (src is the remote for the original UE4 engine source).
It took some time and in the end showed * tag 4.24.1-release -> FETCH_HEAD. From some reason though doing git tag still doesn't show it (and I can't checkout it either). What am I missing here?

dense plover
#

hey, everyone. I can't quite comprehend what's the subversion con Arran is talking about at 6:15 in video @fiery prism posted. Could anyone explain why I'd have to separate my project somehow? The "game build" and "engine build". I never used ue4 with version control. All i did was git for coding simple projects.

Here's the link to what I'm talking about:
https://youtu.be/JxXydvG4mlI?t=375

At the core of any successful project lies planning, tools, and execution. To reduce risk and improve collaboration between developers, agile teams often implement Version Control systems to record changes to files over time, allowing them to easily recall specific versions a...

β–Ά Play video
fiery prism
#

You don't have to

#

It's just a good idea

dense plover
#

I kinda do have to. I'm about to start a group project

fiery prism
#

If you're not tweaking the engine then there is no need

dense plover
#

ah, you meant doing THAT

#

alright then

#

thanks for clearing that out. I don't intend to tinker with engine files

fiery prism
#

Any case: all the files needed to debug/build the game don't need to go to non programmers. I haven't watched the video though

dense plover
#

I just started to watch it. Figured it would be a good place to start. I'm gonna work with 4 other people. We probably won't be doing any c++ coding. Blueprints should be more than enough. I'm just trying to decide which version control tool would be most convinient for us

pearl marsh
#

is it possible to compile the shaders in a project and send it through perforce for everyone else?

fallen geyser
#

@pearl marsh you probably want to set up shared DDC, if you're cooperating on LAN

#

there are some methods for compressing DDC and including with plugins... but that's not feasible for actual projects where your materials change all the time

obsidian crater
#

Hey anyone else got troubles in using the free version of perforce? They tell you perforce is free to use for teams up to 5 people but after one month, the server simply expired on me while using it with only one user and I couldn't get it up again. From looking online I was told that this happens when your license expires.

rotund bobcat
#

@fallen geyser seems to have more experience with free perforce

dusk dove
#

did you make more than 5 users or 20 workspaces?

obsidian crater
#

Not at all, I simply had 1 workspace with 1 user

#

I used it perfectly fine for about one month

#

and then the background perforce service would simply stop running

rotund bobcat
#

even if you start it up again?

obsidian crater
#

Thats the problem, whenever I tried to manually start it I get an error 1067

rotund bobcat
#

maybe your ip changed?

#

apparently your license needs to be updated then

#

because by default at least local ip address changes on windows every so often

#

dno if this is the cause though, I've never used perforce

#

don't you have a log file somwhere that would say what was causing it to stop

fallen geyser
#

still server should run if you'd manually start service on server... no matter of local IP address, p4 doesn't care
it happened in past that Perforce changed licensing rules of "free tier" with the next server version, but it wouldn't change on already installed server

#

@kind olive try asking on Perforce forums or simply nuking old server and reinstalling (it's possible to move data - it's basically folder for asset versions and .db files)

kind olive
#

What?

fallen geyser
#

I mean, maybe your p4 server installation got corrupted some way, maybe some of its data

kind olive
#

I have no idea what you're talking about.

fallen geyser
#

ok πŸ˜„

rotund bobcat
#

@obsidian crater is who you want to talk to lol

#

you tagged the wrong person

kind olive
#

Is it an old question? I don't recall ever having issues figuring anything out with Perforce other than finding a cheap host.

#

ah,

obsidian crater
#

Thanks! Ill check it out πŸ˜…

fallen geyser
#

oh πŸ˜„

outer kiln
#

how much space would one need once source control setup, running,,,ex when it saves maps,typically mine are 122,220, or does itsomehow just save 'changes',

#

I SO need a huge ssd,,who doesn't ;))

fallen geyser
#

You can use HDD for repository, this is still common as bigger studios generate lot of data and you wouldn't notice a performance impact

#

And p4 is probably the most efficient at storing asset versions, every file is compressed to gzip basically

#

Even big AAA title could end up using only few terabytes for the project repository

#

Or you can get cheap ADATA M. 2 SSD (not as fast as Samsung ones), but still faster than HDD and silent ;)

outer kiln
#

hi sorry got busy as usual...reading over

#

HM perforce seems a little pricey but Ill thinkabout it...plastic scm seems a tad more affordable,,butis itas good I dont know...damn keyboard membrane drivesme nuts...waiting on logitech tosend replacement so sorry for spacebar issues

#

any idea if p4 truly is the best way fwd considering price

#

ya m.2 my wish going fwd

#

my pny ssd 256 is too slow

#

and ya adata is very reasonable

#

ty for reminder

#

well I have no hdd reallly that has enough room so might as well spend a few bucks and geet something that makes sense for future proofing etal

#

ya evn 2 tb is getting within reach of most of us,,TY for letting me know about aaa,,thats reassuring

stark badger
#

I have a question. If I have 4.22.3 on my home computer and commit it to my repo, open it on a school computer which is 4.24, make changes, come home, then pull the changes back onto my 4.22.3 version at home, now certain uassets aren't showing up? In explorer there's my TownGameMode.uasset but it's nowhere to be found in the editor...

#

Any help would be appreciated

rotund bobcat
#

if you're using git

#

make sure to do a git lfs pull

#

also, you should use the same editor version on all your pcs for the same project

wet comet
#

Lost a day of progress doing an engine integration because of perforce weirdness, might as well warn people against it:

#

p4 reconcile tries to compute if an added file is 90% the same as a deleted file, and if so treats it as a move instead of a delete/add. This was falsely picking up changes in my engine update and creating bogus integrations, and is also part of why reconcile is so ridiculously slow

fallen geyser
#

@wet comet
wow, that's interesting

#

I didn't have such issues, although reconcile was obviously slow and I had to it by subfolders πŸ˜‰

#

thanks for posting that, I'll try that
are you able to say how much faster reconcile is now?

wet comet
#

I haven't tried it yet with the option off, just read the doc

#

But if it has been scanning every single added and deleted file, that must be making it fairly slow

fallen geyser
#

in my case scanning entire Source folder was like 15 minutes, annoying but not an issue
the problem was when I was trying to commit this, p4 seemed to stuck forever and couldn't save changelist at once - p4 was more like commiting suicide πŸ˜„

#

so I had to click reconcile separately for every Source folder and then it worked

#

so I wonder if your trick could with that

#

but I'm gonna find out at 4.25 πŸ˜„

uneven coral
#

Does anyone have issues with UE4.24 Crashing while checking in files?

#

I dont even get a crash screen. It just closes

fallen geyser
#

@wet comet I turned off this thing in p4 you mentioned and, wow, reconcile is as fast as it should be now, thanks!

harsh slate
#

How can I make a Github repository with an existing project? (Without having to make the repo before the project)

quaint obsidian
#

you create the repo on github, and then it has instructions for using existing repo

#

you may have to run git init

rich steppe
#

Is there a way in Perforce to have a file be synced but still writable? I want to have save game files be able to be synced, but not write blocked so they can just be overwritten locally if so desired.

rustic igloo
#

How do I use the Multi-User Browser with someone on a different network?

fallen geyser
#

@rich steppe I don't know why anybody would send save game files to repository... but there are 2 ways:
-right-click on every file -> "change filetype" option and select "writable" from the list, it will add
"+w" parameter to the filetype

#

or you make it writable for every file of this extension, if you'd edit server's typemap

#

changing filetype from typemap won't change filetype of files already submitted to repo, you'd have do it manually

rich steppe
#

@fallen geyser Thanks, always writable works.

winter falcon
#

I need help, I discarded stashed changes and it discarded changes to files locally too, is there any way to recover?

winter falcon
#

How do I return it

#

Although they seem to be in two "commits"

#

Please someone

quaint obsidian
#

cherry pick them

devout quail
#

There is no built-in source control with Unreal right? Like I HAVE to use Preforce or SVN or Git right? I don't want my team to use any sort of coding outside of blueprints I'm not sure what the best way to go about is for that

pearl marsh
#

There is no built in source control like there is for Unity, you should really try and get the basic perforce working, you can use the free edition, it only comes with 5 seats but multiple users can have their own workspace per account. EG we have Programmer1(workspace 1, 2, 3, ect), Artist1 (workspace 1, 2, 3, ect), Guest1((workspace 1, 2, 3, ect), SVN is very slow, and you will have to find some sort of cloud hosting, GIT is not good for when you are super deep into projects, its great for code, but not for engine binary files and such, I would really recommend the free tier of perforce with the basic AWS cloud hosting, it's decently cheap per month and its blazing fast, once you get everyone set up with git and SVN you will really hate how slow it is to do little things in the editor. Plus AWS lets you try their services free for 12 months

#

@fallen geyser Thank you for that screenshot, I would never even think that p4v has a damn dark theme, you changed my life

devout quail
#

My biggest concern is making sure blueprints stay applied to whatever file they're applied. I am using SVN for another project (I myself didn't set it up) and let's say if someone else made a blueprint that makes the blue box go up, once I "download" the new edition, I have to apply the blue material to the box and I have to apply the blueprint to the box. Does Preforce make it so that if Person A applied a blueprint to something, Persons B-E will receive it as is? @pearl marsh

fallen geyser
#

@devout quail it should work with every version control... that's the entire point....

pearl marsh
#

Someone didn't set up your SVN properly

fallen geyser
#

@pearl marsh haha, you're welcome, on of the last "black tools", they made it black just few months ago πŸ˜‰

devout quail
#

Yeah I guess it's not set up correctly or I might not have set it up correctly on my end. Anything I upload uploads but like the materials and blueprints do not stay applied at all (vice-versa with downloads too). I just want to make sure my team in my current project has access to all the changes

fallen geyser
#

sounds like you reverting them instead of submitting, dunno, used SVN a decade ago
are sure that svn ignore rules aren't set to ignore folders with problematic assets?

devout quail
#

Honestly have no clue. I just followed the steps I was asked to take but they seem kinda fishy. In order for me to "submit" assets, I have to place the assets in a separate Windows folder that is linked to server. So it's literally just copy asset, place asset, upload asset, refresh and make folder up-to-date, repeat process

quick slate
#

Has anyone worked with the shiny new RoboMerge and/or BuildAgent yet? I'm looking into them but docs are scarce and for whatever reason they aren't where they should be on my version of 4.24, which is a problem in of itself

jolly fog
#

hello guys I have friend who can't setup the source tree-we have the project but when he log with the info of his acc and paste the link of the gitlab project it writes invalid url but it is now-how to fix this problem?

wintry citrus
#

Hi! Has anyone worked with Microsoft Azure DevOps repos with UE4? We're currently using P4 and have a 500gb+ repository. We're looking for an alternative. Azure DevOps free unlimited space private repo seems like a nice option for us but I don't know how good Git LFS currently is. Thanks!

fallen geyser
#

@wintry citrus Git LFS is not as efficient as p4 with huge binary repositories, IMHO "free unlimited space" isn't good reason to leave p4
are you sure you want to focus on free repo instead of paying a bit for i.e. Digital Ocean + P4 or setting up machine for p4 in the same physical location as your build/cook machine? πŸ˜‰

wintry citrus
#

By the way, we don't have any problem with P4 itself, it's just that the cost of maintaining the P4 server is getting too high

#

@fallen geyser currently we're hosting our P4 server in a dedicated server and getting the same amount of storage on digital ocean is even more expensive

#

Setting up the P4 server locally sadly is not an option for us. We work remotely and our third world upload bandwidth doesn't allow us doing that :/

fallen geyser
#

I see, you got a bit conundrum then... ;)
(can't help about Azure DevOps, so I hide now)

wintry citrus
#

Yeah, it's a tricky situation haha

fallen geyser
#

you can always nuke the current repo history and reset the gigabyte counter, annoying at the beginning but you probably don't need entire history if you don't run live game πŸ˜› πŸ˜› πŸ˜›

quaint obsidian
#

@wintry citrus I would say Git LFS is a good solution but you need some additional user facing layer on top of it

dusk dove
#

the cost of the p4 server is the problem.. and not the cost of p4 itself?

wintry citrus
#

@dusk dove p4 has a free license for small teams

pseudo osprey
#

git is working on binary stuff, but until it's ready git lfs is as best as it gets :/

#

unless you are windows only maybe, and can use the special microsoft git version

jolly fog
#

hello guys I have friend who can't setup the source tree-we have the project but when he log with the info of his acc and paste the link of the gitlab project it writes invalid url but it is now-how to fix this problem?

rotund bobcat
#
#

he might have installed wrongly

jolly fog
#

I found the problem-he problem was form the email-wtf

#

xD

valid olive
#

@devout quail to make source control work well, you should not need to copy files around manually before or after a submit or update operation. The itnention of Subversion/P4 etc is that you should have one work folder with your Unreal project; you use the UE editor to modify the files within that folder; then you use your Subversion/P4/etc client to synchronize your local changes against the changes on the server. The Subversion/P4/etc client should be able to tell you which files you have made local changes to (and which therefore need to be committed), which files others have committed changes to (and which therefore need to be fetched), and whether both of you are attempting to commit to the same file without having each others' changes (in which case the system will complain, and tell y'all to go talk to each other).

#

@devout quail having a separate folder for uploading/downloading makes many of the automatic features not work. You should really look into this, your lives will be better if you use the source control tools as intended.

devout quail
#

Okay yeah so the shared drop doesn't have a uproject file it seems which is why everything isn't working the way it should. I'm gonna look into this because what you said makes a lot more sense than what is happening. I'm also gonna talk to the project in case I am the one messing things up @valid olive

snow hazel
#

Anyone knows how to solve these?

#

Severity Code Description Project File Line Suppression State
Error MSB3075 The command "....\Build\BatchFiles\Build.bat -Target="UE4Editor Win64 Development" -Target="ShaderCompileWorker Win64 Development -Quiet" -WaitMutex -FromMsBuild" exited with code 5. Please verify that you have sufficient rights to run this command. UE4 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.MakeFile.Targets 44

neat grotto
#

Folks familiar with SVN: Any idea why a folder would be marked modified (red exclamation mark) even if everything inside the folder has the green checkmark?

ocean bison
#

So, having an issue with Git and UE4. Whenever I select the git.exe file path, it only gives me this with no other options

#

When it should look like this

#

it's also not implementing a .git file in my project files, therefor I assume it's not actually installed correctly

snow hazel
#

Anyone has idea, why can't open FL_CPP_Info.h? The file is there. I try to convert project for 4.24

quaint obsidian
noble knoll
#

creating their own?

#

nuget

#

4 tries???

#

i mean, maybe

#

just maybe git is not the answer

#

looks like they also dont have proper source control on binary files with all of that....

#

and they didnt even try to use SVN or mercurial

#

btw i can 100% confirm this has happened to me But we faced a bigger issue than technical ease-of-use: repo size. GitLab.com was quite unstable at the time we were using it, and with larger repository sizes, it could cut out regularly, especially for new people cloning the entire repo

#

i had a high end self-rolled gitlab server, and after 1 week of ue4 LFS usage the thing just choked

quaint obsidian
#

@noble knoll sorry for being a dumbass :(

noble knoll
#

man, did you try other systems? git is known for being terrible on LFS, but SVN and mercurial and others exist

#

this just reads like repeatedly hitting a wall and just forcing through

quaint obsidian
#

it works fine now

noble knoll
#

do you have source control on binaries?

#

proper source control

quaint obsidian
#

what do you mean by source control on binaires?

noble knoll
#

can you do common source control operations on blueprints and levels?

quaint obsidian
#

yes

noble knoll
#

as in looking at log, diffing stuff, and being able to sync an older version for checking

quaint obsidian
#

i mean, if you think about it, git hasn't been properly built up for game dev, someone had to pioneer it

#

yes, through the ue4 git plugin

#

it's in LFS

#

all the blueprints and levels

noble knoll
#

wait, isnt that whole nuget stuff going outside of git?

quaint obsidian
#

that's for editor binaries

#

...

#

I should clarify that

noble knoll
#

oh, so its actually LFS for blueprints/levels, and those extras for stuff like binaries and maybe source assets?

#

then its not nearly as much as a trainwreck as i was thinking

quaint obsidian
#

yeah idk

#

were you going into this thinking it was supposed to be bad

#

or was it genuinely confusing what i meant by binaries

noble knoll
#

i was fairly confused by this Now, we sync project binaries through Nuget, rather than in source control.

quaint obsidian
#

I will put editor DLL binaries, good?

#

but it's not just editor

#

it's also project plugin binaries, though we dont have those atm, they're in the custom engine

#

i guess thats technically editor

noble knoll
#

that changes all, in that case its actually a pretty nice thing

#

i was thinking that it meant that you rolled your own hacky system for unreal engine binary files, like maps and blueprints, and was like WTF

quaint obsidian
#

yeah haha

#

i was confused why you hated it so much

#

and then i was ohhhh

#

i call it binaries, because it is in the Binaries folder

noble knoll
#

maybe specify that the binary project files are still LFS, but that executables/dll/etc are downloaded through nuget

#

how do you deal with tools choking on LFS repos @quaint obsidian ? I cant find the repo on github with the actual Content folder

#

The tweak makes it much more understandable

quaint obsidian
#

we haven't gotten any choking issues since switching to GitHub

#

and using watchman, git config large repo options, etc

noble knoll
#

oh, very interesting. I guess tools are now better now

#

my real question is... how do you pay the github?

#

i have my own unreal engine LFS repo with an open source project, and it ran out of traffic almost inmediately

#

(public)

quaint obsidian
#

I don't think I'm allowed to answer that, sorry

noble knoll
#

no prob

#

my real problem with the free one is that its 1 gb storage, and 1 gb bandwidth

quaint obsidian
#

also we don't have the Content folder available, it's private

noble knoll
#

oh i see

dusk dove
#

I thought github repos were hard capped at 10GB? is this not the case with LFS?

noble knoll
#

LFS has a different thing

quaint obsidian
#

LFS data packs

noble knoll
#

default LFS is 1GB bandwidth/storage

quaint obsidian
#

GitLab repos are hard capped at 10GB

noble knoll
#

5 dollas LFS is 50GB bandwidth/storage

quaint obsidian
#

we got around that tho

#

but it was awful

#

xD

#

as explained in the post

noble knoll
#

50gb storage is nice. Even on the extremelly bloat-y LFS. But that bandwidth...

#

assuming a team of 5 people and a project of 5 gb, thats just 2 full downloads per worker a month

quaint obsidian
#

but yeah, basically, we made unrealgamesync for git

#

and optimized git for large repos with thousands of files

#

so it doesnt have to loop through so many files

noble knoll
#

ill go try those for myself, but try it on my own hardware

#

cant pay the extreme rates of github

dusk dove
#

wow this pricing is stupid

noble knoll
#

its literally better to buy perforce + amazon server with how that pricing is

dusk dove
#

I guess the price of perforce would get you 400GB bandwidth per month on github?

#

for each user

noble knoll
#

perforce is free up to 5 users

#

amazon server, high end, maybe 20 euros a month

#

for a repo

#

20-30

#

that would be 200 gb bandwidth on github

dusk dove
#

once you have 6 users you immediately have to buy 6 licenses

noble knoll
#

and 200 gb bandwidth is literally nothing

#

lmao its cheaper than github

#

thats the cloud-hosted one

dusk dove
#

what's that?

#

that's not perforce

noble knoll
#

helix cloud, hosted perforce

dusk dove
#

perforce is like 40/user/month

noble knoll
#

for the self hosted version

dusk dove
#

helix cloud also hosts git stuff make sure you're not mixing them up?

noble knoll
#

perforce can serve git repos

#

it answers and "emulates" a git repo

#

i think thats how unreal engine syncs their perforce with github

#

dammit they dont have an actual price on the website

#

its an "ask us"

dusk dove
#

if this is helix teamhub it is not perforce

#

only assembla hosts actual perforce

#

it makes no sense

#

the rumored pricing for perforce licenses in here is 40/user/month with a 50% discount for the first 2 years for new companies

noble knoll
#

so cost of a perforce server is 40 per user + another 30-40 for a hosted cloud server

dusk dove
#

yeah

noble knoll
#

team of 10 would be 450 per month (rounding for simplicity)

#

that would get you 4500 gb of bandwidth in github

#

pretty sure a team of 10 like that wouldnt crunch those 4 tbs of bandwidth in a week

quaint obsidian
#

we have about 100 people

noble knoll
#

wew

#

now im really interested about htf you pay that lfs

#

as costs are likely astronomical

quaint obsidian
#

only about 80 like devs

fallen geyser
#

@noble knoll @dusk dove no, p4 is free up to 20 workspaces, one person in p4 = workspace
"p4 user" is a group of workspaces - commonly used to set different access levels, i.e. Programming, Art, Design
it's confusing, I know, but Perforce don't clarify that hoping companies would just simple jump onto paid licenses

#

one person can use multiple workspaces
build machine would use another workspace

noble knoll
#

one user is one account tho

fallen geyser
#

no

noble knoll
#

with its own login

#

i mean i use 1 user on 3 workspaces on PUBG atm

#

an user has his own email login and password

#

workspace is a different thing

fallen geyser
#

yes, but it's normal to have user Programming used by many people, the same login

noble knoll
#

workspaces can also be created freely by the users

#

uhm, thats busted

fallen geyser
#

why?

noble knoll
#

so then as author in every commit you just get "Programming"

fallen geyser
#

as user, but you can display workspace

noble knoll
#

yeah but thats kinda hacky

fallen geyser
#

workspace is true author of every change

#

no, it's not

noble knoll
#

that does make sense for less traffic stuff, like artists. Sharing account in there makes more sense

fallen geyser
#

every operation goes on p4 goes via workspace πŸ˜‰

noble knoll
#

that would allow to stretch the 5 users

fallen geyser
#

yeah, "user" is practically a "group of people" everywhere I worked with p4 for the last decade πŸ˜‰

#

from indie to AAA

noble knoll
#

literally never seen that happen

#

allways 1 user = 1 account

fallen geyser
#

that's a waste πŸ˜„

#

especially when paying like $700 for license πŸ˜„

noble knoll
#

well im at pubg, i doubt we care much about the money XD

fallen geyser
#

I see πŸ˜„ πŸ˜„ πŸ˜„

noble knoll
#

so 1 account each is alright

#

on indie teams ive often seen stuff like 3 programmer accounts for 3 programmers, 1 designer account for one designer, and 1 art account for a couple artists (shared)

fallen geyser
#

programmers don't separate accounts, so I don't get this too πŸ˜„

#

but obviously when someone starts small team, they create separate users πŸ˜‰

#

anyway... Perforce could finally rethink they licensing, they could have a lot of money from small gamedev - instead having them used free P4 or Git

#

I wonder if CDP Red is even using "1 person = 1 user" nowadays πŸ˜„

noble knoll
#

ive thought some times if it could be possible to hack perforce as a git LFS backend

#

as perforce keeps deltas and its miles faster than usual lfs

#

it could be an interesting trick where you have a git LFS repo for your project, but its mirrored to a perforce repo on every commit

#

like the reverse of what unreal engine does, where they mirror perforce to git

fallen geyser
#

haha, wonder if possible, entire history of single asset is just gzip
but they need to keep P4 journal to keep responsiveness with huge repos

#

but difficult to imagine what would happen on P4 if you'd call Git rebase
or deleting some commit - in p4 it would create another changelist and file version? (adding version instead of deleting) - or obliterate operation?

noble knoll
#

maybe you can make those work by literally deleting the files and then adding them again

fallen geyser
#

I admit that sounds like voodoo magic territory to me πŸ˜„

dusk dove
#

sharing p4 users is very cursed those people would need to share a password then

fallen geyser
#

the thing is the admin set a password for you, and nobody needs "privacy" here
actually it's common to have a single password for entire studio (except maybe p4 admin)

#

and it's good since you can easily submit/revert/unlock some locked files from developer being on vacation

#

so it's not your "personal password", just a password keeping anybody on the network from accessing the repository πŸ˜‰

noble knoll
#

i keep the admin-generated password for my pubg account stuffs. My logic is "at any point, if someone wants to access, its possible to reset it anyway, so what even is the point"

#

given that the IT admin can inmediately reset password for everything, and then you can access all

jaunty karma
#

anyone use multiple p4 proxies here?

cursive cosmos
#

I tried accessing perforce from my laptop again
I tried clone, get latest and they both only download the oldest version of assets
It downloads all of the assets, but the earliest version of them

#

It does not update the asset data when I submit, it just makes sure the asset EXISTS on the server

random cove
boreal crown
#

I'm reading this book Pro Git and in the Keeping up with Upstream section it says:
https://git-scm.com/book/en/v2/GitHub-Contributing-to-a-Project#_keeping_up_with_upstream

If you see something like Pull Request does not merge cleanly, you’ll want to fix your branch so that it turns green and the maintainer doesn’t have to do extra work.

You have two main options in order to do this. You can either rebase your branch on top of whatever the target branch is (normally the master branch of the repository you forked), or you can merge the target branch into your branch.
#

Previously in the book it said that I should never rebase anything that was made public.

#

So I shouldn't really use rebase in this case, because I pushed my local topic branch to my online GitHub fork. Is that correct?

pseudo osprey
#

doesn't matter if you are the only one on the feature branch

#

and even if you aren't, there's ways to work with it

boreal crown
#

How?

pseudo osprey
#

if your work is a feature branch awaiting a merge

#

it's damn weird to have others basing their work on your branch in the first place

#

also it seems git got a lot smarter about that and allows them to mostly rebase their work ok

quaint obsidian
#

yeah people dont use your feature branch to work on top of it

#

they just reset to your latest version of the branch

#

rebasing is way cleaner for feature branches imo

#

i hate seeing PRs with merge commits, they just become so messy

sand snow
#

I'm following the instructions given in the last Inside HQ: Version Control Fundamentals setting up a Perforce server on Digital Ocean (basically @burnt shadow 's instructions), but when I go to connect using P4Admin it's coming back with a connect failed: check $P4PORT .... WSAECONNREFUSED. Can anyone help me out here?

#

Ooo, I think I found the problem...

#

Yep, for some reason Perforce didn't start up, just had to log in through putty and run p4d and all seems well

burnt shadow
#

what is HQ: Version Control Fundamentals

#

nvm

#

oh no

#

OH NO

#

THE LIVE STREAM POINTED PEOPLE TO THE BLOG

#

OH GOD

sand snow
#

Haha

ripe linden
#

@burnt shadow you mention daemon tools in the blog post, but the code to download it no longer works (at least for me)

dusk dove
#

now you have to delete the blog post to avoid misleading so many people

rotund bobcat
#

what blog are we talking about and what's wrong with it

dusk dove
#

I assume the one that explains how to set up p4 in a completely ancient way

burnt shadow
#

I unlisted it once and I got a bunch of email about where did it go

#

The only solution it seems is to update it

#

Zzzzzz

dusk dove
#

replace it with a link to the official guide for package based install br_dab_left

noble knoll
#

Docker is where its at this days

burnt shadow
#

That’d constitute updating it

#

Kubernetes is the new docker

#

In 10 years we’ll come full circle back to bare metal monoliths because a single node will have 256 cores

mossy basalt
#

I just set up perforce how do I connect to it?

#

Set it up on a seperate machine.

fallen geyser
#

@mossy basalt launch client P4V and it will ask you connection details

mossy basalt
#

Yeah I can’t even connect to that

#

I tried

fallen geyser
#

you can add users/groups and set privileges though p4admin

mossy basalt
#

Ok I’ll look at that now one sec

fallen geyser
#

you need to show screenshot where you stuck and why it doesn't let you connect πŸ˜‰

mossy basalt
#

K

#

P4Admin won’t open .-.

#

Took awhile

#

What do I do from here?

#

I opened it and clicked ok

#

I’ll get the other guy to do it because I can’t be bothered to do it

river tinsel
#

@burnt shadow we wont. Because microservices are not really about performance (;

burnt shadow
#

which I'm sure will change

dusk dove
#

micro services is just a more complicated, distributed monolith

river tinsel
#

which when done right is resilient and available

#

once you 256 cores machine is down

#

all you services go down with it (;

dusk dove
#

same if the cloud provider decides to run your 100 micro services on the same physical machine and that goes down

river tinsel
#

that's like winning lottery

#

i take my chances πŸ˜„

winged tiger
#

Has any one done a git to perforce migration?

fallen geyser
#

@winged tiger migration as moving entire history and users?

winged tiger
#

Yes

fallen geyser
#

well, I only know that p4 can operate on Git (didn't use it myself)
but I'm surprised how easily one could sync repositories between Git and P4

#

for what's worth, keep in mind that a single developer in p4 is a "workspace", and one "user" (group of privileges sharing a password) could have many workspaces
although official docs could try to convince you that you need a separate "p4 user" for every person - which you can do if want to spend a lot on P4 licenses πŸ˜‰

winged tiger
#

Does anyone know what the difference between git fusion and helix4git is?

#

Or was git fusion just the old name?

river tinsel
#

git fusion is set of python scripts, translating git commands to perforce

#

helix4git is actually new type of perforce depot

#

(Graph Depot)

#

which works like git

#

while maintaing perforce scalability for large unmergable files

#

but

#

it only works from command line

#

any other perforce client cannot see Graph Depots

winged tiger
#

Hmm we are trying to setup a workflow that allows for coders to use git and artists to use perforce

#

And aren't sure which of those to use

river tinsel
#

in helix4git

#

everybody is essentially using git

#

or p4 command line

winged tiger
#

Oh so artists can't use p4v?

river tinsel
#

the only distinction is that in helix4git you don't really have git server but perforce server posing as git (;

#

no

#

you have to create custom client

#

or let them use any graphical git client

winged tiger
#

Oh argh

river tinsel
#

whatever (;

winged tiger
#

But with git fusion we can work with git and perforce guis?

#

I'm also trying to migrate our existing git repo to perforce with history

river tinsel
#

git fusision

#

is translation layer

#

so in theory yes

#

in practice it gets slower with amount of users/size of repo

#

i will tell you

#

if you already have perforce

#

just use Task Streams

#

it's close enough to git branches

winged tiger
#

What workflow do you guys use for streams? Do you create one for dev/qa/prod and then also a main?

#

And do you create streams for artists or shared with developers?

fallen geyser
#

@winged tiger
stream with game/engine code for programmers
stream with assets source for artists, separate for audio guys with their sources
stream for designers contains only binaries and game content

#

QA actually uses VS and writes automation tests, so QA gets the source code too

winged tiger
#

So you keep your code and content in separate streams?

lavish latch
#

@fallen geyser we did end up distributing the cache and reducing the shader compile time to 0 for the team. I am curious, however, about what you were saying about potentially reducing the compilation overhead by modifying the shaders themselves.

fallen geyser
#

@winged tiger mhm, a single branch for most of the productions (unless doing hacky demo or weekly updates of the game) and streams with workspace mappings excluding parts of repository which given group of users wouldn't ever touch

  • official P4 plugin for VS which automatically checks out code files while you're starting to edit it
    so if you don't need sweetness of git branches all the time, P4 is simply enough for everybody
fallen geyser
#

@lavish latch I'm no artist myself and this should be asked in #graphics room
I don't know your project/assets, so just generally speaking

  • reducing unique materials and replacing them by materials instances (we're not that insane as other engine to use just a single Uber Shader, but also... unreal artists love to create a new shader for everything)
  • reducing number of materials per actor (i.e. if given mesh uses 5 materials, it could be probably reduced to 1 or 2) - and that's also reduces number of draw calls
  • inspecting your shader graphs, probably lot of them can use half or even less instructions to get job done without noticeable visual difference (it's super easy to make this graph huge)
  • checking if you need as many frequently material functions as you have, and Material Parameter Collection - changing something things there can send you to the compilation town
  • trying if new toys like new Material Layers (which doesn't seem to be a dead end this time?) would help in general
lavish latch
#

@fallen geyser thanks I’ll pass this along. πŸ‘

river tinsel
#

@winged tiger what @fallen geyser said + I would recommend using Task Streams for indivudual features especially if they are contained in code

#

these are supposed to be used like git branches

winged tiger
#

Thanks guys πŸ™‚

#

How do I fork in perforce?

#

I need to for our custom ue4 engine

vital sapphire
#

@winged tiger doesn't really do 'forks' but we use streams for this purpose here

neat grotto
#

Yeah, streams is the closest you'll get to forking functionality.

vital sapphire
#

They work pretty well as long as you are aware of their limitations vs git

vital sapphire
#

I am setting up p4d on my webserver. Should/can I use the ssl certs I use for my webserver ssl (provided by letsencrypt) or is using a self signed cert preferable?

#

note that this is going to be a personal server ( i will probably be the sole user) so self signed is fine for my needs. bud id like to do things "right" and I already have certbot set up

#

alternatively I may want to gen new letsencrypt certs for p4 altogether?

carmine walrus
#

sigh, can't even fetch all from UE 4 repo without git getting stuck at 76% while resolving deltas πŸ˜„

dusk dove
#

just gotta wait a bit

#

some deltas are ginormous

fast frigate
#

how does one go about doing code reviews in a p4 workflow?

vital sapphire
#

@fast frigate using 'p4 shelve' is probably the best way to do peer code review

wet comet
river tinsel
#

BEst way for code review if you want to make some setup

#

it make task streams

#

which are auto merged to dev stream upon review

vital sapphire
#

anybody get the error: Mac file format detected: please convert the source file to either DOS or UNIX format when compiling with files from p4?

#

not sure what step i missed

#

(my line endings are set to 'win' on the client)

vital sapphire
#

maybe the wrong char encoding?

pseudo osprey
#

wrong line endings

vital sapphire
#

@pseudo osprey Thanks Stof! I actually ended up figuring this out last night (I had to manually convert the line endings)

frank shale
#

Hey people, was wondering if someone could give me a bit of advice on source control. Whenever another person pulls the UE project branch from our git repo they have to rebuild it because the "plugins are missing or were built on a different engine version" (i assume because the project is a custom engine due to plugins) , and then they get hit with an error saying that there are some .dll files missing. we are both relatively new to SC and so we have the general idea/workflow down but we keep running into this issue. I'm guessing there are certain plugin considerations we have to make that we just aren't... any help would be really appreciated πŸ™‚

#

for reference its a BP project

fallen geyser
#

@frank shale it's not clear to me, are you using custom engine with blueprint project?

#

this kind of error is usually caused by mismatch .modules files - every module has this file and build ID in every single one of them needs to be the same (enabled module with the mismatched build ID will trigger error)

#

it shouldn't happen under vanilla engine, unless somebody would download a plugin compiled for different engine version or didn't submit everything from plugin Binaries folder

old imp
#

Question: When creating a new branch with Github Desktop, it created a new hooks directory and lfs\objects directory in my main game directory. Now those directories show up under changes. Should those directories be committed along with my changes?

frank shale
#

@fallen geyser we are using vanilla engine with three plugins. And using the standard gitignore from ue4. So everything gets commuted and pushed but the error happens on the other end.

fallen geyser
#

@frank shale difficult to say what's wrong then ;)
need to manually check if they have properly updated files: .upluging, what's in Binaries
I'd use remote desktop to compare everything with files on computer where everything works

#

sometimes it's just stupid mistake on ignore definition or conflicted edits

quaint obsidian
#

@old imp you need to update your lfs to 2.10

sand snow
#

I've got a Perforce issue I can't figure out. How do I get Perforce to ignore the Intermediate folder?

sand snow
#

good heavens. nevermind, I was putting the slash in the wrong spot...

old imp
#

@quaint obsidian thanks i want to try that.. is it git lfs update command? I've tried downloading and installing 2.10 but git lfs version is still showing 2.9

quaint obsidian
#

@old imp you have the bundle version of lfs that comes with git for windows, delete the git-lfs exe in the git bin folder

old imp
#

@quaint obsidian i tried doing that, but it still wasnt working for some reason. so i ended up uninstalling git and git-lfs. then reinstalling git (without the lfs option) followed by the git-lfs 2.10 installer. so now git lfs version is showing 2.10, but the hooks/lfs directories are still showing up in git status. do i have to run git lfs install again or another command once it has been updated to version 2.10?

quaint obsidian
#

yeah, you can delete the hooks and lfs dir and rerun git lfs install

#

@old imp

old imp
#

hmm that's odd. It's not showing in Github Desktop anymore which is good since that's what I always use. For some the command-line git status has the hooks/lfs folders listed as green (changes to be committed) even though I have never used command-line git directly, always the Github Desktop GUI. So now it shows me deleting the hooks/lfs folders in red (changes not staged for commit). Hope I didn't screw anything up by running git lfs update because I'm not really sure what that did. @quaint obsidian

#

i never manually added any of those files/directories so im not sure how they appeared under changes to be committed in the first place

#

I guess because the Github Desktop GUI had them checked by default, it added them automatically. So maybe I should have unchecked them in Github Desktop first

quaint obsidian
#

@old imp can you tell me what git status says

#

it's probably still having the files added, since thats the change that was last staged

#

but now the unstaged is to remove it, which will cancel out the previous add

#

you should be able to do git rm hooks

old imp
#

I think that what you are saying sounds correct, since under "Changes to be committed" in green it shows "new file" for each one.
new file: hooks/post-checkout
new file: hooks/post-commit
new file: lfs/objects/....

And then in red under "Changes not staged for commit" in red it shows:
deleted: hooks/post-checkout
deleted: hooks/post-commit
deleted: lfs/object/...

#

So I should run that command git rm hooks

quaint obsidian
#

yeah or maybe git add will work too

#

for both hooks and lfs

old imp
#

@quaint obsidian I ran git rm hooks -r and git rm lfs -r . I don't see any of the directories listed in git status anymore and Github Desktop doesn't show them either. I hope this means the problem is resolved now. Hopefully I didn't screw anything up in the process but I guess time will tell that! Thanks for your help. πŸ‘

hollow badge
#

whats the difference between 4.25 and 4.25 plus

quaint obsidian
#

no one knows atm (and there's no differences between them in the github branches currently). I feel like it would be best to ask in #ue4-general

but I think you should use 4.25 for now

fallen geyser
#

nobody should use 4.25 for now πŸ˜„

#

it's probably quite unstable just after making a branch

quaint obsidian
#

I meant when given a choice between 4.25 and 4.25-plus

hollow badge
#

was just curious as 4.25 is labeled in trello to have improvements to atmospheric sky ( which is blown out in 4.24 ) so yeah

frail path
#

who wanna join voice chat

robust jacinth
#

<rant>
Perforce's UI is just... not great. I really should be able to see some kind of progress/status when syncing hundreds of thousands of files. Rather than just watching a percentage change every few minutes at best. Is it hung? Has Perforce crashed? Who knows.

dusk dove
#

wait you get a percentage?

#

for me it just shows copying <n> files to workspace (parallel sync)... and then nothing else happens until its done

robust jacinth
fallen geyser
#

check the 2nd option there, it will log operation on every single file - I kinda feel "left in the dark" without this logging enabled πŸ˜‰

#

although there's no progress bar on single file progress, "obviously"

#

it the P4 connection would hang, it would show error after timeout passed... so I'm not sure if we have a real issue here πŸ˜‰

robust jacinth
#

I've used that before, but super verbose logging is a poor solution for bad UI/UX.

dusk dove
#

seems like in your case that'd make it dump hundreds of thousands of messages to the log lol

quaint obsidian
#

does p4 write to a log file? in that case you could make a progress UI from the output

cursive cosmos
#

How do I delete a changelist without deleting my entire game's project files

#

because I just wanna be able to save my files again

#

perforce keeps locking them

robust jacinth
#

@cursive cosmos It sounds like you're doing something very unusual as a typical workflow.

#

Why would deleteing a changelist delete your game's project files?

#

You can't delete a changelist that has files checked out - it would make you revert.

#

And if the files are marked for add, then the option to revert should ask you if you also want to delete the file, or simply revert their status from "marked for add".

pulsar orbit
#

Hey all! Moved some files around inside of Unreal, to make things better organized, when I try to submit my changes via perforce, I get an error stating that the file path cannot be found.

I was wondering if anyone here can help me with this. I would greatly appreciate it! πŸ™‚

fallen geyser
#

@pulsar orbit you could have one or more files on the changelist that don't exist anymore, i.e. you "marked for add" some asset, but later deleted it manually or without connection to p4 - and p4 didn't catch up

#

you could try submitting changelist in parts if there are many assets on that list

pulsar orbit
#

@fallen geyser I tried it, but still didn't work.

#

@fallen geyser I did however revert the changes, but still seem to be fine, but in the depot (server end), it's still outdated.

#

Green "O" = folder moved to "3rdParty_Assets"
Red "X" = deleted folder.

fallen geyser
#

if you reverted all changes locally, just try moving assets again and submit it one more time
not worth to investigate it further (I have no clue what happened) if it would work now

#

obviously, you're moving assets in the editor, right?

pulsar orbit
#

Yeah I moved assets in the editor.

#

if you reverted all changes locally, just try moving assets again and submit it one more time
@fallen geyser

The weird thing is, is that the folder structure in the UE editor corresponds to the "workspace" folder structure in P4V.

#

So there's nothing to resubmit.

#

@fallen geyser Should I just "mark for delete" on the depot end? That's the only solution I can think of. Unless anyone else has other ideas.

fallen geyser
#

run Reconcile on the entire content

#

it would find all differences between server depot and your local workspace version

#

there's no such a things "as marking something on the depot end", you're doing everything locally and after commit you'd see changes

fluid goblet
#

Hey I'm curious and wondering if people know, does p4d know about the free "5 users and 20 workspaces" deal, or is it just expected that once the user exceeds that they pay up?

#

Similar to the Unity and Unreal licensing deals?

gentle bay
#

does anyone here use something other than git-lfs for their assets? alongside git of course

#

im getting annoyed with the size blowouts and github yelling at me to buy more storage

quaint obsidian
#

@gentle bay You can use Azure DevOps Repos, it has unlimited storage, including LFS. Private repos have first 5 users free, then $6/user/month.

GitLab has a 10GB storage limit, with no current way to buy extra storage (though, it is being worked on -- https://gitlab.com/gitlab-org/gitlab/issues/5634), and it has free unlimited collaborators for private repos.

BitBucket has up to 5 users free with 1GB Git LFS storage included, and has addons for 100GB Git LFS storage for $10/month. If you go beyond 5 users, you will have to pay $3/user/month, 5GB Git LFS included. BitBucket does not support LFS file locking.

gentle bay
#

Fantastic thanks for the info

north silo
#

can anyone who knows how to use GitHub well for game dev give me some tips on uses branches and things LIKE that to make the workflow smoother?

rotund bobcat
#

what we do is have a master branch, and art branch and development branch, basically on master the idea is to maintain a completely stable build at all times, e.g. at the end of every sprint or whatever
then the art branch is just a branch for artists we use, they're all on the same
and then development is where all the developer's work comes together, we make feature branches of it when working on something and then merge those into development with pull requests

#

we also have an automated system that then compiles binaries every time development is updated and pushes those binaries to the art branch so they're up to date as well

quaint obsidian
north silo
#

oh thats actually really smart

#

thanks guys

#

so then once everything is done on the "Development" branch it would then be merged with the master branch?

chrome edge
#

How does this handle binary merges? (We used git and git-lfs in the past and it was a bit of a mess - lots of broken merges)

#

Unless we did something really wrong ofc πŸ™‚

fallen geyser
#

@chrome edge generally you shouldn't even try to merge binary assets

#

that's why I'm surprised anyone in gamedev is willing to work on multiple branches when project is obviously composed mostly out of binary assets, and in Unreal blueprints and maps are extremely important, but difficult to merge

#

there are exception of course, like development of already published game: early access, game-as-service

#

working on code itself on multiple branches is entirely different tale πŸ˜‰

#

that's entire talk from Jager, for instance they stopped doing items/weapons/things as blueprints - this would be a hell to merge - now this things defined as data table, etc.

autumn geyser
#

shouldn't "git add --all" add all of the files within my repo that aren't on the ignore list?

#

because i for the life of me can't get my source files to be tracked

quaint obsidian
#

@autumn geyser maybe git add . --all? I'm not sure if it'll make a difference but that's what I always do

#

@chrome edge We have locking, so we don't merge binaries

autumn geyser
#

will try

chrome edge
#

Yeah, we swapped to perforce to avoid merge issues. Just wondering that others keep talking about git. Works well for code, not so for uassets.

dusk dove
#

it's because perforce gets ridiculous expensive past those 20 workspaces you get for free

quaint obsidian
#

@chrome edge not sure why it wouldn't be good for uassets, it has locking that we use. that blocks merge issues from happening just like perforce checkout.

chrome edge
#

@quaint obsidian - do you lock with LFS? Or a provider? (I think gitlab has this concept?)

quaint obsidian
#

with LFS

#

it has a locking protocol

#

github, azure and gitlab implement it

#

clientside, files are locked in unreal using the git source control plugin

chrome edge
#

thanks - I didnt realise

#

It handles big projects ok?

quaint obsidian
#

yes

night cloud
#

but my friend can on his other computer

devout quail
#

The changes (shoebox) made are showing up in the master file so I have no idea what the issue is

quaint obsidian
#

@devout quail you had a branch that is being pull requested, and you modified files in that branch that were modified after on master

#

you need to remove those changes from your branch

#

in the future, use locking to prevent it

devout quail
#

"My" branch is the master branch

night cloud
#

turns out AMD is not UE4 friendly, and the drivers sometimes dont make ue4 projects run, We fixed it by disactivating all lighting, pushing it, and later re activating them after pulling from the other side.

autumn geyser
#

I just need to vent. This past week my HDD started dying. "No biggie I have my project stored on github, have several physical backups." Man was I naΓ―ve. For my professional job i use git, but simply getting my project over onto my new HDD has been a living nightmare. I had the project stored on an SSD, but my OS is on an HDD. You would think installing the correct UE4 engine version + plugins on a new HDD would be enough to run that same project from my OS on the new HDD. But no, it hard freezes my pc at 95% every time. Ok....I'll copy it over, NOPE HARD FREEZE! Well I'll try to clone it from my github. Still.....a hard freeze. Last thing i tried was running the cloned repo stored on my new HDD, while operating from my old HDD that is slowly dying, it actually loads it, but is missing so many references that it's not usable. I feel physically sick to my stomach over this. The UE4/Git workflow is a complete joke. I'm sad, angry, frustrated, and just disgusted by the whole thing.

jolly fog
#

So where are we supposed to save our large files such as 3D assests and maps?

sturdy gust
#

@autumn geyser I use github and gitlfs too. I work with 2 computers (desktop and laptop) but I didn’t have that issue. I was able to clone my project onto a different type of drive too. What was the project referencing ?

rotund bobcat
#

how sure are you that it's freezing at 95% and not just compiling shaders for a long time for example

#

you should check your task manager to be sure

quaint obsidian
#

I don't think it's related to git in this case, and more with the HDD unfortunately. I used to use UE4 with an HDD and it was really awful.

#

i think 45% is for compiling shaders, not sure what 95% is.

#

without seeing your log, it will be hard. but keep in mind that it can get stuck on 95% for even 10 hours

fallen geyser
#

@autumn geyser oh, it would be stuck for long if the new OS drive is still HDD... SSD should be only used for development, HDD performance is basically useless with software like UE4 editor
even new consoles will have SSD as standard

#

@night cloud

  • it also happens with NVidia to encounter issue with drivers, it's nothing unusual in GPU driver world, it's just rare on Windows
  • for future, you callstack (Crash Reporter window) doesn't contain symbols - just showing module names, not details: class, line of code, function name. You would get that by installing debugging symbols through launcher - it's the optional download.
#

with the symbols installed, the big chance we'd see "GPU hang" there and immediately suggested that's GPU driver issuue πŸ˜‰

dire frost
#

How does source control with a team of 2 work? Me team mate lives on the other side of the world, is this do able with perforce?

fallen geyser
#

@dire frost yes, it is
you can get perforce in a cloud - people recommend Digital Ocean for instance
not sure if would get CDN for P4 repository there...
although P4 got services like proxy servers to solve issues with connecting remote servers - so while you work it would be faster than directly connecting to original server (faster locking files, querying current state of file on P4, etc.)

vital sapphire
#

@dire frost subversion is also an option. it is a bit simpler to set up and administer than perforce IME

#

i think that dreamhost offers hosted svn instances

#

oh, maybe not. it looks like it may have been deprecated

dire frost
#

Aright thanks, and I looked into cloud, stumbled upon assembla but that was a little out of our league with their 44.5$/user/month

dusk dove
#

don't do assembla

#

p4d is very efficient so you can just run it off a $5 vps for a small number of users

#

only issue will be getting enough storage, depending if this is one of those projects with 500GB art source files..

autumn geyser
#

@fallen geyser the project and editor are on the ssd my os is on the hdd

#

Running the editor from my new hdd/os freezes the pc.

fallen geyser
#

@autumn geyser UE stores cache for all the assets on C partition, buried in Users folder πŸ˜‰

#

still, even OS on HDD will slow you down, especially if virtual memory is in use

autumn geyser
#

Slow is cool

#

Freezing is not

fallen geyser
#

πŸ˜„

#

yeah, but I have no idea how slow would opening project with HDD, haven't used HDD for Unreal like... never πŸ˜‰

autumn geyser
#

As even in my 8 year old to shins drive performance was more than acceptable.

#

Toshiba*

fallen geyser
#

sell your bed, buy SSD πŸ˜„

autumn geyser
#

Read post

#

Have multiple

#

Does unreal store asset caches in c drive if the editor is not on the c drive?

fallen geyser
#

try using SSD for everything, verify "acceptable" status πŸ˜‰

#

yes

autumn geyser
#

That’s a yikes

#

Probably the issue as the old hdd is on c

fallen geyser
#

C:\Users\UserName\AppData\Local\UnrealEngine

#

if you have 100 GB free on that SSD and gonna run out of space soon, try to move everything to this SSD
and try then πŸ˜‰

#

I'd rather starve then run OS on HDD again πŸ˜‰

autumn geyser
#

I’d rather just accept that everything is capped by the cables and not that big of a difference

fallen geyser
#

que?

autumn geyser
#

I’ll double check after work to see if the cache storing is true.

#

Then move my new hdd to that partition if that’s the case.

simple bloom
#

is there a size limit on azure devops repos?

quaint obsidian
quaint obsidian
#

@simple bloom no

simple bloom
#

Ok questions number 2: can I store lfs stuff on one repo and non LFS stuff on another?

pseudo osprey
#

using two repos? it works but it's a pain to keep them well in sync, especially when you want to do updates on both at the same time

neat grotto
#

Adding to the above statement, it's not necessary to store LFS-controlled assets in a separate repo since the assets themselves are stored outside the repo anyways.

simple bloom
#

Well I like using gituhb apps and stuff but storage cost money. So I want to store code in GitHub and lfs stuff in azure devops

rotund bobcat
#

I think you can still use the github desktop app with repos on azure though

robust jacinth
#

Friendly reminder: For the love of gods, please put your engine and project directories side-by-side.

#

Or you will have a very bad time with various Epic created tools relating to Perforce.

robust jacinth
#

Also, anyone have experience getting Jenkins p4 triggers to work?

#

I seem to be hitting the endpoint using curl without error, but nothing hapens...

burnt shadow
#

I do, but I can't remember any of it

#

once a trigger works I'll never change it

#

I just remember that its all bullshit and perforce has shit tools for greping changelist nonsense

molten marsh
#

Im in the same boat with triggers @burnt shadow lol

#

It works, DONT TOUCH IT

blissful apex
#

If you go to the trigger in a browser does it work? Also are you requiring authentication in Jenkins?

robust jacinth
#

It does work, via the browser.

#

As in the manual trigger from the Jenkins page.

#

I wrote a Python script that's using PyCurl to send the Post data, but nothing happens.

#

I even went into Jenkins and enabled ALL logging for the P4 plugin - it has lines for when I do the manual trigger, but nothing for my Python script's run.

#

I get back a response code of 200, which is "OK". I know it's getting to Jenkins because it was asking for a crumb, which I got working, and then I switched to using an API Token.

#

I tried making the payload for the post request in a few different formats and nothing different seems to happen regardless, so I've begun to wonder if it's the JSON data not being quite right somehow.

blissful apex
#

Hmm, that sounds familiar as well from when I was setting it up... but I can't think what might be wrong. We're using requests in python to do the request/provide the auth.

fallen geyser
robust jacinth
#

Yeah, that can also work. I was trying to do the proper, built-in thing. I ended up resorting to having it poll every 15 minutes instead of having P4 trigger the build. :/

#

Both of these are alternative solutions and viable, as is the SCM polling.

fallen geyser
#

but polling isn't instant reaction πŸ˜‰

robust jacinth
#

No, but it shouldn't be too bad for now.

fallen geyser
#

ok πŸ™‚

robust jacinth
#

I am not a back end engineer or web dev, by any means, so debugging a plugin of a web app is... 😬

#

I think I'm getting a response code of 200 even if the JSON is malformed.

burnt shadow
#

Something something are your headers correct?

robust jacinth
#

Not much to it, my Python code looks like so:

fallen geyser
#

anyway, proper P4 trigger doesn't work since Jenkins uses P4Java implementation - can't remember details, but this failed on me
so I'm using curl solution

#

no Python needed

robust jacinth
#
    changeTriggerCurl = pycurl.Curl()
    changeTriggerCurl.setopt(pycurl.USERPWD, jenkinsUsername + ":" + jenkinsAPIToken)
    changeTriggerCurl.setopt(pycurl.URL, jenkinsURL + jenkinsP4ChangeTriggerEndPoint)
    changeTriggerCurl.setopt(pycurl.HTTPHEADER, ["Content-type:application/json"])

    changeTriggerCurl.setopt(pycurl.POST, 1)

    payload = {'change': int(changeList), 'p4port': "\"" + p4Port + "\""}
    jsonPayload = json.dumps(payload)
    changeTriggerCurl.setopt(pycurl.POSTFIELDS, jsonPayload)

    changeTriggerCurl.perform()

    print(changeTriggerCurl.getinfo(pycurl.RESPONSE_CODE))

    changeTriggerCurl.close()```
#

@fallen geyser I don't follow. I'm using curl. It's just not actually triggering anything in Jenkins.

#

I happen to be invoking it from Python, but that's neither here nor there.

#

I know it's hitting the end point because it'll make me fail if I prove the wrong API Token

#

Or if I supply the right password, it'll demand a crumb, and I'm able to get that working, but that's old deprecated stuff compared to API tokens.

fallen geyser
#

why python?
i simply got .bat as described on Stack Overflow answer

#

C:\curl-7.60.0-win64-mingw\bin\curl.exe -u userID:APIToken JenkinsIP/job/TestJob/build?token=buildCode

#

and bat called from the trigger set on p4 server

robust jacinth
#

Because Batch files are unmaintainable nightmares, compared to Python or Bash.

#

I mean, even Microsoft created PowerShell rather than keep using Batch. :X

fallen geyser
#

yeah, I know, you can use anything to call that Jenkins link, basically

robust jacinth
#

Like PyCurl. πŸ™‚

#

And yes, that's doable too.

#

I was hoping to keep things extra secure by only exposing the necessary end point.

fallen geyser
#

I see πŸ™‚

robust jacinth
#

Arbitrary execution of builds from remote machines is... a little more worrisome.

hexed crown
#

is perforce actually better than git? is there a free host for perforce repos? perforce.com doesn't seem to mention perforce repos, instead it has something called Helix, which works with git/svn/mercurial... and i feel like i'm just misunderstanding something.

#

unless helix IS the front end client for perforce, and they just don't ever say that? like it's expected you already know it or something? lol

dusk dove
#

perforce is the name of the company

#

the version control is called helix core

#

they also have a product called helix cloud that is unrelated to helix core and hosts other version control systems, but not their own (why ...?)

hexed crown
#

every time i hear someone talk about source control (on unreal streams, etc), i've never heard the word "helix" lol

#

so is p4 the command line client for helix?

dusk dove
#

they used to call the software perforce aswell, then tried to rebrand it, but that didn't work, because now everyone uses the old name

#

yes

hexed crown
#

ok, that all makes sense, thanks

#

is there a standard host for it, like github/gitlabs?

dusk dove
#

no

hexed crown
#

or does everyone just run their own server on like a droplet or whatever?

dusk dove
#

the standard is to get a tiny server from linode or similar and run it there

hexed crown
#

ok cool

#

i think that's enough info for me to just google anything else i want to know lol

dusk dove
#

make sure you follow their own guide for package based install

#

not the ancient allar guide

#

(if you end up installing it)

hexed crown
#

so is it actually better than git? or am i better just sticking with what i know and moving on?

dusk dove
#

for binary files, which is gonna be most of an unreal project, yes

#

(unless your team is too big to make use of the free option, in which case you're looking at 40/month/user, making it way too expensive to be viable)

hexed crown
#

my team of one is not that big

pseudo osprey
#

for a team of one, using free git + lfs hosts might be more than enough

neat grotto
#

I use GitHub for my solo projects and it’s perfectly fine.

pseudo osprey
#

from what I see, getting a free Azure Teams repo is the best even πŸ˜›

#

cause they have kind of unlimited storage

neat grotto
#

I’ve heard! I just prefer GitHub’s UX and ecosystem. πŸ™‚

pseudo osprey
#

yeah but if you are a solo dev really, the UX/ecosystem feels a little meaningless πŸ˜›

#

as long as my git pull/push commands still work, I'm all set \o/

jolly fog
#

for a solo project, free git + lfs is more than enough yeah

#

you definitely want git + lfs for sure

noble knoll
#

@jolly fog its not

#

github on LFS on any unreal project will inmediately go over the limit

#

because if 3 people download it, BAM, over the github limit

#

github LFS limits are so strict and so expensive, that perforce will actually be cheaper, and thats actually BUYING perforce and renting an amazon server to run it

#

cheapest is to not even run perforce. Grab a SVN server on amazon or any other cloud provider, and set it up. Works quite easy and SVN itself is free, so it only costs you the 10-20 euros/month for the server itself

#

something i actually recomend to small studios or solo devs is to grab a Raspberry pi and guetto it as a server. One-time cost of 50 euros or something and you basically forget about it

jolly fog
#

i'm not using github

pseudo osprey
#

that's why I said to use Microsoft Azure Teams

quaint obsidian
#

@noble knoll that repo doesn't have a .gitattributes file?

noble knoll
#

@quaint obsidian could be github hiding it?

quaint obsidian
#

my repo still has it

jolly fog
#

I wonder... is there a way to use or access UnrealGameSync Tool without compiling the whole engine? (just using the official Unreal Released verrions, in this case 4.24)

#

@here

smoky trench
#

@jolly fog It's a standalone project so you definitely can

jolly fog
#

Hi @smoky trench , when I have try it, at the time to open the project says something like "you don't have this version of the engine in perforce". So, right now I'm compiling my own version of the engine and uploading it to perforce. The question that I asked was based on this, If I would be able to avoid this step (which I'm currently doing already)

robust jacinth
#

I spent some time setting up UGS last week.

#

It seems very much set up to work assuming things are like Epic's internal conventions:
Your project's root directory is side-by-side with the Engine directory and in a Perforce stream.

#

If any part of that isn't true, it misbehaves somewhat.

burnt shadow
#

somewhat is an understatement

#

also, found out today, if a file name has a # sign in it

#

ugs will fail syncing

#

perforce supports such filenames

#

but ugs' calls to perforce don't escape names properly so p4 interprets the # has a revision lookup command

robust jacinth
#

Woops.

#

I could see that having never come up internally.

hot musk
#

whats best source control you guys have used for LFS?

rotund bobcat
#

what do you mean?

#

LFS is for git, so there's not really options

#

or do you mean which host

hushed spoke
#

I got this depot MagicCode, where my project is. Another user needs acces to it but he can't see MagicCode depot. Do you know how to resolve this?

#

@burnt shadow if I can ask you for help, Sir

fallen geyser
#

@hushed spoke check if this has proper access in p4admin

#

you probably see everything as admin

hushed spoke
#

he has the same acces as other team members who see MagicCode

fallen geyser
#

is he on the same stream? could select something different in his workspace

hushed spoke
#

@fallen geyser

fallen geyser
#

kinda like this?

hushed spoke
#

yes but he can't click anything there