Czy oprogramowanie do kontroli wersji służy do zdjęć?

34

Jestem programistą z zamiłowania i zawodowo, i spędzam dużo czasu w narzędziach programistycznych ... Jednym z bardziej przydatnych typów narzędzi programistycznych jest kontrola wersji , a dla niewtajemniczonych działa on w następujący sposób:

  • Utwórz plik
  • Rozpocznij pracę nad plikiem
  • Sprawdź plik (utwórz jego wersję 1)
  • Otwórz plik i edytuj ponownie
  • Sprawdź ponownie (wersja 2)
  • Uświadom sobie, że usunąłeś coś ważnego z wersji 1, cofnij się w czasie, pobierz rzecz, którą usunąłeś ...
  • ...
  • Zysk...

W każdym razie zastanawiam się, czy do zdjęć używa się czegoś podobnego? Zasadniczo myślałem o czymś w rodzaju:

  • Importuj zdjęcia (V1).
  • Zacznij oznaczać zdjęcia ( samochody boczne V2 ... XMP powinny się tylko naprawdę zmienić tutaj).
  • Zacznij dodawać gwiazdki, więcej tagów (V3)
  • Rozpocznij dostosowywanie niektórych ustawień (V4 +)

Dzięki powyższemu przepływowi powinieneś być w stanie śledzić o wiele więcej zmian ... i dać ci jakąś strategię tworzenia kopii zapasowych ...

TiernanO
źródło

Odpowiedzi:

32

Aplikacje do fotograficznego przepływu pracy, takie jak Adobe Lightroom i Apple Aperture, zapewniają tego rodzaju historię jako część ich funkcjonalności.

Kiedy edytujesz w nich plik RAW, oryginalne zdjęcie nigdy nie jest zmieniane. Zamiast tego są zapisywane osobno jako „instrukcje”. W ten sposób możesz zobaczyć historię wszystkich dokonanych zmian i jednym kliknięciem myszy wrócić do dowolnego poprzedniego punktu w czasie, nie niszcząc.

Jeśli korzystasz tylko z Photoshopa, tak się nie dzieje i musisz za każdym razem ręcznie zapisać różne wersje swojego zdjęcia.

(Zgaduję, że nie ma powodu, dla którego nie można używać repozytorium SVN dla zdjęć? Tzn. Plików binarnych?)

Mikrofon
źródło
1
Lightroom przechowuje historię sesji edytorskiej, ale czy ta historia się utrzymuje, jeśli zamkniesz Lightroom i ponownie otworzysz obraz z katalogu w późniejszym terminie? Wiem, że zawsze masz oryginalny plik RAW, ale czy możesz w dowolnym momencie uzyskać wersję pomiędzy oryginałem a najnowszą wersją?
MikeW
2
Tak! Zostanie usunięty tylko wtedy, gdy usuniesz obraz z katalogu i dodasz go ponownie. Wtedy zaczynasz od zera. Ale poza tym historia jest utrzymywana.
Mike
Digikam zapewnia tę samą funkcjonalność instrukcji.
Unapiedra,
4
Oprócz dziennika historii Lightroom pozwala utworzyć „migawkę”, która pozwala przypisać etykietę do bieżących ustawień programistycznych i łatwo do niej wrócić. Coś w stylu tagowania w SVN. lightroomkillertips.com/2009/whats-a-lightroom-snapshot Niektóre narzędzia, takie jak wtyczki Jeffreya Friedla, można skonfigurować tak, aby automatycznie tworzyły migawkę za każdym razem, gdy eksportujesz do usług takich jak Flickr. regex.info/blog/lightroom-goodies [Napisałem to jednocześnie z fzwo ... przepraszam za jakąkolwiek redundancję z jego komentarzem.]
coneslayer
2
Jeśli chcesz pełnej funkcjonalności kontroli wersji, możesz po prostu kontrolować źródła plików pomocniczych, tak jak każdy inny plik (są one wewnętrznie znacznikiem). Wówczas nie jesteś ograniczony do historii, ale możesz tworzyć „gałęzie” z całkowicie różnymi rodzajami efektów, jeśli chcesz. Oprogramowanie powinno umożliwiać zastosowanie nowego pliku sidecar do dowolnego obrazu RAW, przynajmniej moje.
rumtscho,
8

Zmiany wirtualne

Używam Lightroom v3 i ten produkt ma nieniszczący przepływ pracy. To pozwala mi dokonywać zmian w moich obrazach w wirtualnym sensie.

Kontrola wersji

