#source-control

1 messages ยท Page 52 of 1

neat grotto
#

Not for a team. ๐Ÿ˜‰

honest dagger
#

even for a team.. same way linux is run.

neat grotto
#

And I wouldn't recommend working entirely with a local copy anyways.

#

There should be a remote everyone is pushing to.

honest dagger
#

github allows 3 private projects hosted per user at least.. if that's the model you like more.

neat grotto
#

GitHub has unlimited free private repos now.

honest dagger
#

oh they changed to unlimited

#

right.

neat grotto
#

You have to purchase storage for Git LFS, though.

honest dagger
#

Personally, I just push everything to my nas

#

but at work we do something totally different with more than 100k people working there.

neat grotto
#

Wow. Quite a few people!

honest dagger
#

git is wrapped up in quite a few custom layers there.

#

code review is exceedingly important with that many people too

#

clearly not all of those people are software engineers

scenic ember
#

@rotund bobcat PlasticSCM hosts major repositories for massive companies like Nike. They've come out and said already they've no intention on stopping support for the UE4 Source Control. Anyone telling you otherwise because "they got bought by Unity" is just fear-mongering. They're not about to give up such huge contracts with not-Unity companies.

neat grotto
#

Yeah, I can't imagine they're going to simply drop Unreal support any time soon. It might get less attention over the years, but I don't see it disappearing in the foreseeable future.

simple lodge
#

@neat grotto its cheaper to buy perpetuals if your project is much more than 2yrs long tho

#

Its been a while but they *used to be $895 1st year and then like $325/yr thereafter

neat grotto
#

What do you mean by perpetuals? Does Perforce have perpetual license options?

simple lodge
#

It did, im not sure now tbh

neat grotto
#

What's the difference? Are those prices you mentioned above still per user?

simple lodge
#

Aye

neat grotto
#

And if you're paying per year, how is that perpetual?

simple lodge
#

Its optional for support (and tbh not required because pefrce rarely brings new features)

#

and $325 is cheaper than $600/yr

neat grotto
#

Usually "perpetual license" means you pay once.

simple lodge
#

Its "perpetual" + optional support (or it was), but

#

still waaay cheaper than $600/yr every year in perpetuity

neat grotto
#

Regardless, I've never been presented with these alternate payment options. Huh.

#

Even when negotiating directly with Perforce sales over the phone, I've never been offered these options for myself or my clients. ๐Ÿ˜ฆ

#

I've only ever been offered one option: ~$600/year/user.

simple lodge
#

well it used to be a thing

#

Im not 100% sure if it still is

#

It maybe "enterprise" only, or only available if you ask

#

I think they got bought out recently-ish right? Maybe the new owners canned it

#

I havent really dealt with them since 2016/2017 (for the costs/license acquisition) - Ive only been actually doing integrations/setup etc

gentle pond
#

Does anybody have experience working on a team with people using different IDEs -- Rider and VS to be precise?
Our VS users keep getting "Missing Modules" error because they don't have RiderLink. My understanding is that people should be able to use different IDEs but I haven't been able to find a solution to this specific issue. How do we go about this?

quaint obsidian
#

create a placeholder plugin in your plugins source control

#

either in engine distribution or project repo

#

and have it be a lower version than Rider's

#

but same name

#

then, instruct ppl to install to that location

#

it will overwrite for them

#

but VS people will have an empty plugin

scenic ember
#

I'm having a strange issue where I have to reconnect to my source control every time I open the editor. Has anyone else experienced anything similar?

simple lodge
#

From the drop down?

scenic ember
#

Yeah, on the toolbar. It recognizes that I need to check out assets that I'm editing, but for some reason keeps asking me to reconnect to my source control.

#

It does so successfully, but it's the first I've seen it.

gentle pond
#

@quaint obsidian this is probably gonna be a dumb question, but what do you mean by "placeholder plugin" and "install to that location"?
I went and dug out RiderLink from my engine distribution and put it in [Project Root]/Plugins/Developer/RiderLink so this is what that directory looks like now (see screenshot)...

quaint obsidian
#

make one with like no modules

#

or 1 module which is practically empty

#

and no resources

haughty ember
#

