Keep Old Files from Corrupting
Since new versions of Blender tend to break old files, would it be possible to have some sort of warning come up before the file it updated? In Adobe After Effects, if you try to open an old file in a new version of After Effects, the software will duplicate the file before updating it, and if anything breaks you can open the old file in the old version of the software. Could this functionality be added to Blender as well? If not, is there a way for the Blender version to be included in the file name?
I recently had to reopen a project that I had worked on a while ago. And since I'm used to how After Effects handles versions, I didn't think anything about it, and opened it in a new version of Blender that broke the weight painting. I only needed to make a small edit, but since file hadn't been duplicated I needed to try to match the old weighting quickly before I could render out the change.
13 Comments
I personally don't like my software making files that I didn't tell it to make that clutter my folders, and neither do I like my filenames being bloated with version numbers.
I think the only thing we need is a warning when you open the file that it was saved with an older version and will be updated. Then, if the user wants, they can always Save As to create a new file for the new version instead of overwriting the old one.
I wouldn't mind @thinsoldier's suggestion of letting the user manually associate files with specific versions in the file extension, as long as the software doesn't do it automatically.
The problem is that the file is converted and 'saved' when it is opened, and there is no way to undo the change. That means that Save As will not keep the old version since the old version is 'corrupted' when it is opened.
The words in quotes aren't the right words, but I don't know enough about coding to use the correct terms. I'm a bigger fan of a warning that tells you that your file was created in an older version of Blender myself, especially if it could mention the versions.
I wonder if the new converted file could be put in the autosave folder initially instead of immediately overwriting the file on disk, or if you had the option to open in the previous version or the latest version. Even with these options, if it still immediately overwrites the old version, I would like an option to duplicate and open.
I don't like extra files either, but if it's the only way to avoid irreversible destructive changes, I'll take it.
Sorry, looks like I took so long to reply to one of your other comments that I didn't see this. See below.
projects.blender.org/blender/blender/issues/109151
Correct me if I'm wrong, but that proposal seems to be for forward compatibility, whereas this proposal is about backwards compatibility. Does that proposal also plan on adding a warning when saving with a newer version than the file was last saved with?
Blender is very quiet about overwriting on saves, anyways. And I agree this has to change. But in this case, while annoying to lose data, I find this to be absolutely expected behaviour. Unlike After effects, Blender does not operate on a project basis but on a file level (yet).
I am very much for a way of displaying the Blender Version in the File Browser, maybe. After all it IS just an entry in the file header of each Blender File.
We need different file name extensions that map to specific blender versions and versions that don't match the specified version should complain if you try to save the file again with the wrong version. If you insist on saving it should save it with a file extension that matches the version that saved it.
.blend = any version will open it but blender will inform you that it was last saved with 3.51 and not its current version 4.0 .blend3 = users can manually associate this file extension with blender 3.5. We'd need an update to 3.5 to recognize this extension and save files with this extension .blend4 = opens with blender 4.x, blender 3.x will refuse to open it
Because I currently have 16 instances of blender on my system I would wish for more fine grained file name extension based versioning.
.blend353 files should only open in Blender 3.5.3
.blend352 files should only open in Blender 3.5.2
.blend4x files should open in any version after 4.0
.blend403 files should only open in Blender 4.0.3
I don't know enough about coding to know what a good solution could be. But I'm all for killing two birds with one stone. I'd just like Blender to warn me before making an irreversible or destructive change. Is the Blender version saved anywhere in the .blend already?
python console:
bpy.data.versionYeap, on opening there if info about version update (as far as i remember), but there is no warning on save.
It's a problem because Blender converts the file when it opens in a new version, and even if you close without saving, the damage has already been done, and you won't be able to go back unless you have a duplicate file somewhere. And since the autosave feature works so well with Blender, I don't have a folder of old versions like I need with other software.
@Raymond-Lauer Are you sure about that? Entering bpy.data.version in the python console will output the version of the current file.
I opened a file from 3.2 in 3.5 and it says 3.2. Close and reopen, and it still says 3.2. I then saved the file, closed and reopened and it said 3.5.
What makes you think that it converts the file on open and saves the changes? Maybe when this happened to you before, it autosaved the file or something? I might be wrong, though, my testing wasn't very extensive...
I thought I knew what I had done, but evidently I had it backwards. The only way I get the same result is by saving in a newer version and opening in an older version. I'll see if I can track down how I messed up my files, because I managed to mess up a project at work and on my home computer in the same way in the same month.