darktable è un editor di immagini non distruttivo. Ciò significa che darktable apre le immagini di input in sola lettura. I metadati aggiunti, le etichette e i parametri di elaborazione dell'immagine (la «coda di sviluppo») sono salvati in un file .xmp separato, noto anche come file sidecar che permette il salvataggio di informazioni relative all'immagine così come tutte le operazioni di editing senza che il file raw venga mai toccato. Quando si importa per la prima volta un'immagine di input in darktable, viene generato automaticamente un file XMP con le impostazioni predefinite.
Per ogni immagine sorgente possono coesistere modifiche multiple, chiamate duplicati, che condividono gli stessi dati di input (raw) ma si differenziano per un diverso insieme di metadati, etichette e coda di sviluppo. Ogni duplicato viene rappresentato da un file sidecar XMP il cui nome è costruito nella forma «<nome>_nn.<estensione>.xmp», dove nn rappresenta il numero di versione (di almeno due cifre) di quella modifica. La modifica iniziale - il duplicato con numero di versione zero - è rappresentato dal file sidecar «<nome>.<estensione>.xmp». Il numero di versione di un duplicato viene mostrato nel pannello Informazioni immagine in tutte le viste di darktable (per esempio vedi Sezione 2.3.5, «Informazioni immagine»).
I file sidecar vengono sincronizzati automaticamente da darktable senza dover premere un pulsante «salva». Quando fai il backup dei dati, assicurati di includere anche i file XMP, perché sono necessari per ricostruire totalmente il tuo lavoro in caso di perdita dei dati.
Oltre ai file sidecar, darktable conserva tutti i dati relativi alle immagini in un database per potervi accedere più rapidamente. Un'immagine può essere vista e modificata in darktable solo se i suoi dati sono caricati nel database. Ciò accade automaticamente la prima volta che si importa un'immagine o ogni volta che la si reimporta (vedi Sezione 2.3.1, «Importa»). Nel secondo caso il database si aggiorna coi dati che darktable trova nei file sidecar che appartengono a quell'immagine.
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 Sezione 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.