Następnie używam SVN, aby zachować kontrolę nad katalogiem Lightroom (tylko prosty SQLite DB), co w zasadzie daje mi kontrolę wersji nad wirtualnymi zmianami.

Nadmiar

Mam konfigurację RAID 6, która utrzymuje nośnik w celu zapewnienia redundancji i cykl napędów USB jako rotacyjny system zapasowy.


Chociaż może to nie działać dla wszystkich, działa dla mnie. Dodatkowo pozwala mi korzystać z kilku maszyn i mieć ten sam katalog LR (używając cyklu zatwierdzania / aktualizacji svn).

Fragment postu na blogu Tutaj :

Mam Lightroom na kilku komputerach z serwerem opartym na RAID 6 i starałem się zsynchronizować wszystko, aby ułatwić mi życie między komputerami.

Po kilku decyzjach przeniosłem moje zdjęcia do folderu \ server \ share, a katalog jest śledzony przez subversion! Dzięki temu wszystko między maszynami jest o wiele łatwiejsze.

To, co zrobiłem, to utworzenie repozytorium, które zawiera katalog Lightroom. Dodałem wyjątek, aby nie dołączać plików podglądu, ponieważ subversion ma z nimi pewne problemy.

Teraz moje kroki są następujące:

Update subversion
Run Lightroom
Import pictures
Move images between local drive import and the media file share
Make any required changes
Exit lightroom
Commit catalog
That's it!
Wayne
źródło
Fajne. Twój serwer SVN przechowuje tylko katalog, a serwer plików zawiera prawdziwe obrazy ... a katalog wskazuje na pliki na serwerze? poprawny? Może to wypróbuję.
TiernanO
@TiernanO - poprawnie. Tak skonfigurowałem swoją infrastrukturę / przepływ pracy
Wayne,
to super. Obecnie importuję około 200 GB zdjęć teraz do jednego katalogu Lightroom i zacznę bawić się tym pomysłem ... mam nadzieję, że zrobi to, czego potrzebuję! Dzięki za wskazówkę!
TiernanO
@Tierno - Powinieneś się z tym pogodzić. Wierzę, że wszelkie napotkane ograniczenia będą wokół ograniczeń SQLite, które jako programista z pewnością możesz zbadać. (FYI: Menedżer SQLite dla przeglądarki Firefox świetnie sprawdza się w tym katalogu)
Wayne
@TiernanO - byłby zainteresowany wiedząc, czy to rzeczywiście praca dla Ciebie tak jak miało to miejsce dla mnie
Wayne
4

Myślę, że możesz chcieć użyć git-annex (do zarządzania zdjęciami i kopiami zapasowymi) wraz z pilotem bup (do kontroli wersji). Aktualnie sam się nad tym zastanawiam.

git-annex śledzi twoje pliki za pomocą git, wprowadzając dowiązania symboliczne do twoich plików. Same pliki nie są dodawane do repozytorium. Gdy zdjęcia zostaną „załączone”, jeśli sklonujesz repozytorium (na przykład na zewnętrznym dysku twardym), możesz poprosić klon o odzyskanie plików (lub ich części) powiązanych z repozytorium na dysku twardym. git-annex śledzi, które repozytorium zawiera kopię każdego pliku. W ten sposób możesz podzielić kopię zapasową na dwa małe dyski twarde i mieć pewność, że żadne zdjęcie nie zostanie zapomniane.

Powiedz, że jesteś w podróży. Zrobiłeś zdjęcia, które zostały skopiowane na laptopa. Możesz sklonować repozytorium git, które znajduje się na twoim serwerze ssh w domu, zsynchronizować z nim, dodać lokalne zdjęcia do załącznika git do swojej kolekcji i odesłać zmiany z powrotem na serwer. Następnie wypychasz same pliki.

git-Annex śledzi zmiany w twojej kolekcji, ale zachowuje tylko ostatnią wersję twoich zdjęć. W celu wersjonowania plików możesz dodać specjalny pilot BUP do swojego repozytorium git-annex. Nie zajrzałem jeszcze w to, ponieważ nie jestem pewien, czy go potrzebuję, ale powinien zrobić to, co chcesz. Zobacz to lub tamto .

Barsanuphe
źródło
zredagowałem moją odpowiedź.
baryanup
Ponadto twórca git-annexe obecnie przygotowuje kickstarter, aby ułatwić osobom mniej technicznie skłonnym.
Barsanup
2

Używam Lightroom do edycji obrazów i przechowywania historii wersji. Jeśli chcesz korzystać z Photoshopa, kontrola wersji jest prawie wbudowana: Adobe Drive i Version Cue. Myślę, że Version Cue jest tylko częścią Creative Suite, FYI.

