ZBrushCentral

Version control and Zbrush

Been a while since I posted… :slight_smile:

Anyways, ya know how you hate it when Zbrush eats a model, or you want to go back in time, and throw away your work because it just isn’t working?

Yeah, it’s nice that there are some plugins that can save sequential files, but these can start to take up a lot of space.

Subversion is a pain, and slow with large binaries. But at work, I’ve started using Git for my java code, and at home, I decided to throw my ztools, objs, stls and moi files at it.

First off, I had about 1.25Mb files, once I checked them into a git repo, the size was shrunk down to 500mb. Git stores versions as differences, and compresses them further. The size of a ‘checkout’ is the size of the files before storage. but If I wanted to back up my work, I’d just need to ensure that everything is checked in, and backup the .git directory, which is a lot smaller.

It’s very easy to branch in git. So if I want to tweak a file, and possibly throw it away, I create a branch, and then work on the file in that branch. If I like it, I can merge it back into my main ‘master’ branch.

If I want to save my progress in Zbrush, I just save the file, and then check it in. Git comes with very powerful history tools. So if you make lots of little commits, it’s possible to collapse the changes down into logically saner chunks. You can be quick-n-dirty, and then clean up your mess.

And you can get even fancier. Git is decentralized, so you can publish and pull from other people’s repos. There is no way to ‘lock’ a file in git though, but you can create a seperate branch to track others, and then work out whose changes ‘matter’. :slight_smile:

If there is enough interest, I’ll type up a tutorial. Git is somewhat linux centric, but it has windows support through MinGW. Mercurial is similar, and works natively on windows, but I know git better.

Interesting topic. I worked on a consulting project and warned from the start not to use subversion, and in the end subversion and the choice of a couple more tools of that caliber sunk that project… Now… yes… show us how this works. I have a good idea about what you are up to but I bet 90% of the artists here do not really know what they miss and thus won’t ask… So I ask for all of us: Please make a little tut!

Asset management is a big deal out there and your creative approach will enable the small budget to utilize a more methodological approach to the chaos on the disk.

:+1: :+1: :+1:
Lemo

when I work on a project, I always just save frequent milestones… and if things are going well, I go back later and selectively delete some

It’s a pain, though, and I have lost large chunks of work due to bad judgment a couple times.

What you’re describing sounds really different and possibly a major breakthrough in workflow for guys like me, though I’m still not sure I get the big picture in a technical sense. Please tell me more :slight_smile:

Ok, cool then, sounds like people are interested. I will try and write up a tutorial soon. :slight_smile:

Yeah, it’s too bad this sort of save history is not fully integrated with the work-flow. It would be great to be in ZBrush and have the ability to merge back to previous versions, take parts as layers and groups from the history of the previous versions and bring them forward, take pieces out, or combine it. This is kind of lacking in most 3d software but it would be really nice to have the functionality.

The ability to have some mesh-topology-based-search to merge diffs would be the nicest. I thought about trying to write a plug like this for Maya but it got added to my long list of idea/to-do items… Then it started getting into the Graph Isomorphism (Clay Mathematics Institute) million dollar problem… Google it.

Well, nothing that fancy… :wink:

I mean, you could go back in time, copy the old file to a diff file name, then go back to recent work, load both files, and bring stuff over…

As you mentioned, making something much more intelligent gets you into NP complete problems. Mainly, if you just preserve your work history, that’s good enough for a lot of things.