@neat grotto @simple lodge I have a 10-seat perpetual license for Perforce. I only paid support the first year (sadly it's required). Did not elect to pay support the second year ๐Ÿ™‚

$9K 1st year. vs $5400 sub/yr

After this second year, I will be in net

#

Support is something like $185/user/yr

simple lodge
#

Oh thats cheaper

#

nvm ๐Ÿ˜›

haughty ember
#

So when I saw that bill a few months back

#

I was like wtf, then I remembered support and then me and them got into it really good

simple lodge
#

But yea thought they offered it, I dont deal with that part of negotiations anymore so ๐Ÿ™‚

haughty ember
#

About "server IP" changes being part of support

simple lodge
#

if you can actually get through to Sven then you can get useful help

#

(if he still works there)

haughty ember
#

Aye

#

I got a contact now that knows me thankfully

simple lodge
#

Does perforce UI still suck btw?

haughty ember
#

He's got me covered if I ever need a simple 5-minute server IP change, without having to backpay support

#

^ this is the problem with going out of support

#

You "are required" to backpay support costs from all the years you missed out, AND then pay ANOTHER YEAR'S WORTH as a "reactivation fee"

simple lodge
#

Their pricing is horribly indie unfriendly

haughty ember
#

It's a pretty ridiculous system there

#

But big companies are obviously paying them some serious $$$, so it's a system that won't change until big folks start complaining...

#

So, us little ones are whatever ๐Ÿ™‚

simple lodge
#

Yup, from talking to a lot of them the impression i get is if you are smaller than 500 users then f off we dont give a rats backside

#

(the company I was at was very large and could get direct line, but once I started working with smaller ones I noticed it a lot)

#

*the 500 is probably an exaggeration (to make a point), I have no idea what the true number is

haughty ember
#

Yeah, they initially didn't want to start working with me unless I paid for 20 users... but I was like... "brah, I don't have 20 users to give licenses to"

#

^ this will be a good problem to have though once I actually make more than $50K/mo for payroll

simple lodge
#

indeedy

#

Oh noes I can afford to employ 25 staff, #firstworldproblems

stuck arch
#

I have a custom plugin which is added as a submodule in my git repo. After cloning it in the local repo, the plugin folder and files is not visible in the Project VS solution directory although it is visible in the Windows folder.
How can I fix this?

woven sluice
#

@haughty ember I remember you going through that server IP thing some time ago... so on the "free 5 user license" obviously being "free" you can just install a server anywhere and use it... but you're saying if I get a 6th user one day, then are the paid licenses locked in and keyed to a specific host IP somehow? I'm just wondering how this could even be possible. it sounds absolutely bumfuckingretarded if it's actually set up this way. I wonder if it could be circumvented (DNS, etc)

simple lodge
#

Yup they get keyed to a host IP

#

Its a pain in the ass

#

I think they even get keyed to a mac address

#

but its been a few years so I might be wrong on that one

#

I mean the IP bind in itself isnt a bad thing, but charging thousands of dollars to change it is assinine

woven sluice
#

First time I've ever seen software attempt to do something like this. Like normally a server shouldn't be affected by its ip, it just runs and handles requests. grumpycat

simple lodge
#

I mean I sell software thats IP locked, its fine

#

But changes can be done via your customer portal in 5 seconds at no cost

haughty ember
#

I meant to do the IP Server change before support was up on an address I could redirect later as needed, but totally forgot about it ( I think I was going through the Kickstarter at this time and was distracted) and anyway, like I said, my contact said they would do it for free if I ever needed it.

simple lodge
#

The fact you have to pay normally is the bit that grates tho

#

devs gotta eat sure, but there are ways to make money that isnt predatory

woven sluice
#

If only our lord savior Tim S would decide to use a few of his spare millions to create a magical fairly priced excellent working vcs to compete with unity owning plastic rainbowbin

molten marsh
#

Or he could buy Perforce and give it a better pricing tier for indies.

woven sluice
#

this would also be acceptable

river tinsel
#

idk how much perforce is worth ;p

#

last thing I found is parent company wanted to sell perforce to 2 billion

#

that's to much for epic I guess : D

#

I would rather see them creating their own solution on top of git

minor silo
#

Hey guys, anyone succeed in making multi GPU work in Unreal ? We are a immersive event studio Working with quadro rtx8000 cards and facing frame rate issues with our ray traced scenes. Any help with improvement of performance would be amazing!

simple lodge
#

Get a 3090?

#

AFAIK epic said they wont support multigpu, and NV just killed SLI so probably you need more powerful hardware or better optimised meshes / scenes

woven sluice
#
  1. why are you crossposting the same question in multiple channels
  2. why are you even asking this question in #source-control
  3. why did you waste tens of thousands of dollars buying useless CAD gpus for a video game application
simple lodge
#

oof

hidden ibex
#

Can someone tell me a good workflow for Perforce? Me and 2 friends are working remote.
Basically,

  1. I change file (say, blueprint X), push it
  2. friend 1 also happens to be working on blueprint X
  3. Does my friend have to pull changes for X now, and then continue? Or what?
#

How do we resolve discrepancies like these

rotund bobcat
#

blueprints can't be merged

#

if you're both working on the same one, one of you is gonna get fucked

hidden ibex
#

yeah that's what's happening rn xD

rotund bobcat
#

only "fix" you can do is lock the file while you're working on it

spring ridge
#

how do you use perforce???

runic summit
#

There are multiple series of Perforce tutorials on youtube....I'd like to get more comfortable using it, can anyone recommend a particular video or series?

spring ridge
#

my brain turns to mush when i try to use it

woven sluice
#

@hidden ibex you should have perforce set up to automatically enforce locking of uasset files. learn about setting up file types. Google P4 typemap and also right click on a file in p4v and go into "change file type", study the dialog to learn more.

hidden ibex
#

We already have it setup @woven sluice . We can't save files that are already being edited

#

It's just...a sad way to do things

woven sluice
#

Indeed

scenic ember
#

I need to double-check, but I believe PlasticSCM actually does Blueprint diffs

rotund bobcat
#

how would it do that

#

those are binary files

#

dno how you could diff that

#

except in editor

scenic ember
#

Oh, it does visual diffing.

#

So you can browse both versions of the Blueprint

#

and make the changes you need manually to merge them

#

And yeah, it's a UE4 Plugin in-editor

woven sluice
#

That isn't part of plastic, it's part of UE. I always forget about it because it sucks if you have to use it, but yeah if you get in a bind it might save you

rotund bobcat
#

it saved me today actually

#

after a 2 day journey of tracking down a bug

#

fun times

ornate willow
#

It sure does cost an arm and a leg to get server hosting... Really demoralizing when your trying to get off the ground. It's against comcast TOS to run one from home net. I understand the TOS is there so that companies aren't doing large operations off residential pipelines, but I have roomates and can't risk the slightest chance of getting the account terminated. Does anyone have any recommendations on something in the 10-20tb range? Plastic seemed decent but doesn't look like it goes over 100g, would even be willing to try svn or git or something else,

woven sluice
#

Someone's going to say it: What on earth do you need 10TB for if you're not a professional business?

scenic ember
#

I was going to ask the same. My entire day job's company doesn't use over 6, and they've been in business for 25 years

woven sluice
#

i mean, if you need it there should be options. I use gandi.net and they allow me to create a single disk up to 2 TB for $142 USD/mo, unlimited bandwidth. which should be fairly cheap for a team of say 25-50 people to share

ornate willow
#

If you must know, we have massive cad plants with massive files, trying to get sites like wet iron ore processing plants into unreal. We are trying to show the value of unreal engine for renderings and training simulations, to pitch for funding from the company. They don't understand why they would need unreal over navisworks, so we only have approval for using their CAD data, not their servers for this purpose. But to collaborate with eachother and get to proof of concept we need a high capacity server that wont fuck us too hard with "dynamic pricing". Thank you for recommending gandi.net, thats much better then others i've seen, I didn't see that one in my searches

haughty ember
#

How do we resolve discrepancies like these
@hidden ibex The whole point (well at least one the greatest points) of Perforce (and most other VCS that allow locking) is to not have these things happen. So, the answer to your question is to remember to check it out before working on it so no one else can.

simple lodge
#

@ornate willow rent a dedibox and that should be fine

ornate willow
#

@simple lodge Wow, thank you, I had absolutely no clue about these, this looks very promising

woven sluice
#

oof. I would not value anyone trying to convert industrial Navisworks models into UE4 useable anythings. ๐Ÿ˜„

ornate willow
#

Yes, especially when some stuff comes from autodesk, and some comes from bentley software, it's an absolute nightmare at every single step ๐Ÿ˜„ but we have made somewhat promising progress here and there

simple lodge
#

@ornate willow just make sure you take backups

#

and properly lock down ssh etc

#

Its "full root" so you break it you fix it, and you are responsible for it

runic summit
#

I can't afford to pay for remote server hosting for perforce, but I don't want to lose all of my revisions if my machine blows up. Is there a good way to host a Depot on a Dropbox account because I do have one of those...

#

And how could Comcast know you were running a server? Yeah you might have one giant file push when you initially set up but you're not going to be it pulling down 10 terabytes a day I think on a regular basis

ornate willow
#

Yeah I was starting to come that conclusion about full root, I've set up p4d on an aws ec2 before but I'm no network engineer, only super basic knowledge

About comcast knowing about running a server, they probably wouldn't, but since I live with other people it just wouldn't be fair if I caused the account to get terminated. I saw in the news recently that comcast shut down service to a few hundred people who were "illegally" connected, sounds to me like they are/will be getting stricter in the future so I'd rather not risk it, as tempted as I am...

runic summit
#

@woven sluice I can't afford serving hosting, I setup my own but I want to protect my revisions, can I put the depot on a dropbox folder?

simple lodge
#

You can run a p4 locally and sync the repo to dropbox probably

#

But if you are self hosting p4 for a small project it really isnt that expensive

#

can probably do something very functional for 10-20 bucks a month

woven sluice
#

making me wonder what dropbox's pricing is ๐Ÿ˜› yeah, I was going to say the same thing earlier if you had to. host version control locally, set up whatever manual or automatic backups you can to make yourself sleep soundly at night

simple lodge
#

hes probably looking at the official p4 cloud hosting thats like $50/usr/10gbs or whatever bs it is

woven sluice
#

oh yeah you're probably right. yeah I host a 50 GB server for about $15 USD/month, it works great for a tiny team. @runic summit

simple lodge
#

Side note, I just managed to improve my p4 ci hook for ma git based system

#

I need to get a plastic repo up and write some connector logic

hidden ibex
#

@haughty ember I get that. I just think it's an oddly primitive way to handle it.

Like I'm sure AAA companies mostly write c++, so diffing will be easy for files. And generally assets are worked on by one person, so all they have to do is place a lock and no one touches them

In our case 3 of us are meddling with BPs, sometimes we edit the same game mode or whatever, and that becomes a hassle. Yes, we do lock, but the other person has no idea it is locked until he tries saving the file

woven sluice
#

What about the big blue check mark on the asset... Or no big blue checkmark? worry

#

@hidden ibex

sturdy lake
#

@languid escarp have you made any changes to the engine in your master branch, as far as you know?

languid escarp
#

so that particular "thing" is a directory where I just keep a copy of master in case I want to make some PRs

#

there should be nothing important there

sturdy lake
#

okay - that's cool

#

we can reset your master then

#

So, in your master branch locally, do:
git reset --soft 41616ead1a7364d42fdd4641396258504c9e857c
This will change your master branch to be the latest commit that you had in Epic's

languid escarp
#

mhm

sturdy lake
#

You're currently ~15000 commits behind Epic's master

#

Is that deliberate, or have you just not updated?

languid escarp
#

forgot to update I think

sturdy lake
#

okay

languid escarp
#
    1. git fetch upstream
    2. git checkout master
    3. git merge upstream/master
    4. Push in SourceTree
``` need this, right?
sturdy lake
#

Then you can do: git merge upstream/master

#

yes

languid escarp
#

cool, got notes not always sure which one to use :P

sturdy lake
#

Because you've put your master branch back on Epic's own commit, the merge should be a fast-forward one, so it shouldn't create a new merge commit

#

If you do get a commit that says "merge remote tracking branch upstream/master", then something's not quite worked

#

Did you delete the branch you already had? Or do you want to repurpose it?

languid escarp
#

it's wanting me to merge

sturdy lake
#

If you didn't delete it, you can cherry-pick the one commit from it

#

really? :/

languid escarp
#

whatever I'll just push it

#

see what happens

sturdy lake
#

If you push it I'll take a look on GH

languid escarp
#

pushed it

sturdy lake
#

You did the reset --soft, right?

languid escarp
#

yes, before the git fetch upstream

sturdy lake
#

weird

#

Do you have any staged or unstaged changes that you want to keep?

languid escarp
#

none

sturdy lake
#

Doing a hard reset might be the cleanest then

#

So, from your master branch, do this:
git reset --hard upstream/master

#

git push --force

#

After doing those two, github shouldn't say that you're ahead of EpicGames:master any more

languid escarp
#

done

sturdy lake
#

reset --hard will lose any local changes

#

There you go

#

now it's clean

#

And you can branch and make your change and PR

#

Sorry for the run-around a bit there!

#

Got there in the end

languid escarp
#

ok so I'll delete the old feature branch now and make a new one

sturdy lake
#

Or, don't delete it yet

languid escarp
#

done did

sturdy lake
#

Okay

#

Other option would be to create a new one with a slightly different name and then do git cherry-pick <commitId>

#

which would copy just that commit over to your new branch

languid escarp
#

if I deleted it I can make a new one w/ the exact same name right?

#

hm can you see the new branch? MemoryOps_DefaultConstructItems_Memzero

sturdy lake
#

let me check

languid escarp
#

alright it worked

sturdy lake
#

and yes to your previous question

languid escarp
sturdy lake
#

๐Ÿ‘

languid escarp
#

awesome, thank you!

sturdy lake
#

you're welcome ๐Ÿ™‚

#

I hate git too sometimes, but it has its uses

#

I would just be really careful to not do any of your own commits into master (that may have happened a while ago which is why the updates were merges)

#

And keep an eye out for merge commits when you update

languid escarp
#

afaik they're the cheapest right now - the trick is they only give you HDD, not SSD but who cares when it comes to a source control server

#

also, they're in europe but I'm getting decent up/down speeds from the south

runic summit
#

@languid escarp Thanks for the recommendation and thanks @woven sluice for the advice as well. Right now I'm using an old gaming laptop to act as a server, it works fine but again, I don't like having it in an old machine just in case the hard drive fails. I was trying to do this for essentially free.

Is there anyway to have p4 just say, "hey, once a day, copy any new/modified files to this other folder, a folder which dropbox syncs with?"

sturdy lake
#

what OS is the server running?

#

I'm guessing Windows.
There's a python module called P4Python which allows Perforce commands to be run from Python

#

You could have a python script that runs once a day that does this for you (I'm not sure how best to run regular automated tasks on Windows)

runic summit
#

@languid escarp Thanks for the recommendation and thanks @woven sluice for the advice as well. Right now I'm using an old gaming laptop to act as a server, it works fine but again, I don't like having it in an old machine just in case the hard drive fails. I was trying to do this for essentially free.

Is there anyway to have p4 just say, "hey, once a day, copy any new/modified files to this other folder, a folder which dropbox syncs with?"

#

Or is there a best/correct practice to engage this type of backup process?

#

I was going to start fresh, so my plan was :
1 - Back up entire project on WORK computer, then copy it to SERVER computer
2. Setup SERVER to also sync to dropbox
3. Delete current project on WORK (backup is just there in case server crashs before synced)
4. Open P4 Client on WORK computer and acquire all project files
5. Resume normal workflow

Note - I'll be doing an initial commit of EVERYTHING....I know it isn't necessarily needed but It's only done basically once and I've had issues of assets getting screwed up somehow (and not detecting it until I'm many revisions in). Some of these were core engine files from Epic screwing up and giving materials instances thousands of unique material slotnames...version control may not help me in this instance but still.

How does this sound?

runic summit
#

I'm also connected on the same network at home but when I do this intial giant download, should I just target the local ip instead of the dynamic ddns I normally use when i'm working away from home? (acecssing home server for my work comp)

runic summit
#

Why is Perforce so unintuitive - I'm trying to make a new depot on my server laptop - but it doesn't want to grab any files - I thought depots housed all the files and workspaces pulled and pushed to them

#

I want my server laptop on P4admin to take THIS folder as the source of files for the DEPOT -

#

but when I do that, the depot is EMPTY

#

doesn't do jack

#

Even more frustrating is that my current depot, that I will turn into an archive when the new one is setup, my current one works fine -

#

Look at my new depot settings, I've tried changing the path to different things but nothing makes a difference

#

You can see, the old/current one has a list of the files and everything but not the new one

#

I thought you setup everything in the depot FIRST and then pulled what you needed or added to from your Workspaces

woven sluice
#

did you actually add any files to the new depot?

#

i.e. set up a workspace, create your first changelist and submit?

#

is there any particular reason why you want to take hte same project and move it into a new depot?

#

oh and... i don't really think you want to put your depot in a dropbox folder alone like that, without the rest of your server's journal and other files I think it would be a "dud" version of your depot

#

you could copy your server instance into dropbox (backup your whole VCS instance) or you could periodically copy your workspace into dropbox (master project version only backup)

runic summit
#

It's in a subfolder of the dropbox that is synced so it should be good

#

so, that's where I was confused, because a youtube tutorial showed someone accessing files from a depot to create a new workspace

#

you are describing it as uploading files TO a depot FROM a workspace INITIALLY @woven sluice

#

It's not hte same project, I upgrade engine versions, when I'm done with this I'll change the old one to an archive VCS

#

My problem was both my server and work computer were syncing to dropbox

#

I should only have the server do that and just backup files from my work to the source control server

woven sluice
#

yeah for this to work at all you would definitely need to keep it as one-way as possible, there might still be some issues with Perforce having some files locked - it has a built in system you might be able to figure out that "rotates" in-use files like the journal for performing backups normally

#

anyway, yes, the only way for a human like me or you to interface with a depot is via a workspace

#

(aside from going into the admin panel and deleting or modifying the depot in other ways)

#

also, upgrading engine versions isn't a good reason for creating a new depot IMO

#

quite poor actually. unless this is very major revision of your project in general like a total re-do, and you sort of literally want to throw out old garbage

runic summit
#

Well, right now I made a copy of the project when I updated to 4.25, so that new 4.25 folder is in any version control

woven sluice
#

i.e. if you intend to delete the archive depot after a few months to save space on old stuff that is garbage, this might be a good reason to do what you're doing

runic summit
#

The project files I'll keep but I wouldn't probably need the revisions

#

Plus, I'm obviously not as comfortable or even competent at setting up depots and working with perforce so I want to learn a bit more about it and the fact that I can't even setup a new depot tells me I need to stop and figure this out before moving forward

#

So, the remote server is setup fine and I'm good with port forward and using a dynamic ddns to access remotely when not on the same network

#

But i"m confused about the depot being empty initially, why can't I point it to a folder and say, "THESE are the files I want in the depot, copy them over and have THAT be the depo

#

This is what is probably confusing me, the server root folder exactly - because it says the path name LiveSim_Main/1 but where do I see that in windows explorer? @woven sluice

woven sluice
#

because "the only way for a human like me or you to interface with a depot is via a workspace"

runic summit
#

I guess I didn't realize you meant all time, I thought the intiial depot setup you could

woven sluice
#

you should never look in that folder in windows explorer

#

like never ever

#

for me, that folder is on a linux server 7,400 km away from me

#

I have gone into it literally 0 times in ~5 years

#

you always create a Depot for a project, and then you set up a Workspace to work with the Depot

#

then you put files into the Workspace, mark them for add, and submit/commit/push them to the Depot

runic summit
#

So, from the top (and THANK YOU for walking me through this) 1 - make depot, specify folder to use to store revisions (in this case, it's a one-way sync to a dropbox folder only accessed by the depot itself)

#
  1. Depot made on p4 Server machine
#
  1. On Work Computer, make a new workspace, targeting the new depot, which has no files
#

I tried to do that before but It wouldn't let me add them, I'll see if I can do it again

woven sluice
#

think of the depot folder as simply specifying where you want perforce to store its working data - it's customizable only in case you want to use a different drive or something (or in this case, attempt to use Dropbox... which I'm still unsure of if it will all work without any extra steps, but worth a try)

#

yeah the first steps are kinda weird, IIRC P4V should give you a prompt or something saying the depot is empty and asking if you want to populate it with some files, you don't have to use that, you should be able to just copy files in from Windows, then scan your workspace for changes via the "Reconcile Offline Work" command, that should mark files for add

runic summit
#

Well, why does it even need to be told to use dropbox, if I put files in a folder, and dropbox is marked to "sync" that folder, then if Perforce happens to add it's own files to that synced folder, dropbox will sync them

#

I'm mentioning that in case there's some obvious giant hole in my understanding

ivory hinge
#

Hi everyone! I wanted to do a commit but had to pull some changes first. So what I've done is stash my current changes (I'm using Github Desktop). I've done the pull And when I want to restore the stash, I get this error:

#

Any possible solution?

woven sluice
#

@runic summit the reason why I said "attempt to use Dropbox" is because I'm just not sure if you'll run into headaches due to file access issues. I mentioned it briefly earlier, Perforce will keep certain files locked for write access 24/7

haughty ember
#

Hi everyone! I wanted to do a commit but had to pull some changes first. So what I've done is stash my current changes (I'm using Github Desktop). I've done the pull And when I want to restore the stash, I get this error:
@ivory hinge Nope, you can't merge binary assets like Blueprints or Maps. This is why I tell people on my team never to shelve on perforce (especially so overnight) unless they absolutely know no one is going to touch that stuff

#

And AFAIK Shelving is very similar to Stashing on Git (I don't use Git much anymore)

ivory hinge
#

Ok so, there is no way to access or recover this files? ๐Ÿ˜•

haughty ember
#

Lock first. Submit WIP when you're done for the day unless it's going to break something and you know no one is going to need it

#

@ivory hinge git is a bit messier when it comes to this workflow

#

I am assuming that anything stashed got overwritten by your statement

#

And if so, this is the same reason I don't particularly like shelving in Perforce either. at least when it comes to binary assets in UE4, which it has a crapton

#

But AFAIK also, only LFS has File Locking and I'm not sure how good it is now, but when I tried it out years ago, it was trash

#

@runic summit too much text to read, but I just want to say, do not put that perforce depot on Dropbox

#

Have no idea why you want to sync with dropbox the depot, it sounds super strange and I feel like it's a recipe for disaster if you somehow sync incorrectly and your depots get corrupted

runic summit
#

@haughty ember I'm a bit confused - I have my workspace on my non-dropbox folder - and it gets sent to the perforce server on another of my machines solely used as a perforce server - it's depot happens to be a folder that is sync TO dropbox but there is NO other computer syncing to that folder

#

I just don't have any money to pay for another server hosting but I want to be able to backup my revisions on the current project

#

So if my work computer dies, I can get a new machine, make new workspace on it, and get the latest revision from the server

#

And if my server dies, I can still get the journal and other revision files from the dropbox

#

Again, NOTHING but a SINGLE machine is ever syncing to that folder, there won't be any other way

woven sluice
#

but by definition, dropbox isn't one-way communication (as you just demonstrated). this feels a bit like walking in a minefield where you know where the mines are - even though you'll probably make it out the other side, you're still walking in a minefield

#

if you want to use dropbox for backup purposes, use another process to copy your server into dropbox once a day or something

runic summit
#

@woven sluice Can you point me in the right direction to investigate how to use another process to copy something? I appreciate the advice and am happy to follow it

woven sluice
#

you could use SyncbackSE, or find some other tool probably

#

just make sure you inspect the result and see if you need to "rotate" the perforce databse or journal or whatever it's called - its working files which it keeps locked for constant write access

#

this is getting into mildly complicated perforce admin duties but should still be doable by mortal man. perforce have some articles about how to set up server backups which should discuss it

runic summit
#

Thanks for the recommendation, now I can look into it more

dark idol
#

hey all I am wondering if this is common, I am using subversion and I migrated some content into the project. when going to submit to source control, i get these warnings

#

this wasnt happening before with any previous commits

dark idol
#

also wondering if theres an easy way with SVN to revert to a previous build... just found my answer

primal pelican
#

is there a way how to compile ue4 so i dont get this ? PackageVersion 513, MaxExpected 517 : LicenseePackageVersion 3, MaxExpected 0 ? i edit that Version.h file but i guess its not the right way to do it

woven sluice
river tinsel
#

need more context

#

but

#

if you have issues with assets

#

i suggest using resave packages commandlet

#

the engine version in version.h is changed for a reason, and you shouldn't touch it

terse light
#

guys
does git work wwith blueprints?

sturdy lake
#

Yes

#

Although I would recommend using git-lfs

woven sluice
#

if you're asking does git allow merging blueprint code, then no. they are binary files. @terse light

#

UE comes with a diff tool you can use to try to help perform manual merges

terse light
#

thats exactly what im asking

#

we want to merge our blueprint code in the game jam

woven sluice
#

ok. no. you shouldn't try to do that

terse light
#

oh, is there any way we can tho

woven sluice
#

the person attempting to merge them has to do it manually... make a copy of your blueprint, pull the other person's work down, then inspect them and manually attempt to combine them

cosmic solstice
#

Then no, just prepare backups of everyones works, and projects... possibly multiple times, and then take turns adding it...
Or just get someone to send over there projects through a download link and it do it manually

woven sluice
#

try to find UE's diff tool and figure out how it works. I've never used it, we use perforce and locking and just avoid this ๐Ÿ˜ฆ

cosmic solstice
#

Next time, when doing git , just take turns... and keep backups.
Do work on a backup project, then when ready, pick a day, and add it to the main project.

#

Or even learn git properly, and use the branches

terse light
#

But HoJo is saying that blueprints r binary files and it wont work with git

woven sluice
#

how would branching help. you need locking, not branching (apparently you can do locking somehow in GIT but I'm not an expert)

#

oh I think I just misunderstood what you meant ๐Ÿ˜„

#

you meant for performing the merge not for avoiding merging in the first place lol

terse light
#

is perforce free?

woven sluice
#

for very small teams, yes

terse light
#

HelixCore or Helix4Git

woven sluice
#

I've never used their GIT integration, can't say

#

their products' naming is confusing and retarded and their pricing when your team grows is retarded but the software is great IMO (people either really love it or really hate it)

terse light
#

SSo

#

I just want to use it for a game jam

#

What would be the right fit for me

woven sluice
#

it might take you a long ass time to really learn how to use perforce

terse light
#

oh

#

like even pushing and merging

woven sluice
#

well, it's not something you'll set up properly in a day or two. if you have a month to casually set it up and experiment with it and you wanted to learn it anyway, I would recommend it, but if this gamejam is starting like this weekend, just use GIT

#

be very communicative about who is working on what monkaS

terse light
#

ye, i guess ill just go with gitt

#

but as you said, with blueprints i have to do diffing

#

which im still confused a bitt about lol

#

because u said blueprints are binary right, so you cant push them manually through git i guess?

woven sluice
#

people are telling you to make sure you set up git lfs

terse light
#

ok, ill do that thenn

#

ok ty guys!

neat grotto
#

@terse light You can diff Blueprints, you just can't really merge them.

terse light
#

So I have to use git lfs to merge them right

neat grotto
#

You can't merge Unreal assets.

#

But yes, I do highly recommend using Git LFS. It will make things a lot easier, and you can use file locking if you're working with a team.

#

The one that comes with Unreal is outdated and doesn't have support for file locking.

terse light
#

Ok sure thing, thanks a lot!

sturdy lake
#

So I have to use git lfs to merge them right
@terse light no - git lfs is just a way of storing larger binary fines in git

#

So I have to use git lfs to merge them right
@terse light no - git lfs is just a way of storing larger binary fines in git

terse light
#

Yes i understand

runic summit
#

Can I use my gitignore file from way back when for my p4ignore? are they the same syntax?

dusk dove
#

a lot of the syntax is the same

#

but p4ignore doesn't have inverted rules and a bunch of other stuff

daring lagoon
#

@jolly fog Okay not to keep piling on the cpp channel. So.. I've had cases where my stash / commits / pulls / etc couldn't overwrite local copies of files and had to call git gc directly to clean it up. Sometimes it manually asking me which version of the referenced file to keep.

#

I agree you shouldn't call it, but sometimes you have to, or just being okay with copy and pasting code to a txt file and doing a really hard git reset --Hard origin/branch to kill my local

daring lagoon
#

I mean. I don't have these issues now, but I do run into them in my day job from time to time with whatever my team is doing to their git repos.

#

mostly like.. i can't commit it says refs aren't there or they conflic

fair birch
#

hey guys i am using github desktop to create a repo for my UE4 project i am using LFS and after cloning the repo i cannot open the ue4 project file

fair birch
#

can someone pleaseee help me ugh ๐Ÿ˜ฆ so depressing

#

please help me to the dude who was typing

woven sluice
#

if you want anyone to help you with anything ever, put more than 2 seconds of effort into your question

#

no error info or anything

fair birch
#

its very simple i just uploaded my repo with git lfs

#

when i clone it i cant open the project

#

burn in hell

woven sluice
#

was that directed at me? lol

molten marsh
#

@fair birch Read the #old-rules, this is the second time ive asked you to do so, please be respectful and professional, especially when asking for help.

fair birch
#

wooot wooot finally got it to work yaaaay

chrome lagoon
#

hmm if i set up a git on my own vps and set it up to use LFS, i just have to change the remote and push right? (i was using github)

restive quartz
#

Hey everyone I am really struggling and I could use some help.

#

I am working part time with another dev team and I have perforce working perfectly fine with their setup. I am now trying to get perforce working locally for just a personal project (no need to back up to the cloud or anything... just need it for versioning control), but for the life of me I can't get it to work. Here's what I have done so far:

#

I created a personal server in the helix client in the directory of my unreal project, I added all the files in the workspace, and submitted the new files so I can see them all in the workspace. However, when I go to connect the source control in UE4, I get the error that I can't connect. Additionally, running something simple like p4 info in the command line gives me the error that I can't connect to localhost:1666.

#

Any ideas? I have been really struggling with this for some time.

simple lodge
#

hmm if i set up a git on my own vps and set it up to use LFS, i just have to change the remote and push right? (i was using github)
@chrome lagoon more or less yes

#

Any ideas? I have been really struggling with this for some time.
@restive quartz Did you init

restive quartz
#

I figured it all out thanks

south ingot
#

Git LFS doesn't seem to comprehend that a uasset file was moved from one directory to another, it just counts the file as deleted and notices a "new" file in another directory

simple lodge
#

@south ingot sounds like intended behaviour. It will check the hash and symlink to the same file if its the same.

quaint obsidian
#

So there's an issue with that

#

uassets have their path baked into the file

#

so the hash changes

#

therefore, git doesn't do rename detection on the file

#

im not sure if its possible to do so

simple lodge
#

Oh thats true

#

good catch @quaint obsidian

hidden ibex
#

Anyone know why my editor keeps crashing when I "Submit to Source Control" from the Perforce integration?

#

It just says ue4 has triggered a breakpoint

simple lodge
#

did you make sure stuff is checked out properly?

runic summit
#

do you want the solution file and uproject in version control? I just noticed mine weren't

daring lagoon
#

mine is ignored

#

so when you download the repo for the first time you need to generate

woven sluice
#

uproject file needs to be in. sln should not be.

trail scroll
#

any idea what is happening?

#

if i check with tortoise no changes were made

#

also, im with the latest commit

#

Im trying to sync from the root folder of the content brower

#

And now it crashed because of out of memory (on a 32gb memory pc without anything running)

#

Does Sync do anything else other than sync with source control? If so, why?

simple lodge
#

because of the way the engine accesses stuff

dusk dove
#

it tries to reload the assets which has never actually worked

#

always close editor and sync externally

trail scroll
#

I already use external syncing but it fail on merging uassets, was expecting that UE could merge them but so far it has been a terrible experience. It either stays there forever (on Updating assets) or just crashes

dusk dove
#

you can not merge assets

#

use locks

trail scroll
#

locks doesn't really fix the problem as it only blocks people from committing a non-updated version of the file. If PersonA and PersonB are (unaware) working on the same file even with locks somebody's work will be lost

dusk dove
#

locks prevent you from working on a file someone else has locked

trail scroll
#

UE's lock? as far as i remember svn's lock doesnt work like that

#

for example, if you lock a cpp file with svn, it's not like VS won't let you work on it

dusk dove
#

I have no idea about svn, with perforce it works exactly as expected

trail scroll
#

Yeah, maybe other source controls do but i did mention SVN at the beginning tho

dusk dove
#

guess the answer changes to "use perforce" then br_dab_left

trail scroll
#

yeah, sadly that;s not gonna happen on our company. not my call at least

runic summit
#

I don't feel I've done anything to deserve Perforce being such a jackass - WHY can't I remove this file from my workspace. I change the files to read-only but everytime P4V opens up, it sets it to write only -

#

You can see from the depot I have obliterated it and "Saved" is no longer present - what am I missing here?

tough gale
#

Hi guys, we're currently having some trouble with Perforce, our artist tried to "Get latest" version of the project but he's not up to date with the code I wrote and submitted. Wouldn't it be related to p4ignore?

pulsar parcel
#

i don't know why you think this is a perforce issue @runic summit

#

it's not versioned

woven sluice
#

@runic summit why are you trying to set saved folder to read-only?

Why does it bother you that the folder exists within your project folder? Unreal needs this folder?

woven sluice
#

I think what you're missing is that files can exist within your workspace without being controlled by perforce

marsh saddle
#

I've been getting inconsistent results using source control with UE4 and GitHub. Very often, I get an error like this which prompts me to delete my files and re-clone the repository in order to fix the errors. Is there any practical way to fix this?

blazing quail
#

@marsh saddle maybe you should close your unreal editor before pull?

runic summit
#

I think what you're missing is that files can exist within your workspace without being controlled by perforce
@woven sluice I am not sure why the folder keeps having read-only status applied to it, I'm having an issue where it keeps rebuilding shaders

runic summit
#

EVERY SINGLE TIME I start up the editor, (even if it was shut down properly) I get this - I'm convinced perforce is blocking the saving of these compiled shaders but I have not been able to rectify it.

marsh saddle
#

@marsh saddle maybe you should close your unreal editor before pull?
@blazing quail from the last sentence of my post: "Is there any **practical **way to fix this?"

woven sluice
#

@runic summit folders can't have statuses applied. Have you checked actual files within to see if they are in fact being set to read only? Have you checked that you don't have a single warning or error about any shaders in your output log on startup?

runic summit
#

@woven sluice What am I looking for in the output log? There is ALOT, some yellow, some red, I need to address them but what are the key things in regards to read-only status I should look for?

woven sluice
#

Material related?

#

Anything material related

#

Any errors can cause what you're experiencing

#

(Not perforce)

runic summit
#

Probably @woven sluice , but I'm also not having the editor save in between sessions in terms of the layout, like where the tabs of various blueprint actors that are opened up for editing are located, while I know position of where are you looking at on the blueprint itself is saved on the blueprint, the layout for the editor seems to not save between sessions

#

And while I obliterated those files from the depot, they seem to still read-only - i wasn't aware unreal set those statuses itself

#

except maybe for some input settings

woven sluice
#

Well, if you wanted to rule out perforce, delete everything in your project folder and then run Get Revision on the root folder with "force get latest" checked on. Nuke and redownload the whole project

#

(Obviously commit any work in progress first)

runic summit
#

I'll try out those material things and then hone in on the layout not saving

#

Just as a question for making sure I understand how perforce works, if I go to a folder in my depot and obliterate it, will that allow those assets to be written by my client, or do I have to manually do that myself?

#

@woven sluice

woven sluice
#

I'm actually not sure what the behavior will be if you obliterate it while the files still exist on the client - I think I've always done a delete submit first and then later on when doing clean up I went and obliterated them

#

which is kind of why I'm thinking you might want to try to "reboot" your workspace

#

could even just make a new workspace and see if the same oddities show up in it too

terse light
#

Guys what is this error and how can i fix it

quick urchin
#

What is one the most reliable applications for source control?

sturdy lake
#

Reliable in what sense?

#

Of the two main ones that people use with UE (perforce and git), both have their pros and cons

#

Neither is perfect, and both can behave in unexpected ways if you arenโ€™t an expert at using them

simple lodge
#

Guys what is this error and how can i fix it
@terse light Exacly what is says, you have a modified file, do a commit and then pull down the updated version. (possibly duplicate so you can manually merge it)

terse light
#

Oh ok, thanks

winter parcel
#

hi! when this perfroce bug can happen?

#

only one machine of 20 has this strange bug. internet connection is stable

pastel wren
#

@quick urchin We use perforce at our place and its pretty smooth. But like Hugh says, you need to get familiar with it.

grave slate
#

Perforce Question: Say an artist adds some files across multiple folders in their workspace through the DCC or Explorer (windows). Is there a way in Perforce to either autoadd, or, show a list of files that are NOT in the depot that exist in the workspace WITHOUT having to drill down through the workspace folders (you can select a filter to show files NOT in the depot, but this requires drilling down to the folder)?

woven sluice
#

try running Reconcile Offline Work command on any folder (such as the root folder of the workspace)

grave slate
#

Hey @woven sluice I was truthfully thinking that may be an option, but I was not exactly keen on its intended use and expected outcome.

#

I will try that with a test file and see what happens and report back here.

south terrace
#

Does it matter what version of the engine I use (publishing/creators) if I want to sell my project on steam eventually. I notice two links on the ue4 webpage one for publishers and one for creators. But what is the difference in the installer? If so, what about the source version at git?

south terrace
#

Holy batman why is the file size so massive when building from source O_O

somber river
#

Heyo. I'm using TortoiseSVN and am getting the lovely ol: Cleanup failed to process...The system cannot find the path specified" bit.

Not the first time I've had this and the only way I've been able to resolve it in the past is to blow away my entire directory and resync. Not really an option right now.

I have the file that it's missing and think it's a problem with Unreal as the file in question is a duplicated FX particle.

Anyone know a way to just ignore the duplicated new file? I don't really need it (but do need a bunch of other files I have checked out).

median hawk
#

When commit files, do I need to include the raw texture files or just their uassets?

sturdy lake
#

It's sensible to commit both

#

So that you have the raw texture files if you want to make changes later

#

for the project, though, only the uasset is critical

sullen lance
#

im currently using perforce and when dll files are marked +w they do not actually push to the server at all even when modified, why is this and can i change it?

grim fractal
#

@sullen lance are you using a p4ignore file? It may be that is not allowing DLL files to be pushed up to the stream.

sullen lance
#

i guess i should have been more clear, its not pushing changes, if i manually submit them then everyone else gets the updates, and there is no ignore file set

grim fractal
#

Sorry I meant submit, not push... Anyway, just to get a better idea. You intend to have the DLLs in Perforce. Everyone can have them, but unless they have the +w file type attribute set, it means the files are locked for other developers.
And you are attempting to fix that with the +w filetype attribute, and Perforce is not allowing you to submit that change?

sullen lance
#

its kind of like that, so yea the +w filetype is not propagating the change across for some reason unless i manually check the dlls out and submit them

#

i want to avoid everyone who isnt touching code to not have to worry about building a solution just to edit an art asset

woven sluice
#

well, to be frank, +w isn't some magic flag that takes care of things for you. there aren't any magic flags like this. something has to detect the file change, put it into a changelist, and submit it. right now that thing is you

#

if you want to automate it you'll have to set up a CI system

sullen lance
#

ah ok cool, thank u

sullen lance
#

has anyone built and used the unreal game sync (UGS) application?

grim fractal
#

Yes. You need a CI system like Jenkins or TeamCity to build and archive the editor binary then submit to Perforce.

sullen lance
#

i have jenkins, but im having some issues test building UGS. do i have to provide all the .png files in the resources file as it gives be a build error, or are they provided somewhere

grim fractal
#

They would normally be located at Engine\Source\Programs\UnrealGameSync\UnrealGameSync\Resources but looking at the GitHub source they don't appear to be there. I'll need to check it the Setup.bat downloads them.

sullen lance
#

i'll run it real quick and see if they appear

grim fractal
#

If it doesn't work you may need to find out more on UE AnswerHub

sullen lance
#

ah cool thats what i was missing

neat grotto
#

I don't. I usually write documentation in something like Notion or Google Docs.

sturdy lake
#

Google Docs is good for that

#

My packaging script grabs the latest docs from Google Docs, downloads it as PDF, and puts that into the release branch in git

prisma kindle
#

so uhhhh

#

what the hell is up with github? i'm setting up a new repo

#

and i'm getting straight up weird shit

#

just... what

#

did github go completely fucking insane?

simple lodge
#

Did you add the files to push?

#

or are you trying to crosspush an existing repo

prisma kindle
#

an existing repo

#

turned out i needed atleast 1 commit, didn't realize that doesn't come default with github

#

in gitlab you dont need one

noble knoll
#

@prisma kindle they removed "master" branch

#

couse racism or some dumb shit

#

its now "main"

prisma kindle
#

well i know that, but i was getting some really, REALLY weird errors

noble knoll
#

thats why the error is complaining about master branch not existing

prisma kindle
#

turned out that unlike gitlab, you need to have atleast 1 commit

#

in the repo

#

otherwise it doesnt work

#

and yeah, fuck main, a whole lot of addo about nothing

#

it's not like a lot all of software that relies on git hasn't had "master" hardcoded into it as the default branch... in the past what

#

almost 30 years at this point?

#

genius

sleek prawn
#

Hey, how do you manage a unreal project with git in order to be able to compile it? Everytime when i try to pull it and build it it fails on a other machine... has someone tipps doing this?

loud girder
#

you may need to provide more context and move over to the Packaging channel.

But source-control typically doesnt contain the generated project files, i.e. the 'intermediate and saved directories', Id make sure you generate these files after pulling and prior to packaging

robust bluff
#

When using perforce, what is best practices for branching different versions of the game? Do you just branch the entire project folder?

woven sluice
#

Different versions?

rustic igloo
#

Which is better to use, perforce or source tree?

sturdy lake
#

sourcetree is a UI for git, rather than the underlying system

#

what's your use case?

rustic igloo
#

@sturdy lake New to source control but have recently learned it is important. A few people that I have been learning with are trying to decide on a/the best source control to use.

sturdy lake
#

What kind of project are you working on?

#

Is it mainly code or mainly content?

rustic igloo
#

Small BP project and both

sturdy lake
#

Also, how many of you are there, and how technically proficient are you?

rustic igloo
#

3 -5 and I would say above average. If I don't know I will eventually figure it out.

sturdy lake
#

Perforce is only free up to 5 users

#

For what youโ€™re doing, perforce would probably be technically the best. You need your own server if youโ€™re running the free one though

#

Perforce is better for content as you can lock files

rustic igloo
#

I'm trying to learn to setup my own server right now.

sturdy lake
#

There are cloud providers but they arenโ€™t cheap

#

As soon as you want 6 users, youโ€™ll need to pay for all 6, not just the extra 1

rustic igloo
#

What is the price at 6+

#

found it

sturdy lake
#

Itโ€™s $420 per user per year

rustic igloo
simple lodge
#

he was talking about perforce

#

git doesnt have the same licensing costs

rustic igloo
#

that was for pricing for helix teamhub

simple lodge
#

thats the git perforce host?

rustic igloo
#

Oh, thanks. Didn't know

simple lodge
#

it basically allows you to connect git and perforce iirc

#

but @woven sluice probably knows for sure

rustic igloo
#

I'm basically brand new to source control so. I'm aimlessly wondering around to figure it out.

sturdy lake
#

Perforce as a company offers both git (teamhub) and what everyone tends to call Peforce, which is actually Helix Core

simple lodge
#

Fair does, its been a while since I did much perforce things

rustic igloo
#

What do you use now @simple lodge

simple lodge
#

most of my clients use git

uncut laurel
#

I started source control with SVN and then was forced over to GIT, git is "better" just cause its more widely adapted imho.

outer kiln
#

does anyone know about how much space as a percentage of project, does Source control take up ?

willow pine
#

does anyone know about how much space as a percentage of project, does Source control take up ?
@outer kiln What do you mean by that exactly? the .git directory?

outer kiln
#

never used it before, wondering b4 using, do I have enough ROOM

willow pine
#

@outer kiln Assuming you use git, it really depends. If you use it with remote site, you don't need to keep much of the history local, so it should reduce size.
Personally my project size is 30gb. My .git directory is 13gb. And it includes the entire history.

outer kiln
#

not bad at all, OK TY very much ;))

simple lodge
#

does anyone know about how much space as a percentage of project, does Source control take up ?
@outer kiln
it depends how much history you keep

high turret
#

trying to install from source, but the GenerateProjectFiles.bat -2019 tells me visual studio isnt installed but its freshly installed and working fine

#

what is the issue?

sturdy lake
#

Is MSBuild installed?

high turret
#

realized that was the issue ๐Ÿ˜„

#

so all compiled and up and running now

#

with heaps of fun issues that wasnt presented in 4.25.1 for me ๐Ÿ˜›

sturdy lake
#

glad you got it working

high turret
#

me too, kind of ๐Ÿ˜›

#

made me realize I dont remembet shit how to import my cad-files ๐Ÿ˜„

#

guess its like riding a bike, just gonna remember again ๐Ÿ˜„

rustic igloo
#

Is anyone familiar with hosting a helix server for a small team?

runic summit
#

how do I KNOW if perforce is flagging a directory in my project file as read only or not????

woven sluice
#

perforce doesn't do anything to directories

#

directories don't even have read-only flags in windows AFAIK

outer kiln
#

when installing git for windows, it offers recommended alternatives for VM, but on choosing them 'next' is greyed out, wth ? ๐Ÿ˜‰

#

and yes I'm running setup as admin

#

lol nvm I guess only if I tell it not to create start menu does it work for the alternatives .

onyx scroll
#

Hello everyone!

I use Perforce for my UE4 project. Most of the time, Perforce does check-out any saved files, but I'm noticing that it occasionally does not, leading to mis-matched files between my teammates. Is there any setting or way that will force Perforce to check-out every changed file?

woven sluice
#

Perforce does not run any background monitoring... Run "reconcile offline work" whenever you think you might need to (e.g. Before submitting a batch of work for the day) @onyx scroll

minor tulip
#

Hi y'all, do you submit compiled C++ binaries to source control? I'm trying to figure out a nice way to collaborate with my artist friends and work on cpp stuff without disrupting them

river tinsel
#

no

woven sluice
#

yes

#

but carefully ๐Ÿ˜„

#

I probably wouldn't if we used GIT though... infinite file history and all that

minor tulip
#

I see, we use Perforce so should be good but still I wonder if it would be too much friction to ask them to recompile ๐Ÿ˜„

rustic igloo
#

Hello, could anyone that uses perforce send me in the right direction to learn how to get/download a project that is in the depot?

woven sluice
#

the article has a few knowledge gaps but I'm busier than a jehovas witness in a door store lately so no time to finish it ๐Ÿ˜ฉ

minor tulip
#

hahah thank you @woven sluice, I think I'll definitely do something like that for our next game. Bookmarked your article. I'm a bit sick of Jenkins from work so might look for something simpler. I've set up a server on Azure for perforce and it's been working well so far. The setup is done with Terraform and a provisioning shell script https://github.com/vladinator1000/vyatr-azure-tf

rustic igloo
#

I tried to read that but I'm not sure I understand. I put the project onto a new depot. How does someone else download the project from the depot?

woven sluice
rustic igloo
#

Creating a workspace doesn't transfer any files from the depot to your computer. The workspace and its view merely define the mapping that controls the relationship between the depot and your workspace when files are transferred.
To learn more about how to set up the mappings that define your workspace, see the documentation and the online help for your Perforce application.

tame crown
#

Hey all, can anyone recommend a good starting point for Vultr packages to look at for Perforce hosting?

For example, should I only be looking at the "Cloud Computing" options or are there other viable options? I am very inexperienced with this topic. ๐Ÿ˜ฌ

#

Or...on that same topic...If anyone suggests any other VPS options (digital ocean, etc.) I'd be happy to hear!

minor tulip
#

@tame crown doesn't really matter what you pick, they're all similarly priced, I went with Azure but Digital Ocean are just as good

merry verge
#

seconding that it doesn't really matter. I run a perforce server for a small project just fine on a 2GB linode, though storage for the server is on a separate volume (makes expansion and backups way easier).

rustic igloo
#

@woven sluice so the simple answer is all he needs to do is right click on the depot and get latest revision and it will download the project on his side?

tame crown
#

Thanks @minor tulip and @merry verge ! Appreciated

tame crown
#

One more question -- Not too experienced with Linux but down to learn if necessary. Is there a great advantage to setting up a Linux-based VPS over Windows or should I just go with Windows since I'm already familiar?

minor tulip
#

Linux is much cheaper @tame crown

tame crown
#

I forgot to update here, but I found that out pretty quickly ๐Ÿ˜„

#

So, Linux it is!!

#

Went with Ubuntu

gentle bay
#

anyone here use some kind of git/binaries elsewhere setup?

#

im fine not having version control for binaries, or at least be able to selectively do it (for blueprints), but keeping the entire project on github gets out of control quickly

sturdy lake
#

I use git lfs for binaries

#

(I know that's not entirely answering your question, but it's kind of elsewhere)

still obsidian
#

Is it safe to commit Blueprints and other Unreal Engine assets with the editor open? That is, can the editor do hidden background disk writes that may cause invalid/broken files to be committed?

summer terrace
#

Commit yes, pull no.

fair birch
#

how can i connect to source control on my mac with UE4?

languid escarp
#

improved linking times for me by an order of magnitude, from 14 seconds to 1.4 seconds

sturdy lake
#

You mentioned that you disable incremental linking on editor builds. How come?

jaunty hornet
#

Does anyone have issues with running Perforce Server on a local VM? I've been doing that to get familiarise myself with Perforce but I keep losing connection

#

Think I might just start up a DigitalOcean VM instead rather than mess around with network intricacies and VMs

jaunty hornet
#

Ok that worked. And wow you can actually diff blueprints and their graphs. ๐Ÿ˜ฎ

lament ember
#

There's an annoying bug in UE4 VCS. If you save one map over existing it will mark existing one for deletion.
Any way to bypass that?

fair birch
#

hey guys i am trying to set up Subversion control using a Mac for UE4 with xcode 11
@fair birch can someone help me with this

#

i used brew install svn and bew install subversion

#

still not working

sturdy lake
#

Probably a path issue

#

can you type svn from a terminal and have it find it?

fair birch
#

hey thanks im going to try now

fair birch
#

ok so i am able to connect via command prompt

#

followed this guide

#

its at the bottom but in the editor says i cannot connect

willow pine
#

Anyone here unig perforce and can help? I moved some files outside of perforce and I don't understand how to submit it now. Perfoce seems to make my life hell.

merry verge
#

You'll have to be more specific than that... what do you mean you don't understand how to submit it?

willow pine
#

@merry verge
I don't know how to be more specific.
when I add new files I right click on them in the P4V Client and click "Mark for Add".
However I moved a file so I marked the moved file, but the old file still seems to exist. I tried to click on the item in the depot and "mark for delete", but it then complained the file doesn't exist locally ><

#

now both the old and the new files exist on the Depot, while locally only the new files exist, and I have no idea how to remove the old files

merry verge
#

Use reconcile offline work on that file

#

it should pick up that you deleted it

#

(if you're using p4v, right click and find "reconcile offline work")

willow pine
#

mm it seems to pick up a lot of files even though they're inside the .p4ignore.txt file, everything. something is wrong there too ><

merry verge
#

have you set the P4IGNORE environment variable

willow pine
#

no but I used p4 set command previously for P4USER and such. I should of used env variables there too?

#

@merry verge Seems like it's marking files that are identical. I clicked 'ok' to add them anyway, and now I have a lot of files that haven't changed. Clicked on one and on 'diff', and it says there is no different and they're identical.
I have to say - git is awesome, perforce really sucks ><

woven sluice
#

perforce is just complex

#

it's hard to follow what you're doing because you might not know exactly what you're looking at yet

willow pine
#

git can be complex, for advanced usages. perforce is complex for no reason, you get nothing in exchange for that complexity

#

Why would it lock my local files? I don't get it.

woven sluice
#

well, you get probably the fastest VCS in existence, but maybe that's all ๐Ÿ˜„

#

any chance you can take a screenshot of your files in P4V? might make it easier to get help

#

workspace view and changelist

willow pine
#

well, you get probably the fastest VCS in existence, but maybe that's all ๐Ÿ˜„
@woven sluice it's A LOT slower than git. A LOT.

woven sluice
#

I mean you can believe that... if you think so, then why are you using it? ยฏ_(ใƒ„)_/ยฏ

willow pine
#

I think I sort of got it now actually. Recreated the workspace, checked out everything again, then checked out again so I can actually build files because it locks everything, opened the editor and removed the unneeded files, then reconcile.

#

I mean you can believe that... if you think so, then why are you using it? ยฏ_(ใƒ„)_/ยฏ
@woven sluice Working with someone else and he's an artist and he's used it. Easier for me to get used to another program, even if it's really bad.

#

I know in general Perforce suppose to have some extra features for UE4, although I haven't seem them yet, but so far the trouble it's making.. I don't think it's worth it

woven sluice
#

I abandoned GIT a long time ago because I saw how much better Perforce was -- but that was like 6 years ago ๐Ÿ˜„ I think GIT is at least useable now, seems to be lots of people who are very happy with it

#

anyway, if you have more issues, take some screenshots of your files and changelist and it'll be a lot easier to explain what you're looking at

willow pine
#

I used git for a lot of time, around 10 years I would say. Even the old versions were better than this

#

anyway, if you have more issues, take some screenshots of your files and changelist and it'll be a lot easier to explain what you're looking at
@woven sluice But cool, thx. Is there a way to work with cli btw rather than the UI?

woven sluice
#

nah, ~10 years ago GIT was utter trash for gamedev

#

yeah you can just open a command prompt

willow pine
#

oh I don't know about gamedev, talking about in general.

woven sluice
#

GIT has always been A+++ for coding

willow pine
#

for gamedev I used it for only the past 3 years or so

#

GIT has always been A+++ for coding
@woven sluice I don't see the extra features perforce is giving for non-source files?

#

yeah you can just open a command prompt
@woven sluice what's the command / command family to use it in CLI? Should I have the app if I installed the UI client or do I need to install something separately ?

woven sluice
#

you just type P4 and whatever commands you want to run. if you really want to go hardmore and use command line only, you can start to learn it by seeing what commands P4V is running in its log window

willow pine
#

oh yeah I've seen those, didn't know p4 was an actual exe though, cool

woven sluice
#

the biggest problem with P4 is that their documentation is really stupidly fragmented... every couple years it seems they release a new major version and redo the documentation entirely, and sometimes they miss important bits of info so you end up stumbling upon articles from 2014, 2016, 2018... to learn about some feature facepalm

#

actually the biggest-biggest problem is pricing for medium sized indie teams but ... stopping myself before I rage

willow pine
#

yeah I heard about the pricing. It's the reason why I never tried it tbh. The guy I'm working with got it anyway so ๐Ÿคทโ€โ™‚๏ธ

#

@woven sluice Anyway it's late here, I'm going to sleep. And thanks for the help!

woven sluice
#

cheers

mystic trout
#

Hello people, I got a weird error after the editor crashed and restarted. Wondering if anyone knows what is going on.

#

I'm using perforce, and my login info got replaced by this:

#

Is this caused by a plug-in or any asset that I imported?

woven sluice
#

Sounds like someone committed the saved folder, oops @mystic trout

coarse heart
#

I'm setting up a DO perforce server today. Are there any gotchas in the configuration or easy-to-make mistakes?

#

I'm just using the allar's blog tutorial, plus the official unreal youtube channel one

dusk dove
#

yeah

#

the easy-to-make mistake is using allar's ancient blog post

neat grotto
#

Agreed. Allar's blog post is great, but it's very outdated. The package-based installation is pretty straight-forward (at least much more than the old installation process was).

burnt shadow
#

yeah fuck that guy

spice furnace
#

hey! I'd like to change the root of the repository on my unreal project (i.e setup a new repository that I've made for my project), but I cant fund the option to do so. does anyone know?

coarse heart
#

thanks

coarse heart
#

are people serious that artists can use this as a version control tool? I can't imagine having to explain all this to people

#

this is the most obscure ux I've ever used

#

is there a usable command line interface instead?

#

the docs are all marketing babble, with a few exceptions with the server instructions

sturdy lake
#

You get used to it

merry verge
#

Perforce is industry-standard, as long as artists largely stay with the basic workflows (getting latest, basic changelist operations) it's fine. Some studios build some tools on top of it to simplify things and there's stuff like UnrealGameSync to make their lives simpler too.

coarse heart
#

here we go

#

this guy knows what's up, at least after the server is up and running

languid escarp
#

is it possible to have git report how much data (bytes) it's going to be sending through the wire in a push?

#

alternatively, is there a tool that diffs two directories recursively and reports the number of bytes that are different

coarse heart
#

@languid escarp I use WinDirStat to figure out how much disk space everything is using. Probably not relevant for your use case though. its more for figuring out why you only have 100GB left on your disks

#

re, perforce: my local ISP is throttling my uploads pretty badly. It will take 3 full days to upload my project to my perforce server if I upload every art asset. Is there a workflow anybody can recommend where you leave almost all the art assets local (transfer those via usb or something), and not break the project?

#

eg, maybe copy every used asset to a special directory and only sync that one, while the rest is local-only and in-waiting?

#

is that feasible, or will it be a nightmare headache in the long run?

#

@languid escarp I recall an old uni project from years ago where we had to write a bash shell script to recursively read 2two different directory's contents and determine if the two directories were identical or different. I think we used hashes? I bet you could whip up something similar that reads file size. I'm only familiar with bash though, not windows, but its probably a similar process. Annoying to have to write though

woven sluice
#

Personally my useless question would be "why does it matter to you how many bytes you're about to transfer?"

#

@coarse heart ouch, that sucks... But still, 3 days is doable. Why not bite the bullet?

coarse heart
#

Its not super important, but we want to get something playable for halloween for a spooky playtest ๐Ÿ˜„

#

maybe I should just restart the upload and use usb until its done

#

switch to the server on day 4 or w/e

#

Personally my useless question would be "why does it matter to you how many bytes you're about to transfer?"
@woven sluice question is not useless, it makes me second guess my reluctance. Thanks for asking it

woven sluice
#

Oh that one was more for glass beaver :D

#

Art assets -> you don't have a bunch of 4k textures you could reduce to 1024 or anything do you?

coarse heart
#

besides the import options in unreal, what is the best way to reduce a texture size?

#

without introducing aliasing or w/e

woven sluice
#

The import options in unreal do not reduce the texture size

#

They only reduce it in the final packaged build

coarse heart
#

doesn't it reduce the texture streaming load?

woven sluice
coarse heart
#

yeah, ok

woven sluice
#

I bought some buildings pack for background buildings. It came with 4k textures, could practically see bugs on the windows. We're using these buildings 1km away so I dropped the texture resolutions and reduced the asset size by 4x or more

coarse heart
#

what program? photoshop I assume?

#

pardon me, I have to head out. Thanks for the chat

woven sluice
#

Batch export source texture files from within editor, Imagemagick to reduce them, run reimport in editor

languid escarp
#

@woven sluice it's for this azure build node that I was trying to do

#

but I'll probably just grab a 5950x once it's out

peak echo
#

Hey! I have question - has anyone here configured bitbucket pipelines for UE build (with default dockerfile example file from unrealcontainers)?

Looking for some hints and maybe advice for my yml config ๐Ÿ™‚

delicate needle
#

Question from a Perforce noob but otherwise competent full-stack programmer:

I'm the server dev for a small gaming company. We recently downgraded from a paid Perforce license to a free license and I'm having some basic setup issues with my Perforce server.
I currently cannot start up the Perforce server instance using the p4dctl start servername command.
It tells me the service cannot startup and exits with a code 255.
I believe the issue stems from a misconfiguration of ENV variables, but since this is my first time with Perforce, I am very uncertain of what to do.
Is anyone with some Perforce experience out there that would be willing to chat for a few minutes regarding my issues?
I believe it should be a quick fix for an experienced user.

vivid marlin
#

Hi, could anyone help me with setting up my project with source control? I've had it connected in the past, but i'm on a new machine and getting issues.

#

On the source control tab in the engine i used Git (beta version). It's connected with my github account, I even took the temporary email that they gave me and changed it to the correct email for my git account using gitbash, all my information is there.

When I accept settings it gives me "fatal: unable to read tree 3bbce281ddfad02c366cb59d167a357731c54603
fatal: unable to read tree 3bbce281ddfad02c366cb59d167a357731c54603
Failed to enable Git source control. You need to initialize the project as a Git repository first.
Source control is disabled"

I thought maybe i needed to download github desktop because I've used that in the past, there if I try to Add an Existing Repository from your Hard Drive, I locate my project folder then it loads, and then it immediately says

"Cant find 'Test Project'"
It was last seen at C:/Users/user/Desktop/Test Project. (link) Check again.
Locate... or Remove, but neither Check again or locate do anything

#

I have all my files, I just want them to be initialized in some source controlled repository

vivid marlin
#

All i'm trying to do is upload a project that I transferred from an old computer onto Github, and connect it to source control. I feel like it should be fairly simple and I'm happy to use any working method to do that

jaunty hornet
#

Is there a way for Perforce to ignore Blender autosaves? Basically a rule to allow .blend files but not .blend1

sturdy lake
jaunty hornet
#

Thanks, I should have specified that I was asking for the syntax to do so. With .gitignore you can use *.blend[1-9] but that doesn't seem to work for P4

coarse coral
#

Does anyone find using Assembla's Perforce integration to be slower than github(with git LFS) when uploading and downloading to the server? I just started using Assembla, and upating files to the server seems to take forever, whereas it was a lot faster with github?

quaint obsidian
#

I think GitHub is more distributed

#

they have a lot of engineering posts about this

dreamy vale
#

Can anyone help my friends and I share assets with each other? Weโ€™ve set up a git hub thing and cloned a repository but even then we arenโ€™t sure whatโ€™s supposed to be going on.

dusk dove
#

obligatory don't use assembla

#

just run your own p4 instead

coarse coral
#

@dusk dove price was almost the same, so I figure why not use assembla. I think it was just slow this morning, not sure why(shared instance of assembla?). Now it's comparable. In my testing I found that git is pretty smart about uploading files..regardless if you change the name of the file or upload it in a different directory it's going to checksum and know it already has the file and not upload it a second time(or something similar). Then I went ahead and created my own p4 server on your advice using google cloud and it was slightly faster than both github or assembla. I might just stick with the custom p4 server then...will scale better with more users price wise. Thank you

craggy swan
#

does perforce support gitignore files as is or does it not parse any features of it?

coarse coral
#

@craggy swan u using p4ignore?

craggy swan
#

I just wonder if i can copy paste content from gitignore

coarse coral
#

supposedly you can..but some folks say you can't still..

#

I was trying to do p4 stream ignore earlier, but that's even less powerful, only allowing wildcards

#

maybe just try it and see if it works for u: P4IGNORE=$home/.p4ignore;.gitignore;

craggy swan
#

Thanks for the link
Ye, i guess best answer would be testing it

coarse coral
#

@jaunty hornet mixed answers on what p4 ignore supports, but last answer I saw was [] doesn't work. If u can rename ur blender autosaves to .blend-[1-9], then u can use (wildcard).blend-(wildcard) not sure how to type two asterisk literals in discords. And I'm not sure if u can force blender to rename the autosaves or not.

jaunty hornet
#

@coarse coral Thanks. Tested all kinds of things and I guess it's just not supported. Pity.

#

I'm rather disappointed in the p4ignore. The fact that it has to be set as an env var is rather absurd

woven sluice
#

definitely showing some of its sweet 90's roots lmao. i don't set P4IGNORE anymore but i set P4CONFIG instead, and then you can use a config text file per project with different settings. makes it possible if you are working in multiple teams and one team wants to use .ignore and another wants to use p4ignore.txt etc feelschromosomeman

coarse coral
#

Yeah, the client side env var part is really absurd...devs have to remember to do it.. @woven sluice I've been able to just do the multiple set for those filenames which works too

#

Streams also have ignore, which is server side, but it's a little more limited

woven sluice
#

ah, didn't know you could set multiple entries

lyric spruce
#

Anyone here ever know how to push a file that won't be submitted to perforce?

#
Submit aborted -- fix problems then use 'p4 submit -c 123'.
Some file(s) could not be transferred from client.```
#

"fix problems" but what are the problems?

#

line 1 is literally just

#

unreal copyright

#

lol

woven sluice
#

what/why are you changing the filetype?

lyric spruce
#

ue4 was refusing to compile it

#

in utf-16 format

#

so i changed it to utf-8

#

unreal engine automatically generates new c++ files in utf-16

#

idk why

woven sluice
#

hmm, it's probably trying to diff the two files and can't because of the different encoding or something

#

also FWIW mine creates new source code files in utf-8, if yours is generating them in -16 you might want to investigate somehow

jolly fog
#

is this Binaries folder needed when pushing to git?

#

because that's like an extra 800mb

merry verge
#

no

weak verge
#

can i use webinar for long distance collaboration?

woven sluice
#

... What?

weak verge
#

webinar for collabing

#

with someone far

#

@woven sluice

merry verge
#

his confusion is probably because "webinar" is not the name of a commonly used source control system... what is it you're talking about?

weak verge
#

his confusion is probably because "webinar" is not the name of a commonly used source control system... what is it you're talking about?
@merry verge i want to use webinar to collab with someone

#

but he is far away

merry verge
#

what is webinar...

weak verge
#

this one

merry verge
#

oooh I see where the confusion comes from. A webinar is a web-based seminar, it's not the name of the tool being used in that

weak verge
#

ooh

merry verge
#

there's no name for that tool beyond "multi-user editor workflow". They should probably come up with a better name haha. Can't really help you with it but that should hopefully clear some things up.

weak verge
#

thanks

winter parcel
#

why I can have such p4 error?

merry verge
#

@winter parcel your p4 server is running out of disk space. P4ROOT is the directory that the server stores most of its data.

winter parcel
#

@winter parcel your p4 server is running out of disk space. P4ROOT is the directory that the server stores most of its data.
@merry verge Correct! I ' ve just fix it! thank you very much

jaunty hornet
#

What are some good practices with p4? I'm used to git's "Commit early and often" mindset, and I'm wondering what's P4 equivalent

gray dust
#

Hi guys, just setup a perforce on my vps. I can connect and submit from my own pc and client, but my colleague can connect but receives errors when he submits "Check-in failed as a result of save failure."

Any ideas would be appreciated.

rare citrus
#

What are some good practices with p4? I'm used to git's "Commit early and often" mindset, and I'm wondering what's P4 equivalent
@jaunty hornet Establish a policy to avoid locking each other out of files if you are working with a team. This can mean using Streams, or instituting a policy for developers to always submit their files at the end of the day. I'm in the middle of training my team to use streams in P4 instead of always working in mainline....

woven sluice
#

streams are pretty much useless for UE though...

#

I mean they're super good for some things like setting up CI systems

#

you can't use them to "avoid locking" though

#

on the original question: "commit early and often" is good in perforce. make sure the server has its TypeMap set up so that it doesn't keep infinite revisions of binary files. this is where P4 can have a little niceness over GIT - you can set it up e.g. to store only the last 5 or 6 versions of a binary file type, so you don't bloat your repo by constantly resubmitting little changes to blueprints or textures. I used to be "afraid" of constantly submitting small changes to binary files in GIT.

dusk dove
#

not really a reason to do that

#

it does make sense for map built data files

#

but everything else doesn't really change much since it stores the changes compressed

woven sluice
#

@dusk dove what? (I mean, no it doesn't store deltas - but now I'm wondering how much it actually compresses uasset files...)

#

I mean I guess like a blueprint is usually less than a MB so a couple hundred won't break the bank

#

Still prefer that my character BP only takes up 5MB instead of 100 though

jaunty hornet
#

@woven sluice So when it stores the last 5 or 6 versions, does it only track those versions i gues?

woven sluice
#

older revisions are deleted, yeah

jaunty hornet
#

Alright, I'll read up on that. It might be handy to use that to limit Blender autosaves as well, like I asked several days ago

woven sluice
#

we keep binaries (DLLs, PDBs) in source control and update them automatically every time a single line of code changes so... if we did this in GIT we'd be storing about 40 GB worth of garbage by now (before compression). instead we're only storing about 500 MB

#

makes me sleep a little easier at night for my VPS costs ๐Ÿ˜„

jaunty hornet
#

Hah I get that

#

Oh shit my test VPS is still running thanks for reminding me

woven sluice
#

read up on the command "p4 typemap" and then in p4v, right click on a file and click on "Change filetype" - the options in that dialog match up to how you enter them in the p4 typemap text file

jaunty hornet
#

Ok thanks!

woven sluice
#

and it will only apply them to new files you add to the depot

#

if you already have existing files you might need to run that Change Filetype command on them yourself if you want to, to bring them up to spec

jaunty hornet
#

Why do I need to be connected to a server to run the command p4 help typemap -_-

woven sluice
#

jUsT pErFoRcE tHiNgS

severe orchid
#

Anyone here that could help me figure out how to pull a specific version of the engine with github ? I want to pull 4.20

brittle smelt
#

pull requests have nothing to do with pulling

#

just change the engine branch to 4.20

#

git checkout 4.20

severe orchid
#

that would be from the command line, right ? i'll try that, thanks

#

do i pull in D:\UE4\UEngine420\UnrealEngine folder .. or just in UEngine420 folder?

quartz valve
#

Whats the use of source control???

woven sluice
#

It allows you to travel back in time. Time travel is cool, isn't it?

sturdy lake
#

Whats the use of source control???
@quartz valve It's a pain in the arse until it completely saves your arse

quartz valve
#

Oh okay thanks

#

So its like a cloud storage?

sturdy lake
#

It allows you to go back to any moment in the lifetime of the project

quartz valve
#

Oh okay thanks

coarse coral
#

So I recently set up a perforce server myself, but after one day, I can't login on the server or the client, it keeps saying my password is invalid even though I'm sure I know what it is. I even deleted the server and remade it from scratch. Works fine on server/client first day, then stops working on second day. Any ideas?

ebon fiber
#

which source control works best with unreal? preferably free

limpid obsidian
#

@coarse coral you can use p4admin to do user administration. create and assign yourself to a group that doesn't have a password expiry

#

@ebon fiber UE4 works with most version control systems. I prefer perforce as it's centralized, has file locking and is performant

#

since cloud hosting is still prohibitively expensive

ebon fiber
#

by perforce you refering to Perforce Helix Core?

#

@limpid obsidian

limpid obsidian
#

perforce was the original company with a product of the same name. they were purchased a while back and rebranded "helix core" which causes a lot of confusion

#

P4D is the server, P4V is the visual client. P4V mostly just makes calls to the p4 command line executable.

coarse coral
#

@ebon fiber perforce is free for under 5 users, git you need to use git LFS which can be annoying to use for binary files(just another layer of things to manage)

#

@limpid obsidian thanks, I finally got in, I couldn't login to my superuser twice...only one user on that server. I did a passwd because I couldn't use admin commands since I had to p4 login and I couldn't do that because the password didnt' work...but p4 passwd seemed to do it...

ebon fiber
coarse coral
#

@ebon fiber If you're working solo, u can set up a local p4 server, if u would like to do it on the cloud..which is what I just did..you have to get a cloud server(linux probably best), then install it which isn't very hard to do(15 minutes of work)

#

nope doesn't require a company name, there's a checkbox at the bottom that says you're not part of a company

limpid obsidian
coarse coral
#

the server u install differently, u dont' have to download anything to ur local

#

yeah they just gate that to get your email

woven sluice
#

yeah don't send them your email just download it from their downloads page. you should expect to pay about $15/mo for a VPS to run the server on (with like 50GB of storage - increasing as you grow of course), unless you do set up a local server

ebon fiber
#

Ok so i set up a local server but if in the future i want to get other people to work with me can i move this server from my machine to a cloud VPS?

coarse coral
#

$15/month is cheap...I needed a lot of memory cuz of all the assets...came out to more than that on google

woven sluice
#

if your internet is good you could just keep running it locally but in my experience it was a tad slow for other people on the other side of our large flat earth

limpid obsidian
#

there are calculators for cloud hosing costs by Digital Ocean and AWS. The cost depends on the instance type, egress charges, storage, and snapshot costs

#

I totaled it up and found I could buy a 2TB SSD for cheaper and host my perforce server on that via Docker

ebon fiber
#

@woven sluice yes i assumed that but i was wondering if it is possible to migrate this server from my machine to a cloud VPS

woven sluice
#

you can migrate it but IDK how much of a pain it would be to migrate it from windows to l00nix

limpid obsidian
#

if you want to migrate it from local to the cloud, I recommend running your server on Ubuntu from the start

#

you can do so via Docker or WSL 2

ebon fiber
#

@limpid obsidian thats what i also thought doing

woven sluice
#

p.s. for the distant future, if you ever become big and famous with a large team and have to pay perforce, note that they have a very stupid licensing system which locks the paid server license key to your server's IP, and you may have to pay them the annual maintenance costs of some thousand dollars for them to migrate it. feelschromosomeman

coarse coral
#

@limpid obsidian wow that's cheap I gotta relook into all that pricing ๐Ÿ˜„

#

@woven sluice so that means when u start paying for a real license, switch to a more dedicated IP maybe...

ebon fiber
#

Ok just to recap to organize things in my head, I should setup a p4d server on an ubuntu and create a perforce account or a perforce account is needed only to use their cloud ?

limpid obsidian
#

you don't need a perforce account to download or run their software

coarse coral
#

yeah no p4 account...they don't have a cloud service for helix core(requires 3rd party Assembla.com, but honestly setting up ur own server seems preferable if u know how)

ebon fiber
#

and then on my windows machine i should download Download Helix Visual Client (P4V) ?

limpid obsidian
#

yepper

coarse coral
#

yeah, also the p4admin

limpid obsidian
#

during the install, make sure you check p4 admin tools and command line tools

ebon fiber
#

@limpid obsidian during the install of the client you mean right?

limpid obsidian
#

yep

ebon fiber
#

okay thank you guys, if i encounter any problem i will come back here ๐Ÿ™‚

#

btw is the workflow any similar to git?

limpid obsidian
#

git is inherently a distributed model, with each user having a copy of the entire repo. works great for building linux, but not so much when trying to collaborate on binary assets that can't be branched/merged. perforce is a centralized model with support for file locking out of the box. you can use git with a centralized model and lfs, but it's cumbersome at best.

coarse coral
#

It's quite dissimilar imho. You have to "Check out" files before modifying them, which tells other users you are working on it and syncing to the latest version of them. Then you check in files to the server. This also means by default a lot of your files are "read-only" before you "checkout". You can set the option for it to not do this(I made everything writable regardless of checkout)

#

But yeah you get less conflicting binaries because you tell other users you are looking to maybe modify a file before you actually do, binaries can't get merged.

#

One big thing I really needed it for was file permissions, which allows me to hide files from certain users, like contractors

#

Also, check out using "perforce streams" instead of classic branching...which is itself two different workflows within the centralized model itself

limpid obsidian
#

two important things you'll want to setup:

  1. typemap: determines how p4 treats files (as text, binary, lockable, writable, etc). the UE4 docs have a basic typemap
  2. ignore file: similar to a git ignore file, you'll want to prevent checking in any intermediate files generated by the build (Intermediate, solution files, etc)
woven sluice
#

(why would you make everything writable? what are you using that doesn't have automatic integrations?)

quaint obsidian
#

it depends on which git plugin you use

#

if you use the git lfs 2 plugin, it is pretty much the same

#

check out will checkout stuff in p4, just like it locks stuff in git lfs

neat grotto
#

Git LFS file locking works fine in my experience, but is generally slower than Perforce checkouts.

#

It does require downloading a newer version of the UE4GitPlugin, though. The one included with 4.25 is still quite old and doesn't support file locking.

coarse coral
#

@woven sluice I set up mine a bit weird probably. I have the built dlls and some other binaries that the editor needs to run(but not all the intermediaries most of those are on โ€œisolateโ€) and those donโ€™t get automatically checked out when I do a build

woven sluice
#

@coarse coral fyi you might wanna learn about the typemap settings for your server (and the setting +w specifically) and then change your DLL file types, if that's how you need to operate. also, if you eventually set up something else (TeamCity/Jenkins/CI) to build/submit binaries for you, you can use a virtual stream to cut the DLLs out of your local workspace (or just use an ignore file)

coarse coral
#

@woven sluice +w on typemap sounds good. Thank you. I will eventually set up a build system, I had a batch file to copy over the files, but decided against using it because I don't yet want to maintain it for all the new folders/files we add.

quaint obsidian
#

Yeah it is slower due to some stuff in the plugin, there are some pending fixes for that afaik @neat grotto

neat grotto
#

Oh it's more related to the plugin than the actual locking protocol?

#

Hopefully Sebastien can improve on it then! Git is more viable for UE4 than it has ever been, at least in my experience.

#

Still very anxious to hear the source control story for UE5 next year.

merry verge
#

Did they say there were changes coming? Doubt it'll change much otherwise aside from maybe updating the plugin.

quaint obsidian
#

Yeah, it's kinda both. The plugin assumes some things are cheap and spams it often, while there are things within Git LFS that allow to reduce the requirement for calls.

neat grotto
#

Ah OK. Gotcha.

quaint obsidian
#

For example, when you lock, it does a lock request and then checks the locks list to see if you got your lock in, and then in some cases, it will do an update status, which checks the locks list.

#

Whereas Git LFS allows you to check your own locks for free, because their success is verified within the lock request.

#

Also UE4 Source Control has a cache for source control file status which is used improperly in the plugin.

neat grotto
#

Did they say there were changes coming? Doubt it'll change much otherwise aside from maybe updating the plugin.
@merry verge All we know so far is that levels are moving to a file-per-actor system and UE5 will bring an asset virtualization system.

merry verge
#

ah right, forgot about that

#

yeah, will be interesting to see if source control changes come with that

neat grotto
#

Indeed.

quaint obsidian
#

I thought they also talked about their own source control service at some point, maybe not in the UE5 announcement

#

I might be misremembering

neat grotto
#

I haven't heard them mention that specifically, but there's a lot of smoke so...

quaint obsidian
#

But yeah, overall, been very happy with Git. Especially the hosting and ecosystem. It's lightyears ahead of anything Perforce offers or anything that you can set up manually.

neat grotto
#

The file-per-actor and asset virtualization things are def coming, but I remember years ago they were working on a new .uasset format that was text-based and mergeable.

quaint obsidian
#

I have made my own fixes to the plugin which are messy and they partially help so it's a bit more tolerable.

#

I think they canned that.

neat grotto
#

Probably. ๐Ÿ˜ฆ

#

But the asset virtualization thing sure is interesting.

#

I don't know how they would make that work with every existing source control provider. Seems more practical to either go all in with one provider, i.e. Perforce, or roll their own solution into Epic Online Services.

#

Details are light right now so this is just speculation. ๐Ÿ˜„

#

What we currently know about asset virtualization:

Instead of pulling down an entire project's worth of data, you instead pull down a small set of metadata about the assets in the project. The real full data should then be stored on some fast shared storage - of which there will be multiple possible options here - then the full data is only downloaded on demand locally by the editor. This means you only have to pay for the time and drive space for things you actually use.

#

Sounds a lot like Dropbox SmartSync.

quaint obsidian
#

Oh that's probably what I was thinking of

#

re: their own source control

neat grotto
#

It does sound like it a bit. Especially the vague "some fast shared storage".

#

Playing devil's advocate, though: Perforce is pretty entrenched at Epic, so it's hard to imagine them migrating away from that. If they roll their own solution, you know they'll be dogfooding it so they can say "and we use it to ship Fortnite."

merry verge
#

The studio I'm at rolled their own virtual filesystem layer on top of perforce that does basically the same thing. It'll probably be something like that.

neat grotto
#

Oh wow, neat.

#

I wouldn't be surprised if Epic did the same and it only worked with Perforce.

quaint obsidian
#

Yeah, but I wonder how everything will change with the pandemic and how remote everything is. Fast shared storage doesn't ring a bell to me in that situation ๐Ÿ˜›

neat grotto
#

Mmm, yeah good point.

#

This was back in July during Unreal Fest Online 2020.

#

Who knows what's changed since then.

quaint obsidian
#

Yeah the tone has definitely transformed from "this is just temporary", to "we could be here for a while" and "why not keep this permanent"

jolly fog
#

hello guys I use source tree as source control and gitlab online

#

I am trying to push my update in gitlab but I am getting error:

#

there is one branch

#

I want to delete it but I am getting error again ๐Ÿ˜ฆ

rotund bobcat
#

you can't delete a branch that you're using

#

you have to switch to another branch first

#

and check that log to see if it has more detailed errors

jolly fog
#

okay

#

how to switch to other branch

#

I want to push and pull from master

#

idk how i have this branch tbh, lol

rotund bobcat
#

git checkout master

#

if you already have it locally

#

or in sourcetree double click on it in the list on the left

jolly fog
sturdy lake
#

In git, I have the following:

        -D--E-
       /      \
A-----C--------F--G
 \
  -B

I want to rebase C..G on top of B, but without losing the branching of D and E. Even though F could have been a FF commit, I'd like to keep the branching in place.
Currently, when I do a rebase, it flattens out the branch.

hollow badge
#

setting up streams in perforce for the first time, but I'm not sure what my folder structure should look like. I'd like to have a master project (possibly several games) , then streams for oculus, steamVR, and quest. So would all game projects go into main or should I not do that

long hull
#

I want to rebase C..G on top of B, but without losing the branching of D and E. Even though F could have been a FF commit, I'd like to keep the branching in place.
@sturdy lake git rebase -p

sturdy lake
#

Thanks ๐Ÿ™‚

#

Since asking I've discovered that --preserve-merges has been deprecated in favour of --rebase-merges

long hull
#

You're right, I've learned something new today too, thanks ๐Ÿ™‚

sturdy lake
#

And it does exactly what I'm after

pure vessel
#

Hi All,
I'm having an issue where when I submit built lighting files through source control, other clients do not apply then and I'm stuck with all my levels saying they need to have lighting rebuilt. Any idea why?

jolly fog
#

I fixed it

#

I fixed the problem with the source tree
the problem was that when I create new repo
I move the stuff from the other pfolder
and I copy the git folder and inside there is the second branch that's why errors
now I copied without the git folder and all is good

gray dust
#

Hi all, using Perforce, when my colleague updates a map, and lighting build, when I download/get latest both files download but on my system the lighting is still waiting to be built? any ideas why this would occur

merry verge
#

@scenic horizon You can right click in your content browser and hit "Sync" if your editor is configured for perforce integration

coarse coral
#

gah got locked into a 12 month contract with assembla..thought it would be month to month. Anyone know how to get out? I'm not even using them....but now I have to pay $1500 for a year...

sturdy lake
#

Have you tried contacting them?

kind olive
#

Can anyone recommend a Git client for working with engine source builds? Until now, I have mostly just downloaded a zip and built. I'm thinking of actually using a Git client to manage it to make updates easier. I've spent very little time working with Git.

#

I also use perforce, in the off chance that's relevant.

limpid obsidian
#

@kind olive git bash

merry verge
#

sourcetree and github desktop are probably the most commonly used free ones.

quaint obsidian
chilly elk
#

Question for people that use version control, after you create a PR and commit it to the main/master branch. When you want to rebase another branch with the main/master one and you get merge conflicts, how do you handle them since there isn't any code for you to change?

quaint obsidian
#

Hmm, they might have gone paid recently

#

@chilly elk Are you using Git LFS?

chilly elk
#

Yes

#

Hmm, they might have gone paid recently
@quaint obsidian Yeah I just looked and I liked the way the UI looks (better than SourceTree) but then I saw the price and changed my mind ๐Ÿ˜„

quaint obsidian
#

Merge conflicts on binary files are a either or, you can't merge the content within. You can use the git lfs checkout command to pick which one.

chilly elk
#

I expected as much, just wasn't sure how to pick one over the other thanks. This basically means that if I work on Branch X on a certain uasset file I shouldn't make any changes to the same file in Branch Y as I will have to pick one of them meaning that I will lose some work.

quaint obsidian
#

git lfs checkout --to path/to/file.uasset {--theirs,--ours} -- path/to/file.uasset

#

So if you want the file from the branch you're merging from, git lfs checkout --to path/to/file.uasset --theirs -- path/to/file.uasset

#

if you want the file from the branch you're merging to, git lfs checkout --to path/to/file.uasset --ours -- path/to/file.uasset

chilly elk
#

Nice thanks, I will see how it goes ๐Ÿ˜„

quaint obsidian
#

You can also use --base to use the merge base (common ancestor of both files)

#

I think the command does not automatically add the file to staging

#

so you will have to use git add as well

#

and then commit the merge resolution

chilly elk
#

Cool

#

Thanks again

twilit valve
#

Good morning. When using Perforce with Unreal, what might a ".uasset isn't in revisions table!" error mean? Unfortunately, it's preventing me from checking out a particular asset.

woven sluice
#

not sure but are you sure you're up to date? (run Get Latest)

twilit valve
#

It's up to date, yeah.