Bei darktable handelt es sich um einen nicht-destruktiven Bildeditor. Dies bedeutet, dass darktable Bilder schreibgeschützt öffnet. Alle neu hinzugefügten Metadaten, Tags und Parameter von Bildoperationen (der „Verlauf“) werden in separaten .xmp Dateien, sogenannte Begleitdateien, gespeichert. Die Begleitdateien ermöglichen es, Informationen über die Bilder sowie die gesamte Bearbeitungshistorie zu speichern, ohne die ursprünglichen Rohdateien zu verändern. Wird ein Bild zum ersten Mal in darktable importiert, so wird automatisch eine XMP-Datei mit Standardeinstellungen erzeugt.
Für dasselbe Raw-Foto können mehrere Bearbeitungsversionen, sogenannte Duplikate, nebeneinander existieren die jeweils eigene Metadaten, Tags und Verlauf haben können. Jedes Duplikat wird durch eine separate XMP-Begleitdatei mit einem Dateinamen in der Form „< basename>_nn.<extension>.xmp“ dargestellt, wobei nn die (mindestens zweistellige) Versionsnummer dieser Bearbeitungsversion darstellt. Die Informationen für die erste Bearbeitung - das „Duplikat“ mit der Versionsnummer null – werden in der Begleitdatei „<basename>.<extension>.xmp“ gespeichert. Die Versionsnummer eines Duplikats wird im Bildinformationsfenster jeder der darktable-Ansichten angezeigt (siehe ein Beispiel in Abschnitt 2.3.5, „Bildinformation“).
Begleitdateien synchronisieren sich automatisch während Ihrer Arbeit, ohne dass eine Speichern-Taste gedrückt werden muss. Bei einem Backup Ihrer Daten ist auch darauf zu achten die XMP-Dateien zu sichern, da diese benötigt werden, um Ihre Arbeit im Katastrophenfall vollständig zu rekonstruieren.
Zusätzlich zu den Begleitdateien hält darktable alle bildbezogenen Daten in seiner Datenbank für einen schnellen Zugriff bereit. Ein Bild kann nur dann von darktable aus betrachtet und bearbeitet werden, wenn seine Daten in die Datenbank geschrieben werden. Dies geschieht automatisch beim ersten Import eines Bildes oder zu einem späteren Zeitpunkt durch einen erneuten Import (siehe Abschnitt 2.3.1, „Import“). Im letzteren Fall wird die Datenbank mit Daten aktualisiert, die darktable in den Begleitdateien findet, die zu diesem Bild gehören.
Once an image has been imported into darktable the database entries take precedence over the XMP file. Subsequent changes to the XMP file by any other software are not visible to darktable – any changes get overwritten the next time darktable synchronizes the file. This behavior can be changed in the preferences dialog (see Abschnitt 8.9, „Storage“). On request darktable looks for updated XMP files at startup and offers a choice whether to update the database or overwrite the XMP file.