[Request] Merging blueprints?

Hey guys,

So if a few developers are working on a project in branches, or if there are dev, testing, and release branches, you need to be able to merge them at some point.

Is it not possible to work in this manner with UE4? Are we all meant to take turns editing files when in a larger team?

It’d be interesting to know how Epic does this.

Thanks.

Greetings ,

A Blueprint Merge Tool is under active development. If you’d like to experiment with it you can enable it in 4.6 via Edit=>Editor Preferences=>Experimental=>Enable Blueprint Merge Tool. When this setting is enabled, the content browser context menu will have a ‘Merge’ option for assets that are in a conflicted state in Source Control. Selecting the Merge option opens the Blueprint Editor, along with read only views of the base revision, remote revision, and local revision.

Feedback on this new feature is definitely welcome - but keep in mind that it is not yet feature complete so if you find something missing the reason is very likely that we just haven’t finished the tool yet :slight_smile:

That said, we’ve been using the editor for a long time by treating these assets as binary and simply select the source or target as the ‘winning’ revision. That is obviously not ideal in all cases, but it allows us to branch. In this case we just use P4’s built in branching and merging tools.

Hey Dan,

I tweeted Michael and he mentioned that, however I may just be terrible at deciphering UIs but I couldn’t figure out how to select/merge which parts of which graphs I wanted (like P4’s graphical merge tool).

Also, I had a thought; is the merge tool ever going to be made standalone like Unreal Frontend? It would enable us to merge large branches quickly - tell P4V (or other SCC) to merge .uassets with UnrealMerge.exe, and quickly go through one conflict at a time. With lots of blueprints, having to boot up the editor when trying to just merge quickly independently of any editors would be a pain, I imagine. Such a lightweight solution would surely speed things up.

Thanks!

Short answer: Your ideas are definitely solid, we’re working towards them. Detailed answer continues below.

Give yourself some credit - the UI for blueprints is complicated to begin with, and for interactive merge there’s basically 3x more stuff going on. Not fun :slight_smile:

This is a tough one - here’s a really technical response. The Blueprint Editor needs to be loaded in order for a program to present a useful representation of a blueprint, and the blueprint editor (UE4Editor-Kismet.dll) currently depends on the ‘main’ relatively monolithic editor libraries (UE4Editor-UnrealEd.dll). This dependency represents a lot of features, and refactoring features is time consuming and risky.

We’re experimenting with starting the editor command line parameters so that the diff or merge operation is automatically started. Initial feedback is positive. By sidestepping the dependency issue we get to focus purely on editor start times, which would improve a lot of workflows, rather than just blueprint specific workflows. Notably, in P4V this works quite well. It’s easy to use the unreal editor (with command line parameters) as a diff tool and/or merge tool that can be started from the P4V context menus.

Automatic merging of changes that don’t represent a semantic conflict is also on my backlog, I’ll look into getting the priority bumped up. I’ll consider my work on blueprint merging a success if we can automatically bring changes together so that users are focused on getting things done, rather than sorting out conflicts :slight_smile:

any news about this?

From 2014, active development should = done. <grins>

teak

All righty then :smiley:

Is there some documentation/tutorial of how to merge blueprints in the editor?
I can only see an explanation of how to use difftool to see the conflicts, but this is read-only and you can’t drag an drop from one class to another.
I tried to use the merge functionality inside the blueprint class, but a lot of my elder blueprints are not compatible for loading and it also read-only.
Im currently using 4.10, but i will switch to 4.13.
Is there any functionality inside the editor (or maybe in the next release) to see diffs and merge single changes of a class in them same window (not read-only) ?

That tool is straight up broken, don’t waste the time figuring out, just go and do stuff manually.

I guess 4 years later we still don’t have any updates on that? The merge tool right now is completely useless and there is no word to be found in documentation about it.