Git SCM
From the perspective of a C++ developer, Git is indisputably the superior source control system.
It works great for small, technical teams, where everyone can compile their own Project and/or Engine.
When the team size grows large and/or non-technical people need access to the repository, and/or simultaneous modifications are being made to Blueprints, for example, Git ceases to be as good an option for the larger team, and thus Perforce is used internally at Epic.
If your team uses Git for your project, here is how I recommend to do it.
How To: Set up a Lyra Project Source Repo
See this detailed PowerShell procedure for the exact commands necessary to create and initialize a new Lyra Project Git repository.
Overview:
- Create
lyra-mainbranch (import from Epic#NoChanges)- This is an exact mirror of Epic’s Source Control.
- Never make any changes directly to this branch.
- Create
lyra-xistbranch based onlyra-main(applyLYRAGAME_APIupdates,virtualoverrides, etc)- See the Overview of
lyra-xistfor more details - This is your custom Lyra. Base your new games on this branch.
- See the Overview of
- Create
xist-gamebranch based onlyra-xist- This is your game branch. Build your game here.
- To get updates from the parent
lyra-xist, mergelyra-xistintoxist-game - When you make Game commits that you want to propagate up to
lyra-xistto share with other games, cherry-pick specific atomic commits
How To: Merge Epic Updates into a Lyra Project Source Repo
See this detailed PowerShell procedure for the exact commands necessary to merge new updates from Epic into an existing Lyra Project Git repository.