Questions about the integrated Source Control

Hello!

While developing a small game prototype, our team quickly realized that the Blueprints being binary causes problems for Blueprints that sit at the center of the game (GameMode, PlayerController) and need to be edited all the time. We figured that maybe the integrated Source Control would improve matters and started using that (Subversion). Previously we used TortoiseSVN and in practice both tools are currently used in tandem because we encountered some issues/unsolved questions with the Unreal system that required a workaround using TortoiseSVN.

  1. How do you update a project from within the editor? The Source Control dropdown only offers Checkout (locking files), Submit (committing changes) and the history, I believe (on a different PC right now). We tried syncing but it’s unclear what that does. At least, the changes submitted by a different user didn’t show up when doing that.

  2. Is there a way to unlock files from within the editor? Preferably without requiring the changes either to be submitted or reverted?

  3. Displaying a Blueprint diff against some older revisions failed, whereas newer ones worked fine. Is this because the older commits were made without using the UE Source Control?

  4. We intentionally created a small conflict (moving a node, adding a Print node) in one Blueprint to test the Blueprint Merge Tool. However, choosing Merge within the File menu always resulted in a crash. I’ve already submitted the crash report with some more details, but I’m still wondering whether this is even supposed to work this way. Obviously, in realistic circumstances this is much more likely to be a merge conflict resulting from attempting to merge different branches.

Thanks in advance!

Add-on question:

5: When a file ends up being conflicted, this is not at all obvious in the editor. I eventually managed to get the Merge Tool to work for a different (intentionally engineered) conflict. However, seeing how the Blueprint continued to show my local changes, it took me a while to realize that my update had been successful and there was a conflict on the file. It was simply (correctly) marked as having local changes, and the tooltip didn’t hint at it being conflicted, either. Is this a bug or a missing feature? If the latter, could it be added?

Some additional comments:

to 1: Okay, so I discovered that Sync does update the repository, but the changes don’t always appear immediately. For example, one of my colleagues submitted changes to the landscape in our main map (opened by default when the project is opened). Yet when I used sync, nothing changed in the viewport. I waited a bit, played the game. Nothing. Then I exited the editor and opened again and lo and behold, the landscape was changed.

to 3: I think that was just me trying to diff the first version in history against its previous one, which obviously didn’t make sense. Diffing against previous version appears to work fine.

Maybe I should write separate bug reports for each of my above points…

But I’ve also thought of something else: If an asset is checked out by someone else (or even if it’s freely available) and I decide to make it writable anyway, I keep getting the same popup each time I save. This is really annoying, especially as I save a lot because the editor seems rather unstable and I don’t want to lose any changes.

In Unreal 3 we had a plugin which only asked this once. Once I had picked the “Writable” option, I wasn’t asked again until I had either reverted the map or submitted it.

With some more experience with the integrated source control under my belt, I thought I’d go ahead and answer my own questions in case anyone stumbles upon this. Maybe it helps.


Question 1: How do I update a project from within the editor?

Answer: Don’t. At least in 4.8.x and 4.9.0, Sync is highly unreliable and won’t refresh the assets until the editor has been closed and reopened. This may result in work being lost due to several users editing the same asset one after another. (Known bug.)


Question 2: Is there a way to unlock files from within the editor?

Answer: No. Both reverting and submitting your changes will cause the lock to be released, but if you just want to get rid of the lock but keep your local changes, you’ll have to do it from outside the editor.


Question 3 was a misunderstanding on my part. Viewing Blueprint diffs works fine, both against depot and for older revisions. I’m getting fewer crashes in 4.9, too.


Question 4: How are we supposed to deal with conflicts?

Answer: In 4.8.x at least, conflict handling is extremely basic. I haven’t tried 4.9 yet but I haven’t seen anything in the change log that promised improvement on this part.


Question 5: Why do conflicts not show up in the editor?

Answer: I’m still not sure if this is supposed to work (bug) or just a missing feature. Either way, this doesn’t work. As per question 1, don’t use the in-editor revision update and you should be fine.


My add-on comment about the annoying “Make Writable” popups thankfully no longer applies to 4.9, where this has been fixed.