Mergeability of BinaryData.cpp

The BinaryData.cpp files generated by the Projucer are sometimes submitted into source-control (an example of this can be found in the bootstrapping of the Projucer itself).

When merging branches containing these files, there are spurious conflicts in generated variable names such as temp_binary_data_57.

While solving the conflict is not hard to do (just re-generate the files), all these small easy stuff get in the way.

It would be nice if instead of using temp_binary_data_57 Projucer would use temp_UnityPluginGUIScript_cs - or any form of name which does not depend on how many entries were before. Then there wouldn’t be so many spurious merge conflicts in these files.


I’m sure at some point I read Jules write something along the lines of “don’t use the Projucer as an example of how to organise a project”. :wink:
I suppose there may be reasons not to, but my preferred way of working is to .gitignore everything that the Projucer can spit out, and just commit the .jucer file + any dependencies, then I always continue working on a given project by opening the .jucer and having the Projucer launch Xcode for me.
I reckon with some justification as to why that doesn’t work for you, it could give your improvement suggestion some more weight.


I do exactly like you suggest: Wherever possible, I never add any non-source files into git. It’s up to my build scripts to create them and all is fine.

However, like you said the Projucer itself is an exception to this rule (due to bootstrapping considerations), and indeed this discussion was initiated from problems which I have been stumbling into when developing the Projucer itself, as I have done several times in the past (for example when contributing an option for AU plugins to support sandboxing).

Therefore my issue isn’t resolved by your suggestion to leave these files out of git (which I already adhere to whenever possible).

1 Like

Just hit this problem again today. The file I added to make Xcode use its legacy build system referenced the wrong temp_binary_data_XX after merging, making me accidentally use the broken build system again :frowning: