Hello! Me and some friends have recently started a project on the 2D template. We have a GitHub repository and have individual branches for each of us. There’s also the master and dev branches. We plan on merging our branches to the dev branch to test how everything works before merging it to the master branch. After a couple of weeks of work today we started merging our branches to the dev branch. However one of us ran into a problem. After I merged my branch to the dev branch he wasn’t able to do it as 2 files are causing conflicts. One of them is the .umap file and the other is our MainCharacter blueprint. I added some C++ code to it after reparenting it to an appropriate class and the friend who is having the problem added some blueprint logic to show a HUD and we can’t merge these two files now. How should we go around solving this without losing our work/not having the hussle to send files to each other to copy and paste work? And how do we avoid these kind of problems in the future?
Avoiding merge conflicts is tricky, and will sometimes depend on your development workflow and the roles within your team.
For the .umap files, you could try splitting your maps out into Sublevels:
Before adding complexity with level streaming, you could break down the levels into various sublevels (such as geometry, gameplay, lighting, etc), and then making sure that each actor is added to the Sublevel that is appropriate. This would help if you have one person mostly working on level design, while someone else tends to work mostly on gameplay.
Yeah sublevels could be a solution for .umap files but what about all other types of blueprints? We just have to isolate our work from each other and pray that others don’t change anything? And what if I for example need a function that someone else makes in order for my part to work?
It’s a very old Thread but I faced the same issue when I was merging the code written in Mac and another once written in Windows
And I fixed it by deleting the Intermediate Folder and rebuild the Solution using VS.