数字图像和生成它的文件的版本控制
Version control of a digital image and the file that produced it
我主要靠自己使用 Blender。我创建了一个混合文件并使用它来渲染和保存图像。然后我 fiddle 再渲染另一张图片,希望能保存 Blender 文件,然后重复。我尝试为图像和混合文件保留相同的版本和文件名,但我经常不同步。我需要做的是浏览所有图像版本并可靠地找到生成它的 blend 文件。
这似乎我可以使用版本控制系统,例如 git,在每次渲染后进行提交。
是否有可以查看不同提交中的图像的图像浏览器或可以显示图像的 git 查看器?
或者有更好的方法吗?
有足够的存储空间 space Git 二进制文件没问题。但是 Git 不以原始形式存储文件;相反,它们以 "blobs" 不可读的格式打包。因此,您必须检查旧版本才能使用它们。
您可以为 "retrieve" 旧版本的文件创建一个单独的目录。比方说,您的 workspace 目录中有一个 repo。
cd path/to/my/workspace/directory
git --work-tree=/path/to/another/directory checkout <revision> <filenames separated by spaces>
或来自another/directory:
cd path/to/another/directory
git --git-dir=/path/to/my/workspace/directory checkout <revision>
现在您的工作space 目录保持不变,而another/directory 有旧版本。您现在可以比较并随心所欲。
当然,您可以在同一目录中检出旧版本:
git checkout <revision>
# and come back then:
git checkout master
此答案的灵感来自:
git pull while not in a git directory
虽然git保留所有版本的信息,但它不会同时保留工作树中的所有版本。
其界面旨在显示修订之间的差异。
问题是,与文本文件不同,对于两个图像之间的 "diff" 应该表示什么,没有好的和通用的定义。您可以尝试为 jpg 文件设计一个 textconv
选项。但我想知道这是否有用。
如果您希望能够并排查看不同的版本,您可能应该使用某种编号方案和脚本来帮助您。
假设您正在处理一个名为 foo.blend
的搅拌机文件。这是你的工作副本。您应该编写一个脚本来做两件事;
- 复制
foo.blend
到例如foo-027.blend
,如果同一目录中最后一个存在的版本是foo-026.blend
,除非foo.blend
和foo-026.blend
没有区别。
- 渲染
foo-027.blend
例如foo-027.jpg
在批量渲染模式下使用 blender。
每当你想保存某个版本时调用这个脚本。您可能还想将以前的修订设为只读。
Python 是写这个脚本的好人选,因为 blender 支持 Python 脚本。您甚至可以从菜单或快捷方式调用它。
我主要靠自己使用 Blender。我创建了一个混合文件并使用它来渲染和保存图像。然后我 fiddle 再渲染另一张图片,希望能保存 Blender 文件,然后重复。我尝试为图像和混合文件保留相同的版本和文件名,但我经常不同步。我需要做的是浏览所有图像版本并可靠地找到生成它的 blend 文件。
这似乎我可以使用版本控制系统,例如 git,在每次渲染后进行提交。
是否有可以查看不同提交中的图像的图像浏览器或可以显示图像的 git 查看器?
或者有更好的方法吗?
有足够的存储空间 space Git 二进制文件没问题。但是 Git 不以原始形式存储文件;相反,它们以 "blobs" 不可读的格式打包。因此,您必须检查旧版本才能使用它们。
您可以为 "retrieve" 旧版本的文件创建一个单独的目录。比方说,您的 workspace 目录中有一个 repo。
cd path/to/my/workspace/directory
git --work-tree=/path/to/another/directory checkout <revision> <filenames separated by spaces>
或来自another/directory:
cd path/to/another/directory
git --git-dir=/path/to/my/workspace/directory checkout <revision>
现在您的工作space 目录保持不变,而another/directory 有旧版本。您现在可以比较并随心所欲。
当然,您可以在同一目录中检出旧版本:
git checkout <revision>
# and come back then:
git checkout master
此答案的灵感来自:
git pull while not in a git directory
虽然git保留所有版本的信息,但它不会同时保留工作树中的所有版本。
其界面旨在显示修订之间的差异。
问题是,与文本文件不同,对于两个图像之间的 "diff" 应该表示什么,没有好的和通用的定义。您可以尝试为 jpg 文件设计一个 textconv
选项。但我想知道这是否有用。
如果您希望能够并排查看不同的版本,您可能应该使用某种编号方案和脚本来帮助您。
假设您正在处理一个名为 foo.blend
的搅拌机文件。这是你的工作副本。您应该编写一个脚本来做两件事;
- 复制
foo.blend
到例如foo-027.blend
,如果同一目录中最后一个存在的版本是foo-026.blend
,除非foo.blend
和foo-026.blend
没有区别。 - 渲染
foo-027.blend
例如foo-027.jpg
在批量渲染模式下使用 blender。
每当你想保存某个版本时调用这个脚本。您可能还想将以前的修订设为只读。
Python 是写这个脚本的好人选,因为 blender 支持 Python 脚本。您甚至可以从菜单或快捷方式调用它。