We use perforce as source control and its working flawlesly.
Though we have a bit of trouble working with Blueprints and source control in the team. The issue here is that if a parent asset is edited, Unreal needs to also edit the Inheriting classes (at least in some circumstances).
As example, we have a BASE Widget Blueprint for our widgets. That BASE is inherited by about 20 SUBWIDGETs. Adding a variable to the BASE widget, Unreal also needs to edit all 20 SUBWIDGETs.
If USER1 edits SUBWIDGET3 and it is the last in the inheritance tree, its fine, no source control collision here.
Now USER2 starts editing BASE. After some changes USER2 makes a SaveAll and unreal now wants to also save the SUBWIDGETs, which is the moment USER2 does notice that he can’t save as SUBWIDGET3 is checked out by USER1.
Still executing the save, will likely cause errors with SUBWIDGET3 later as it is missing data. The only solution would be to not save, revert BASE and quit the editor to get rid of the pending edits/save unreal wants to do the SUBWIDGETs.
This for sure wastes a lot of time. So am I missing something or how do you handle Blueprint and SourceControl?