← All ideas
  • Published 11 Jun 2021

Diffable blend files

Since many time TDs hope for 3d format that can be handled by a version control system (git,svn,mercurial,...) this could be a major improvment for 3d data managment. Blend files with his datablock approach seem to be a format that could handle this (autosaves, even on big scenes, are already pretty much transparent today thanks to that datablock system) Make .blend file (or at worst specific publish files) compatible with existent VCS (or developing simple dedicated VCS for 3d scenes) should be a killer function that can accelerates blender adoption in studios.

0%

Development Status: Open

Upvote 0 Downvote 0
3dsman
11 Jun 2021

4 Comments

testure

not really sure I understand the point of such an endeavor. the only thing you need to make a file "diffable" is for it to be plaintext and not binary. Have you ever tried diffing an ascii maya file or FBX? it is extremely pointless. There is some benefit to a plain text format because if a file becomes corrupted it's more easily fixed by hand, but in all my years of using Blender I have not ever run across the need to resort to such measures for data recovery.

TLDR: there's not much value in this imo

Lauloque

* @testure * Sure having ascii files would also allow for possible manual fix in file corruptions, but that would most importantly allow diff comparisons and make the use of some tools like git or shotgun deeper than just managing the latest edited files. Which I think is the point of this thread?

testure

* @-L0Lock- * in practice though it doesn't work that way- there's so much semantic 'nonsense' inside a file format like this that it essentially ruins any chance of ever being able to construct diffable landmarks. You would need a custom diff solution that is specifically written to find landmarks (like the start of datablocks, etc).

Epic went through all of this with Blueprint- it's technically a plaintext format, but it's completely undiffable using off the shelf tools. They ended up needing to make a custom 'visual diff' solution that is built into UE4.

3dsman Author

* @testure * i think you're right, it will need a custom diff tool. I don't know if this diff tool could be used seamlessly by standard VCS I tried to use git on maya ASCII files and you're right the result is mostly bad but maya move their node descriptions in saved file and git diff is made for stable files. With a custom diff tool it should be possible to make it work on actual binary .blend. The actual datablock system should simplify his development