Best practices and Project managing with GIT?

Hello, relatively new to the Unreal development scene.

I have a repo I intend to work with by storing all of the necessary things to initialize my project anywhere in any machine, the idea is to work as a team.

The flow of work would be, clone the repo, initialize it on the editor and boom, you can start working.

I am using a common .gitignore found on the web which contains the exclusion of things that Unreal generates upon loading the project.

Also a .gitattributes file for the LFS storage.

Never really worked with stuff that large before, so I am getting different errors such as

error: RPC failed; HTTP 500 curl 22 The requested URL returned error: 500
send-pack: unexpected disconnect while reading sideband packet

or even

error: unable to rewind rpc post data - try increasing http.postBuffer

I tried a few solutions like increasing the postBuffer and some other git commands to no avail, so it leads me to believe this error might have to do with the size of the project itself (aiming towards 8GB max but currently 6GB), which also leads me to believe I am not really going through the right path when it comes to Source Control and Project sharing.

So how can it be done properly? I’m not willing to pay for this service as this is just for studies, so I am looking into a free solution to this.

Thought about only having the code Source Controlled and these large assets uploaded to some cloud data-storage service but it seems counter-intuitive when installing the project on a different machine, like, I would clone the repo and THEN download the assets from the cloud storage? It doesn’t feel right.

Thanks in advance for any tips & suggestions.

we are using git but doesnt seems as best solution for binary files but we are going to swap to perforce most likely. Have a look at that perhaps, its free up to 5 people.

1 Like

It seems plausible, Unreal itself offers a documentation on Perforce Using Perforce as Source Control for Unreal Engine | Unreal Engine 5.1 Documentation

I don’t know, if there aren’t any other suggestions I might end up using it.

I mean, its not the best case scenario because it is a tool I don’t professionally use but I’ll be learning something new anyways.

Thank you for the suggestion!

I tried Perforce and wasn’t amused that I couldn’t port my git repo to a perforce format. Overall lack of control and the risk of being dependent on their environment and terms and conditions made me stick with Git.

Git doesn’t diff binary files. There have been recent developments on Git LFS, full ssh support and I believe file locking works properly now in UE. Only thing remaining is diffing. if your project is 90% c++ code I’d say go with git. If it’s all blueprint and images it’s a sh*tshow anyway because blueprints go bad (and all their dependencies go bad) all the time even if you could diff them.

3 Likes

Oh well, I might end up also biting the bullet and purchasing one of their bandwidth plans which sucks because the project isn’t even that large. it doesn’t help that the project is almost 100% C++ either. I tried a few things in Perforce these past hours and yes, Perforce has its own particularities that will take a bit more time to get used to… I wouldn’t have guessed it was this hard to version control with Unreal.

Either that or you could still check out the GitCentral plugin, it’s supposed to make a team work with Git + file locking and all, not sure how far diffing goes. Only downside is that I haven’t been able to test it myself since I ended up going solo yet I bought it :slight_smile: second downside is that I believe most of the source code it was based on was free on github and i bought it. Still the better option for me cause I can do anything with my repos and put them anywhere I want without being dependent on some guys in suits.

1 Like