Houdini USD version controlled publishing

Please CMIIW, I’m trying to understand effcient way of handling version controlled USD files in a studio.

explicit layers: it has there own savepath - its manual(artist) responsibility of saving layers and “maintaining versions” by his own.

Implicit layers: Houdini defines the path based on the node paths. This will overwrite the existing usds everytime we publish(If its not flatten).

Is there any better way of copying the dependent usd’s to publish folders and remap them? so, I can track the versions and go back to previous version if needed In both the cases. for simple things like (materials,lights,cameras we will flatten) when it comes to the geoemetry. what is the effecient way of keeping version controls?

For simple geometry we will flatten and have version control(like lights, materials, cameras)

For bigger fx gemetry data, we can do Clipsquence(explicitpaths here),

wondering about the mid size gemetry deformation data?

As far as I know, there are cases where publish plugins detect dependant layers, copy and remap them like in textures and Houdini’s component builder. But I’m not sure if it’s generic.

Tagging @BigRoy for visibility.

oh right now the publish plugins are not copying any files, if they are flattened usd file is carrying the data, if they have implicit or explicit set, it doesn’t copy it. I think the published usd just refers the exported paths.

If you render a USD ROP with explicit layer save paths, then those layers would become separate products of their own at publish time - and hence become ‘versions’ of their own. The code doing that is here.

So perhaps you can investigate the logs of the Collect USD Layers plug-in.

Maybe it’s a good idea to share a simple Houdini HIP file here that’s not working as intended along with your publish log. It’d allow us, or the community, to chime in with better feedback.

Note however that this logic does not work for “geometry clip” sequences or “Value Clips”. This open tickets exists about that.

Sorry, My bad, its working, its a issue on our side.

Good to know.
Could you elaborate on the issue and the solution? It might be useful for future reference.