Контроль версий цифрового изображения и файла, который его создал
Я в основном работаю самостоятельно с Блендером. Я создаю смешанный файл и использую его для рендеринга и сохранения изображения. Затем я еще немного поиграюсь, надеюсь, что еще одно изображение сохраню файл Blender, а затем повторю. Я пытаюсь сохранить одинаковые версии и имена файлов для изображений и смешанных файлов, но часто не синхронизируюсь. Что мне нужно сделать, это просмотреть все версии изображений и надежно найти смешанный файл, который его создал.
Кажется, что я мог бы использовать систему контроля версий, такую как git, делая коммит после каждого рендера.
Есть ли браузер изображений, который может просматривать изображения в разных коммитах, или программа просмотра git, которая может показывать изображения?
Или есть лучший способ сделать это?
2 ответа
Хотя git хранит информацию обо всех версиях, он не сохраняет все версии в рабочем дереве одновременно.
И его интерфейс предназначен для показа различий между ревизиями. Проблема в том, что в отличие от текстовых файлов, нет хорошего и общего определения того, что должен означать "diff" между двумя изображениями. Вы могли бы попытаться придумать textconv
опция для файлов jpg. Но мне интересно, будет ли это полезно.
Если вы хотите видеть разные версии рядом, вам, вероятно, следует использовать какую-то схему нумерации и скрипт, чтобы помочь вам в этом. Предположим, у вас есть файл блендера с именем foo.blend
над которым вы работаете. Это ваша рабочая копия. Вы должны написать сценарий, который делает две вещи;
- копия
foo.blend
напримерfoo-027.blend
, если последняя существующая версия в том же каталогеfoo-026.blend
, если нет разницы междуfoo.blend
а такжеfoo-026.blend
, - оказывать
foo-027.blend
напримерfoo-027.jpg
используя блендер в режиме пакетной визуализации.
Вызывайте этот скрипт всякий раз, когда вы хотите сохранить определенную версию. Вы также можете сделать предыдущие ревизии доступными только для чтения.
Python был бы хорошим кандидатом для написания этого скрипта, так как Blender поддерживает скрипты Python. Возможно, вы даже сможете вызвать его из меню или ярлыка.
С достаточным объемом памяти Git в порядке с бинарными файлами. Но Git не хранит файлы в их исходной форме; вместо этого они упакованы в "капли" нечитаемого формата. Таким образом, вам придется проверить старые версии, чтобы иметь их в вашем распоряжении.
Вы можете иметь отдельный каталог для "извлечения" файлов из более старых версий. Скажем, у вас есть репозиторий в каталоге вашей рабочей области.
cd path/to/my/workspace/directory
git --work-tree=/path/to/another/directory checkout <revision> <filenames separated by spaces>
Или из другого каталога /
cd path/to/another/directory
git --git-dir=/path/to/my/workspace/directory checkout <revision>
Теперь ваш каталог рабочей области остается нетронутым, в то время как другой каталог / имеет более старую версию. Теперь вы можете сравнивать и делать все, что хотите.
Конечно, вы можете просто перейти к старой версии в том же каталоге:
git checkout <revision>
# and come back then:
git checkout master
Этот ответ вдохновлен:
git pull пока не в каталоге git
Как мне повторно подключить мой проект к существующему репозиторию GitHub