darktable jest edytorem niedestruktywnym. Oznacza to, że otwiera on zdjęcia tylko do odczytu. Wszystkie nowo dodane metadane, etykiety i parametry operacji na obrazie („historia”) przechowywane są w oddzielnych plikach .xmp, tzw. plikach pobocznych, pozwalając na zapis informacji o obrazie oraz pełnej historii edycji bez ingerencji w oryginalny plik raw. Kiedy po raz pierwszy importujesz zdjęcie do darktable, plik XMP z domyślnymi ustawieniami generowany jest automatycznie.
Dla danego zdjęcia może istnieć wiele wersji edycyjnych, zwanych duplikatami, współdzielących to samo zdjęcie wejściowe (raw), ale różniących się własnymi metadanymi, etykietami oraz historią. Każdy duplikat reprezentuje oddzielny plik poboczny XMP o nazwie stworzonej w formie „<nazwa>_nn.<rozszerzenie>.xmp”, gdzie nn oznacza (minimum dwucyfrowy) numer wersji edycji. Edycja początkowa – „duplikat” z wersją numer zero – przechowywana jest w pliku pobocznym „<nazwa>.<rozszerzenie>.xmp”. Numer wersji duplikatu wyświetlany jest w panelu informacyjnym zdjęcia w każdym z widoków darktable (p. Sekcja 2.3.5, „Informacje o obrazie”).
Pliki poboczne synchronizują się automatycznie z twoją pracą bez potrzeby wciskania przycisku „zapisz”. Tworząc kopię zapasową danych upewnij się, że przechowujesz również pliki XMP, ponieważ będą one potrzebne do odtworzenia twojej pracy w razie problemów.
Oprócz plików pobocznych, darktable przechowuje wszystkie dane dotyczące pracy w bazie danych dla szybkiego dostępu. Zdjęcie może być przeglądane i edytowane w darktable tylko wtedy, kiedy jego dane są zapisywane w bazie. To dzieje się automatycznie, kiedy importujesz zdjęcie po raz pierwszy lub kolejny (p. Sekcja 2.3.1, „Import”). W tym drugim przypadku baza jest aktualizowana danymi, pochodzącymi z pliku pobocznego, należącego do tego zdjęcia.
Po imporcie obrazu do darktable, zapisy w bazie danych mają pierwszeństwo nad plikiem XMP. Późniejsze zmiany w pliku XMP z innych programów nie są widoczne dla darktable – wszystkie zmiany zostaną nadpisane podczas następnej synchronizacji pliku. To zachowanie można zmienić w oknie preferencji (p. Sekcja 8.9, „Miejsca danych”). darktable na życzenie może podczas startu wyszukiwać aktualne pliki XMP i oferować wybór pomiędzy aktualizacją zapisów w bazie oraz nadpisaniem pliku XMP.