Dan Wolfgang
źródło
2

Pixel Novel podłącza się do Photo Shop i współpracuje z wszystkimi serwerami Subversion, które już masz lub myślę, że możesz kupić od nich repozytorium.

http://pixelnovel.com/

Nazywają to „kontrolą wersji dla projektantów”

BZink
źródło
2

Używam Photoshopa i Adobe Camera Raw zamiast Lightrooma, więc używam kontroli wersji dla plików XMP, które zapisują moje surowe ustawienia konwersji w celu śledzenia zmian. Działa to naprawdę dobrze, ponieważ pliki XMP to tylko XML. Przydatne jest wykonanie najpierw wszystkich korekt kolorów, sprawdzenie plików XMP, a następnie przycięcie do niestandardowych proporcji. W ten sposób mogę szybko powrócić do wersji niekadrowanej, jeśli muszę wydrukować obrazy w oryginalnym formacie 3x2.

Wiem, że Photoshop ma wbudowany system śledzenia wersji, ale chodzi o użycie narzędzi, które znam lepiej. Istnieją inne przydatne narzędzia do kodowania, takie jak skrypty kompilacji / automatyzacja kompilacji. Mogę na przykład wydać jedno polecenie, aby „zbudować” zestaw zdjęć przy użyciu nieopracowanych plików XMP przeznaczonych do drukowania, które przekonwertują nazwę procesu i wyprowadzą wszystkie obrazy z zestawu. To naprawdę proste, jeśli już wiesz, jak to zrobić dla oprogramowania!

Możesz dodać pliki binarne do repozytorium, ale wymaga to dużo miejsca i nie dostajesz żadnych użytecznych informacji o różnicach podczas porównywania różnych wersji.

Odnosi się to do regularnych nieprzetworzonych konwersji, ustawiania ekspozycji, balansu kolorów itp. W przypadku bardziej zaangażowanej pracy w Photoshopie robię tyle, ile mogę, nieniszcząc, dzięki warstwom dopasowania i inteligentnym filtrom, ale jeszcze nie doszedłem do punktu, w którym mogę wszystko nieniszczące, więc na razie zapisuję kilka wersji pliku .PSD.

Matt Grum
źródło
możesz ustawić Lightroom na używanie plików XMPP ... użyłem tego wcześniej i działa świetnie.
TiernanO
2

Jestem również programistą i próbowałem używać Git i SVN do dużych plików RAW i XMP, aby zsynchronizować moje zdjęcia między dyskami wymiennymi i wersją XMP. Było to nieznośnie wolne i spowolniło się w miarę dodawania kolejnych plików. Używam Lightroom do historii, więc wróciłem do rsync.

Teraz zajmuję się także aneksem git i jak na razie jest miło i szybko. Ma również tę dodatkową zaletę, że sumuje sumę kontrolną każdego pliku RAW, dzięki czemu można sprawdzić, czy zły HD pomieszał twoje zdjęcia od czasu importu. Jest to dla mnie ogromna korzyść, ponieważ mogę przetestować swoje kopie zapasowe, aby upewnić się, że nie uległy degradacji w wyniku kopiowania / gnicia bitów. Planuję wersjonować tylko XMP i załączać RAW. git-annex może wykonać zadanie polegające na tym, aby wiedzieć, gdzie są rzeczy, i mogę być pewien, że wszystko jest na moim serwerze, którego kopię zapasową wykonuję, a także mam kopię roboczą na moim laptopie, jeśli chcę.

Możesz też mieć pilota do Amazon Glacier, więc przeczytałem, ale jeszcze tego nie wypróbowałem.

Adam Watkins
źródło
1

Sprawdź nasze Daminion. To oprogramowanie do zarządzania zdjęciami (przyjazne dla wielu użytkowników), które obsługuje kontrolę wersji zarchiwizowanych zdjęć i innych formatów multimediów.

Kontrola wersji Daminion

Wersja Daminion dla jednego użytkownika jest bezpłatna, więc możesz ją pobrać i sprawdzić już teraz .

Murat - oprogramowanie Daminion
źródło
14
Cześć Murat! Jesteś już od jakiegoś czasu, a twoje posty na Daminion są na ogół na temat i pomocne, a także zawierają odpowiednie zrzeczenie się przynależności. Ale nie mogę nie zauważyć, że wszystkie twoje odpowiedzi sugerują wypróbowanie Daminion, a z FAQ : „Jeśli ogromny procent twoich postów zawiera wzmiankę o twoim produkcie lub stronie internetowej, prawdopodobnie jesteś tutaj z niewłaściwych powodów . ” Proszę rozważyć napisanie odpowiedzi na pytania niezwiązane z produktem.
mattdm
Dzięki za wyjaśnienie, Matt. Nie ma problemu. Ale jak prawidłowo zauważyłeś, wszystkie moje posty zawierają pomocne odpowiedzi na pytania.
Murat - Daminion Software
0

