Versioning setup for houdini plugin

   2641   3   0
User Avatar
Member
5 posts
Joined: Dec. 2018
Offline
Hi, we got some issues with houdini and versioning with my team.
We always have conflicts with files in Assets/HoudiniEngineAssetCache/Working/, and it's really annoying.
What is the purpose of this folder ? Can I ignore it ?
And more generally, it would be nice to have a .gitignore file template somewhere in the Unity documentation.

Thanks !
User Avatar
Member
571 posts
Joined: May 2017
Offline
The HoudiniEngineAssetCache/Working is the location for storing files generated by HDAs when cooking them. These files are necessary when generating textures, terrain, etc, which need to be stored in persistent files, as otherwise the references are lost when saving them in scenes (Unity design). A subfolder for each HDA instance is automatically created when they are created in a Unity scene, and is usually empty until it generates textures and other persistent data. The folder will be deleted if the HDA is never saved in the scene. If it is saved, it will be left even after deleting the HDA in the scene, since there isn't a clean way in Unity to track assets used across the project (in other scenes than active ones, or in prefabs, etc). The folder name is based on the asset's file name, and uniquely created by appending an increasing integer for duplicate folders (i.e. duplicate HDAs).

I would always recommend keeping the entire HoudiniEngineAssetCache in sync in source control (so add folders, commit changes). This should reduce conflicts. But I can see cases where 2 users create the same HDA separately without syncing, save the scene, and when syncing the 2 folder names might clash. In that case, the 2nd user could cancel the sync, open the scene with the HDA, and change the HDA's cache folder name to something else (e.g. HoudiniEngineAssetCache/Working/Tree1 to HoudiniEngineAssetCache/Working/TreeBlah). They also need to change the instantiated HDA's reference to the folder, which is found in the HDA_Data (under the HDA asset gameobject)'s Asset Cache Folder Path field. See attached screenshot. Granted, its not an ideal workaround, and one fix might be to use a uniquely generated folder name.

Similarly, the HoudiniEngineAssetCache/Baked folder is for baked HDAs. This should definitely be added to source control and always updated, since presumably if you baked it, then you are using it in your scenes.

If you are running into other types of issues with this, let me know or submit RFE. Hope that helps.
Edited by seelan - Jan. 12, 2019 09:55:11

Attachments:
heu_assetcachefolder.png (51.8 KB)

User Avatar
Member
5 posts
Joined: Dec. 2018
Offline
Thank you for the details, I understand why we have those conflicts now.

I took note of the workaround, but it could be annoying if two designers are working at the same time.
I think a good solution would be to add the scene name to the HDA folders, or maybe to create one folder per scene in the HoudiniEngineAssetCache/Working directory, and then create the HDA folders into them.

Working on different scenes at the same time is a good way to avoid source control conflicts in Unity, maybe you should adapt the generated files to this kind of pipeline ?

Or maybe we are the only ones to do this kind of thing, and we should change our pipeline !

Anyway, thanks again for the update.
User Avatar
Member
571 posts
Joined: May 2017
Offline
I added an RFE to investigate and apply a solution to reduce folder name conflicts. Most likely solution might be to expose a field in the Plugin Settings for working subfolder names, and perhaps set the default value to the user name. Using scene names might not work so well if its an untitled / unsaved scene.


Anyway, I'll remember to update this thread once its in.
  • Quick Links