Jump to content

Digital Asset versioning workflow?


dpap

Recommended Posts

Let's say I've made an Houdini Digital Asset  called e.g "Tool v1.0" and I've saved it in.  ProjectX.otl .

When I make a change in my H.D.A. I want to save it as "Tool v1.1" but not delete the "Tool v1.0" .

How can I do that ?

If I just "Save  Operator Type" the old version goes away..

Link to comment
Share on other sites

You can save it as ProjectX1.0.otl and ProjectX1.1.otl, but that means that you can only have either version 1.0 or 1.1 of the HDA used in the same .hip file.

 

If you want both versions to be used in the same .hip file, then you need to version your HDA using namespaces.

http://www.sidefx.com/docs/houdini13.0/assets/namespaces

Link to comment
Share on other sites

Thank you for your answer Edward, I didn't know about Namespaces in HDAs so that good info!

 

However I haven't managed to switch between versions  :(

 

1) I make tool using namespaces  named  "personal:: fooTool::1.0"

 

2) after "Allow Editing of Contents" I make some changes in my HDA

 

3) I Create a new version of an asset as the help says naming the new one "personal:: fooTool::1.1"

 

4) At some point I want to go back to my version 1.0, so I go to the OperatorTypeManager window and right click on v1.0 and choose  "Use this definition" 

 

but always uses v1.1!!!

 

 

How do I change the version that I want to be used? Am I doing something  wrong?

 

I also tried "Clean Definition Preference" but still nothing...

Link to comment
Share on other sites

When you use namespaces, your HDA is effectively named differently. It's actually more intended for when you have drastically different versions that have very different top level parameters. So if you want to switch from one versioned namespace to another, I think you need to use Change Operator Type. 

  • Like 1
Link to comment
Share on other sites

Thank you Edward!

 

You propably ment  "Operator Type Bar: Display......." and now I can actually change between versions :) !

 

One more question ,just to see if this is by desing or a bug:

 

1) You have "Tool 1.0" (lets say a just simple box with scale =1)  you change it (for example set scale= 2)and you deside that you want to save the changes as new version

 

2) You go and make the Tool 2.0" in the Operator Type Manager  .The Operator Type Bar changes to Tool 2.0 . Everything cool until now!

 

3)  If you press "Save Operator Type"  the Operator Type Bar changes to Tool 1.0 !!!

 

And what you get is Tool 1.0 with scale = 2  and  Tool 2.0 with scale = 1  which is the reverse order  :wacko: ???????

 

And "Use this definition " never works! If you have 3 versions and say I want to use the second if you make it green by "Use this definition " , the new versions come as version three  :angry:

Edited by dpap
Link to comment
Share on other sites

I actually meant to right-click on the node and choose Change Operator Type. http://www.sidefx.com/docs/houdini13.0/ref/windows/changetype

 

If it's showing up under different names in the Operator Type Bar, then I think only the label is changing and not the actual internal name with namespacing perhaps? I'm not sure and I don't have Houdini handy to try it out.

 

Hmm ... how are you making it "Tool 2.0" in the Operator Type Manager? In the namespace documentation link I posted above, it says to make a new copy of your asset under a different namespace version. So I think the original node that was using "Tool 1.0" is still using "Tool 1.0". If it's showing "Tool 2.0", then that's probably a bug, and so when you save it again, it correctly shows it as "Tool 1.0" again. So I think that's why when you create a new "Tool 1.0" node, it has the new scale value while "Tool 2.0" has the old scale value, because it was never modified in the first place.

Link to comment
Share on other sites

it says to make a new copy of your asset under a different namespace version

 

 yeahp that's what I did.

 

So I think the original node that was using "Tool 1.0" is still using "Tool 1.0". If it's showing "Tool 2.0", then that's probably a bug, and so when you save it again, it correctly shows it as "Tool 1.0" again. So I think that's why when you create a new "Tool 1.0" node, it has the new scale value while "Tool 2.0" has the old scale value, because it was never modified in the first place.

 

 I think that your diagnosis is right! It was propably a dispaly bug because I tried it again today and after making a copy named Tool 2.0 in the Operator Type Manager the  bar on the HDA showed Tool 1.0.

 

 

"Change Operator Type" actually does the same thing as changing the version from the drop down menu on the asset as far as I can see. 

 

But the problem isn't how to switch between versions. It's how to save the changes on an altered asset with an incremented version number!

 

This is not possible right now!

 

There should be an option to "Save Asset's current state into new Copy/version"

 

Except If am missing something...

Link to comment
Share on other sites

That's what I ended up doing at the end...

 

I still believe it's bad workflow because it means that you have to always remember to create a new version before you press  "Allow editing of content". 

 

Many times you dive into an asset just to test different values, to see if thinsg work better. It's not sure that you'll want to save them. So you just create a new version just in case...

 

I hope I am not exaggerating ...

 

Btw in the "Type Operator Manager" the right click, "Copy.." and "Duplicate.."  actually do the same exact thing. I dont get it why both options are there.... 

 

Aaaaahhh... It would be just better if I just shut up....

 

Thanks for your help Edward!

Link to comment
Share on other sites

To avoid accidental disruptive changes, I think the traditional workflow is to separate out your "test" environment from your "production" environment. In this workflow, you don't change the HDA in your "production" otl file. You make a copy of the .otl file itself use that definition in your Houdini session for changes. When you know you want to permanently keep those changes to the HDA, you increment the version and copy the new .otl on top of the old .otl file.

 

In large studios, this separation is typically maintained with different HOUDINI_OTLSCAN_PATH (or the older HOUDINI_OTL_PATH) environment variables and the .otl files are separately managed with "asset manager" software either built in-house, some third-party solution, or sometimes simply with regular SCMs like subversion, mercurial, git, etc. So what happens is that you don't commit your change into the asset manager until you think the .otl file is in a good shape that you want to use. Then if you decide that you need to go back to an older version, you just get the asset manager to revert to an older version of the .otl file.

 

When the OTL/HDA concept was added in Houdini 6, this was the intended workflow where "versioning" was supposed to handled completely outside of Houdini itself. Relatively recently, these new versioning workflows have been added to support different ways of updating scene files with newer HDAs. However, I don't think they replace good external file version control.

 

I would perhaps give mercurial a try and see how much mileage you get out of it for a while since it's so easy to use.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...