Ja nie i prawdopodobnie nigdy nie będę używał kontroli wersji źródłowej, takiej jak Git lub SVN, ze względu na sam rozmiar zaangażowanych plików. Każdy nieprzetworzony plik ma 20-30 MB, a zmiany często dotykają każdego piksela na całym obrazie, zmniejszając skuteczność samego „śledzenia zmian”.

W przypadku pojedynczego obrazu z łatwością zobaczyłem repozytorium SVN o wielkości 200 MB zamiast 60 MB, gdybym tylko miał zapisać kopię oryginału i kopię ostatecznego obrazu.

Xeoncross
źródło
3
jeśli używasz plików RAW, nie powinieneś zmieniać rzeczywistego obrazu RAW, tylko boczny samochód XMP. Jeśli zmieniasz obraz RAW, GIT zapisuje tylko zmiany, a nie pełny plik ... GIT może nie być najlepszą opcją (SVN), ponieważ są to duże pliki, ale istnieje kilka opcji, które działają dobrze dla duże pliki ...
TiernanO
0

Oto wtyczka do Apple Aperture. Piękno Aperture polega na tym, że ma on około 95% funkcjonalności Photoshopa pożądanej przez fotografów (nie można z nim płonąć tekstu, ziewać), a edycja jest kontrolowana w bardzo lekki sposób.

Działa z JPEG i innymi formatami zdjęć, a także formatem RAW.

Możesz nawet zrobić „podróż w obie strony” za pomocą zewnętrznych edytorów, takich jak Photoshop, ale one niekoniecznie zapisują całą kopię obrazu, a nie lekki filtr zastosowany do obrazu wzorcowego.

Jan Steinman
źródło
0

Dobra dyskusja na ten temat tutaj: https://www.impulseadventure.com/photo/flow-catalog-versions.html

Istnieją znaczne różnice między repozytorium kodu a obrazem DAM.

  1. Wykorzystanie obrazu wydaje się być drzewem o wielu gałęziach. Chociaż masz rozgałęzienia w kodzie, zazwyczaj celem jest ich minimalizacja. W użyciu obrazu możesz skończyć z takimi sytuacjami

Mistrz

--- Przycięte i zaostrzone.

--- --- Zmniejszona rozdzielczość na Facebooku

--- --- Duża miniatura do galerii

--- --- Średnia miniatura dla galerii

--- --- Mała miniatura do galerii.

--- --- Duża wersja ze znakiem wodnym do galerii

--- --- --- Wersja czarno-biała ze znakiem wodnym

--- --- --- Wersja czarno-biała

--- --- Specjalna uprawa dla klienta.

--- --- Dostosowano obsadę kolorów dla różnych klientów

(Zrobiłem jedną stronę internetową, gdzie każdy obraz miał 18 różnych rozdzielczości).

  1. Kod ma małe różnice między wersjami. W typowym meldowaniu zmienia się tylko kilka procent kodu. Na obrazie większość pikseli zmienia niektóre, a oszczędność miejsca od przechowywania tylko zmian jest niewielka.

  2. W repozytorium kodu zajmujesz się zmianami poziomu bitów. Linia kodu tutaj, wartość stałej tam. W manipulacji obrazami historia wykonanych kroków ma większe znaczenie.

  3. Praca z obrazem jest zwykle znacznie mniej oparta na współpracy niż kod. Podczas gdy graficy mogą wziąć istniejący obraz i nałożyć na niego grafikę, większość obrazów jest zarządzana przez jedną osobę przez całe życie. (Inaczej jest w przypadku filmów / filmów).

  4. W oprogramowaniu podstawowym poziomem jest projekt Pojedynczy plik klasy nie znaczy wiele bez reszty projektu. Podczas przetwarzania obrazu obraz jest podstawową jednostką. Możesz spędzić całe życie pracując nad jednym projektem oprogramowania (Microsoft Word ...) W fotografii rzadko spędzasz więcej niż kilka minut na obrazie.

  5. W oprogramowaniu ważnym zadaniem jest możliwość śledzenia zmian i powrotu do poprzedniej wersji. W przetwarzaniu obrazu ważnym zadaniem jest znalezienie tego obrazu i jego pochodnych w późniejszym terminie.

Sherwood Botsford
źródło