I’m searching for a process for using version control to handle plugins properly inside a project.
Plugins have binaries associated with them, and binaries are typically not tracked by git (they would be ignored as per the .gitignore file):
GitIgnore file section about Binary Files
Binaries/*
Plugins//Binaries/
larger files, or other assets that do not need to tracked with diffs are managed by LFS
I would think theoretically Plugin Binaries should be tracked with LFS.
And the reason I’m mentioning it is the project will not open properly if the plugin is enabled. It will complain that the plugin is not compatible with the engine version (which isn’t true).
If this is true and technically I should track plugin binaries with LFS what should my .gitattributes file have in it?
The binaries(plugin and game) can be built by other developers - they are redundant and do not need to be checked in. That is why they are in the .gitignore.
If you have artists or other users without Visual Studio, you will need to add the binaries.
But if you have multiple people, you should probably use Perforce instead. (Because of the locking)
If you are solo, then just exclude the binaries and build them as needed.
Yes I understand how the game binaries are built via compilation – but in this case I’m specifically talking about the plugins. When you install a plugin from the asset store does it download binaries as part of that process? And thus does that mean that some plugin binaries can not be built? And that they should be tracked in git differently? In a process such as including them with as LFS type files with gitattributes?