Every blender file is UNIQUE
I suspect that internally we already have this. However, here's the idea:
- Blender file should have internal UUID which will be set upon first save, distinct and unique.
Reason: often I have to deal with comparing files which may or may not be copied. Even if I save anything hidden in custom property, still there is a way of detect that and copy. Having UUID hardcoded inside, independently and once for all, will allow me to detect whether or not some files were at some given point in time identical - ie. somebody copied somebody's work.
9 Comments
AFAIK good old checksum can already do that for any file, on any OS, at any time you need and without needing to develop another thing in a specific software:
It can even make the difference with the same scene saved in two different files.
Have you never noticed those "MD5" or "SHA256" codes often provided next to file download links? It's for you to make sure you downloaded the intended file and undamaged.
I think poster doesn't mean exact identical files, but rather if fileB is based on fileA (with only slight modifications). Checksum wouldn't be identical after a save occurred.
Ride
Thank you all for answers. I know how to check the identity of two files, of course. BUT I need the possibility to detect files origin, even if file was heavily changed.
The most important use case is when I give a dedicated assignments to my students (who sometimes cheats), and they work on them for some time. After due time, I will check all received files (which all will be very different) whether or not some of them have identical UUIDs. So such a number should be created only once when file is created after 'File->New', and kept inside forever. This identification will be very helpful. Now I can try to solve this problem by manually creating custom properties, etc. which is cumbersome. UUID in file will allow students to copy it for backup versions, and still keep the same exactly identity.
Still, your idea won't solve your problem. It will only give you a false sense of security. What about students who help each other out in basic steps like scene setup but do the rest themselves? What if students use append or copy instead of just using the old file? And why don't you trust your students enough? I mean if you write a thesis or term paper it could also be written by friends or even some random guy online. And now last but not least: Students will know, trust me...and after they know they will work-out a way to fool you nontheless, e.g. deleting the UUID from the file for blender to recreate or modifying it. If you need full traceability, then you have to use external software on the pc itself to map user activity for a specific time frame.
You're right and I'm well aware of that. The UUID originality system is needed only for quick and sudden recaps. Students can help each other and cooperate, that's even better. They can't however send somebody's work as their own. I wish to see which files were copied from who. And of course this will not solve anything when they start to import/append and I know that. However, I'm not going to rely on that UUIDs for the whole course, and they are needed just for surprise tests and quick and dirty checking. Being able to 'magically' detect cheats is also important from psychological point of view. That's often more than enough. Last year I did manually such a test - I've added custom property with corresponding name to each file, and they got their assignments in personal files (which were identical to them). Task was very easy. To my surprise even with this first test one person cheated. And sad point was that I knew those students because they often worked with me in my lab. So unpleasant realization. Unfortunately years of bad school system destroyed their innocence and taught them to cheat instead to take some effort and I can't trust them fully. For that reason I need to drop such a test once or twice per semester.
SHA256
Tbh i don't think this feature may be very helpful.
Read my other answer here with a very good use case.