versions modifiées de fichiers XMP trouvées

Hello

J’ai besoin d’aide pour comprendre le tableau « versions modifiées de fichiers XMP trouvées » qui se lance parfois au démarrage de dt. Je rencontre des décalages d’horodatage et je ne comprends pas les options qui me sont proposées (je ne trouve pas dans l’aide du site, hélas) :

[list]
[]garder le développement XMP
[
]garder le développement de la base de données
[]garder le nouveau développement
[
]garder l’ancien développement
[/list]
Si quelqu’un pouvait m’expliquer ou m’orienter…

M’ci

jcm

As-tu consulté le manuel ? À cette adresse : https://docs.darktable.org/usermanual/3.8/fr/preferences-settings/storage/, dans le paragraphe « vérifie au démarrage les fichiers xmp modifiés » tu trouveras toutes les réponses à tes questions.

[size=small]Merci pour le lien. [/size]
[size=small]Quelle différence existe-t-il entre garder le développement XMP et garder le [size=small]nouveau développement[/size][size=small] ? Les deux me semblent répondre à " [/size][font=‹ fira sans ›, sans-serif]Si des fichiers XMP modifiés sont trouvés, un menu s’ouvre pour que l’utilisateur choisisse les fichiers XMP qu’il faut recharger (en remplaçant les entrées de la base de données de darktable par le contenu du fichier XMP) et ceux qu’il faut écraser à partir de la base de données de darktable. « [/font][/size]
[size=small][font=‹ fira sans ›, sans-serif]Les deux options me semblent similaires, dans le fait qu’elles l’emportent sur ce qui a été stocké dans la base de donnée. Mais quid de l’option garder l’ancien développement » (donc celui stocké dans la base ?) ?[/font][/size]
[size=small][font=‹ fira sans ›, sans-serif]M’ci re[/font][/size]

P.S. (edit) ci-joint mes pref :
écrire un fichier redondant pour chaque image : à l’importation
vérifie les fichiers XMP modifiés au démarrage : oui

Les écarts sont calculés à partir de l’horodatage du fichier et de la BdD. S’il y a une différence, darktable, te propose de choisir ce que tu souhaites conserver : soit l’information du fichier, soit l’information de la BdD.
Selon ton choix, soit le fichier sera mis à jour à partir de la BdD, soit à l’inverse, c’est la BdD qui sera mise à jour à partir du fichier. Dans deux cas, les deux horodatages seront alignés.

Deux exemples :

[list=1]
[]Tu as modifié le fichier xmp avec un autre logiciel (n’importe lequel, éditeur de texte, traitement de photo, etc). Dans ce cas, le xmp est plus « récent » que la BdD. Il est probable que tu souhaiteras conserver les modifications du XMP. Dans ce cas, tu choisiras de remplacer les entrées de la base de données de darktable par le contenu du fichier XMP.
[
]Tu as restauré un ancien xmp, mais des traitements ont été faits sur la photo postérieurement à la sauvegarde. Dans ce cas, le XMP et plus « ancien » que la BdD. Il est probable que tu souhaiteras conserver les données de la BdD. Tu choisiras alors d’écraser le xmp à partir des données contenues dans la BdD.
[/list]

[size=small]Je comprends bien la notion plus ancien et plus récent. Mais quelle différence entre :
[/size]
[size=small]garder le développement XMP et [/size][size=small]garder le nouveau développement ? (les deux options ne correspondent-elles pas à la version la plus récente) [/size]
[size=small]et aussi entre :[/size]

[size=small]garder le développement de la base de données et [/size][size=small]garder l’ancien développement (qui correspondent donc tous les deux à la version la plus ancienne) ?[/size]

[size=small]C’est cette nuance que je ne comprends pas : 4 réponses possibles alors que je m’attends à deux (mettre à jour : oui ou non ?)…
[/size]

Je vais essayer de compléter mes exemples avec d’autres exemples, chiffrés cette fois.

Petite précision technique pour commencer. Les horodatages sont calculés en secondes écoulées depuis le /1970/01/01-00:00:00.

Pour notre exemple, nous allons utiliser un horodatage fixé cet après-midi, le /2023/03/16-15:41:30, donc la valeur 1678977915 (pour plus d’informations, voir ICI).

darktable travaille avec plusieurs horodatages, ceux qui nous intéressent sont : celui enregistré dans la BdD lors chaque modification du traitement ou du catalogage, et celui de la date de dernière modification du fichier xmp enregistré dans le système également lors de chaque modification du traitement ou du catalogage.

[list]
[]Si les deux sont identiques (1678977915) tout est OK et tu n’auras rien à faire.
[
]S’ils diffèrent, dans ce cas, il y a deux hypothèses :
[list]
[]Soit, l’horodatage du fichier xmp et plus « petit » que l’horodatage enregistré dans la BdD, 1678977914, par exemple (une seconde de moins),
[
]ou l’inverse : l’horodatage du fichier xmp et plus « grand » que l’horodatage enregistré dans la BdD, 1678977916, par exemple (une seconde de plus).
[/list]
Dans ces cas, darktable est incapable de déterminer lequel est le bon, c’est-à-dire, quel traitement faut-il garder ? celui du xmp ? Ou celui de la BdD ? C’est à toi de choisir ce qu’il faut faire. C’est à cela que servent les questions qui te sont posées dans la fenêtre.[/list]

Et j’en reviens aux explications que je te donnais dans mon message précédent

[list=1]
[]Si tu as modifié le fichier xmp via une autre application, l’horodatage de celui-ci sera plus « grand » et tu devras décider si tu gardes ces modifications ou non. Si tu les gardes, tu pourras dire à darktable de mettre à jour la BdD à partir du xmp. Si tu ne veux pas les garder, tu pourras dire à darktable de mettre à jour le xmp (écraser) à partir de la BdD.
[
]Si tu as restauré un fichier xmp par exemple, l’horodatage de celui-ci sera plus « petit » et tu devras décider si tu gardes cette restauration ou non. Si tu la gardes, tu pourras dire à darktable de mettre à jour la BdD à partir du xmp. Si tu ne veux pas la garder, tu pourras dire à darktable de mettre à jour le xmp (écraser) à partir de la BdD.
[/list]

J’espère avoir éclairé ta lanterne.

[size=small]J’ai bien compris le concept d’une modification et de son horodatage, mais je ne sais toujours pas ce qu’impliquent garder le développement XMP (qui, selon ton explication éclairée, est le tout dernier, celui que je veux garder) ou garder le nouveau développement (ce n’est pas la même chose) ? [/size]
[size=small][size=small]Dans ces 2 options, il n’est pas question de la BdD…[/size][/size]

Le nouveau développement (ou l’ancien, c’est la même chose à l’envers, n’est-ce-pas !) peuvent se trouver dans l’un ou l’autre des deux stockages - le xmp ou la BdD -, ou dans les deux !

En fonctionnement normal, à chaque fin de traitement d’une photo, le traitement effectué et enregistré simultanément dans les deux supports. Donc, les horodatages sont identiques. Il n’y a ni d’ancien ni nouveau. Il y a un seul traitement connu qui est enregistré de façon identique dans les deux supports.

Si les horodatages sont différents, il s’est passé quelque chose en dehors de darktable. On peut supposer que les traitements sont différents¹ dans les deux supports. La détermination de qui est le nouveau et qui est l’ancien ne peut être faite que par l’utilisateur, en fonctions des manips qu’il a effectuées hors darktable. Ce n’est pas forcément l’horodatage le plus récent qui détermine le traitement à garder, ce serait trop simple ! Les manips effectuées sont celles des exemples précédents, auxquelles on peut ajouter l’échange de fichiers entre plusieurs machines. Mais, même si ce n’est pas le cas le plus fréquent, il peut arriver, toujours selon les manips effectuées, que le développement du xmp, contrairement à ce que laisse supposer l’horodatage, soit celui que l’on veut garder.

Exemple :
[list=1]
[]En janvier, les photos d’un dossier sont importées sur une machine A et sur une machine B. Elles sont ensuite traitées sur B.
[
]En février, on les traite aussi sur A.
[*]En mars, On décide de garder finalement le traitement de B. On va donc copier les fichiers XMP de B vers A.
C’est là qu’il y a problème. Les photos sont horodatées « février » dans la BdD de A et « janvier » pour les XMP provenant de la machine B.Dans ce cas, il faut bien récupérer les traitements plus anciens provenant des xmp de B pour remplacer ceux plus récents de la BdD de A. [/list]


¹ Il y a des cas tordus ou, bien que les horodatages soient différents, les deux traitements enregistrés sont strictement identiques.

[size=small][font=Helvetica Neue]Mon premier problème (si ça pouvait être le seul !) est probablement de l’ordre du vocabulaire – « stockage » et « développement ». Pour moi (je ne traite mes images qu’avec dt, mais l’origine de ces décalages est une autre histoire), tous mes traitements (les développements ?) sont enregistrés (stockés ?) dans le fichier xmp. Mais le logiciel double ces enregistrements dans sa BdD. Pour une raison quelconque, il se produit une altération des horodatages entre les deux. D’où cette fenêtre avec 4 options, dont les deux premières me semblent évidentes :[/font]
[/size]
[list]
[][size=small][font=Helvetica Neue]garder le développement XMP[/font][/size]
[
][size=small][font=Helvetica Neue]garder le développement de la base de données[/font][/size]
[/list]
[size=small][font=Helvetica Neue]Si la lumière s’est frayé un chemin jusqu’à ma lanterne, les deux options suivantes s’affranchissent à la fois du xmp et de la BdD.[/font][/size]
[list]
[][size=small][font=Helvetica Neue]garder le nouveau développement[/font][/size]
[
][size=small][font=Helvetica Neue]garder l’ancien développement[/font][/size]
[/list]
[size=small][font=Helvetica Neue]Et là, un coup de vent souffle la flamme vacillante de ma compréhension. Où sont « stockées » les informations de ces « développements » ?[/font][/size]

[size=small][font=Helvetica Neue](merci pour ta patience)[/font]
[/size]

Effectivement,

[size=medium]D’abord, q[/size][size=medium]uelques éclaircissements sémantiques.[/size]

Avant, du temps de l’argentique, on ne parlait que de développement pour qualifier tout le processus qui va du développement :wink: du film insolé pour obtenir un négatif, jusqu’au développement :wink: :wink: de la feuille de papier insolée sous l’agrandisseur.

Aujourd’hui, au temps joyeux du numérique, on dit aussi développement pour qualifier les opérations logicielles qui permettent d’extraire toute la substantifique moelle de nos précieux fichiers raw - note ici, qu’on oublie l’étape de production d’une image papier. Mais les termes traitement ou post-traitement sont aussi utilisés pour dire la même chose.

Peut-être cependant que traitement couvre un domaine plus large que le simple développement d’un raw, c’est-à-dire :
[list]
[]le développement,
[
]plus l’indexation par mots clés,
[]plus l’identification avec les méta-données,
[
]plus la sélection avec les scores (étoiles) et les labels de couleur,
[]plus les divers horodatages,
[
]plus…
[/list]

J’ai employé le terme stockage, mais j’aurais aussi bien pu parler d’enregistrement. Peut-être par fainéantise, (stockage, c’est plus court :wink: )

[size=medium]Parlons maintenant d’architecture du logiciel.[/size]

Tu as une compréhension inversée de l’ordre de priorités pour l’enregistrement des informations. Pour darktable ce qui compte presque uniquement, c’est la Base de Données., pas les fichiers XMP.

Détails :
[list]
[*]Lors de l’importation, les données exif/iptc/xmp du fichier raw sont lues, puis enregistrées dans la BdD lors de la création dans celle-ci d’une entrée¹ correspondant à ce raw. Enfin, un fichier raw est créé reflétant cette entrée.
[*]Ensuite, lors des diverses manipulations faites sur ce/ces fichier(s), le contenu de BdD est lu pour chacun, et les modifications apportées sont enregistrées systématiquement dans la BdD. Ensuite, le(s) fichiers(s) xmp correspondants sont mis à jour.
[/list]
Tu remarqueras que jamais, il n’est question de lecture du XMP. D’ailleurs darktable peut tout à fait fonctionner sans fichiers xmp, même si ce n’est pas DU TOUT une bonne idée. Voir ICI.

Le seul moment ou darktable lit tout seul un fichier xmp, c’est quand on importe un fichier qui n’est pas connu dans la BdD, mais qui dispose d’un fichier xmp associé. Cette opération permet de transporter des fichiers avec leurs traitements d’une occurrence de darktable à une autre.
Sinon l’autre moment ou darktable lit un xmp, c’est quand on a activé l’option d’ont nous parlons depuis le début : vérifie au démarrage les fichiers xmp modifiés, alors dans ce cas et sur décision de l’utilisateur, darktable lira le xmp et modifiera le contenu de la BdD avec les infos du xmp.

J’espère avoir éclairé ta lanterne !


¹ Le terme entrée est utilisée en informatique pour qualifier un peu plus qu’un simple enregistrement dans un fichier. En l’occurrence, darktable crée plusieurs enregistrements dans plusieurs tables de la base de donnée pour qualifier un fichier raw.

Merci Jean-Pierre pour ces précisions.

Ça y est ! Merci. J’ai tout compris !!!

(enfin, presque)

Je saisis le principe, je ne pensais pas que la BdD avait une telle place. D’où ma façon de procéder que je dois réviser.
Ce qui m’échappe encore, c’est l’explication synthétique pour chacun des 4 choix qui sont posés (au moment de cliquer, ne pas paniquer) :

  • garder le développement XMP : OK, c’est le fichier accolé qui prime.
  • garder le développement de la base de données : À l’inverse, ce sont les informations stockées* dans la/les BdD qui priment.
  • garder le nouveau développement ou garder l’ancien développement : il y aurait donc 2 stockages* d’infos dans la/les BdD, d’où l’impossibilité de répondre simplement à l’option précédente ???

(ben oui, avec moi, c’est pas gagné)

  • stockage est le terme utilisé dans les préférences, il était donc légitime :wink:

Je pense que tu voulais plutôt dire « un fichier xmp »
[hr]
Je vais apporter ma modeste compréhension.

@jcmarguerite, tout comme toi, je n’ai pas compris les 4 choix initialement. Après, j’ai supposé le mode de fonctionnement.

Comme l’a dit jpverrue, il y a d’abord la base de données qui contient les informations, puis le fichier xmp qui est une copie des informations de la base de données.

Si tu demandes une vérification des xmp à l’ouverture de Darktable, tu peux avoir des écarts et dans ce cas, Darktable te laisse 4 choix. En fait il faudrait plutôt dire 2 choix, chacun ayant aussi 2 possibilités.

Le premier choix est le critère de récupération :

  • l’emplacement
  • la date

Pour l’emplacement, tu as 2 possibilités : soit la base de données, soit le xmp, mais sans information sur le dernier emplacement modifié.

Pour la date, tu as 2 possibilités : soit le plus récent, soit le plus ancien, mais sans savoir son emplacement.

Ce n’est que mon interprétation, et j’ai peut-être tout faux. Si quelqu’un veut compléter ou corriger, il est le bienvenu.

Toutafait ! :-/ :frowning: :angel:
[hr]
Bon, j’avoue, je suis un peu coupable. J’ai répondu à @jcmarguerite sans regarder à nouveau la fenêtre versions de fichiers XMP trouvées Je n’ai donc pas vu ces quatre boutons et j’ai répondu en me basant sur les souvenirs de l’utilisation que j’en faisais à une époque.

J’ai désactivé l’option dans les préférences il y a quelque temps pour des raisons de performance. Cette recherche est assez chronophage, car elle scanne l’ensemble des XMP à chaque lancement de darktable. Sur ma précédente machine, cela pouvait monter jusqu’à 1:30 minute, pour rappel, j’ai près de 73 000 photos importées dans ma BdD. Aujourd’hui c’est plus rapide (nouvelle machine ;-)).

Effectivement les quatre boutons sont un peu ambigus. Il me semble que la formulation était plus simple avant.
Cependant, quand on regarde la version anglaise, c’est un peu plus clair

Comme l’a dit @Phil7857 : Il y a deux groupes de deux choix (ça mériterait au minimum un espace entre les deux groupes, voire le mot ou)
[list]
[]Le premier groupe permet de choisir en fonction du lieu de stockage (BdD ou XMP, quelle que soit la date).
[
]Le second permet de choisir en fonction de la date (l’ancienne ou la récente, peu importe le lieu).
[/list]
Mais finalement, on n’arbitre qu’entre deux choses les données de la BdD et les données du XMP

Voili-voilà

Merci. C’est plus clair dit ainsi!

Étape 2 : sachant que je ne traite mes images qu’avec dt, d’où vient la différence d’horodatage ?

Le contexte étant le suivant :
A) Je travaille avec Dropbox sur 2 Mac(s). Dropbox permet de partager et synchroniser certains dossiers sur disque dur, avec en outre l’option d’en rendre certains accessibles seulement en ligne (le fichier semble présent sur le disque dur, mais ce n’est qu’un lien pour le télécharger). Je veille à ce que les dossiers appelés par dt soient bien stockés sur le disque dur du poste concerné.
Précision : la BdD n’est pas partagée, car non « stockée » sur Dropbox.

B) Je copie mes « meilleures » images d’une pellicule dans un dossier annuel (et ensuite, je stocke ladite pellicule en ligne pour ménager de la place sur mon disque dur). Puis, je recommence parfois pour traiter un thème particulier (l’utilisation de collection basée sur les mots-clés serait possible si j’avais le caractère et le temps de rééditer toutes mes images sélectionnées).

Ces deux façons de procéder, aggravées par de potentielles erreurs (sur Dropbox, appel d’un dossier présent dans la BdD mais seulement disponible en ligne), sont probablement la cause de cette embrouille.

Mon interrogation est la suivante. Ai-je tort pour Dropbox ? Pour ma façon de copier mes images ? Les deux ?

(et encore : comment reconstituer un BdD conforme aux derniers xmp, car que j’ai cru l’avoir fait en recréant le fichier config library.db, mais j’ai parfois des vignettes d’autres images jusqu’à ce que je les actualisé en les ouvrant dans la chambre noire).

Merci (encore & again)

Je n’ai pas tout compris dans A) et B), mais, pas grave :wink:

Concernant les décalages d’horodatage. Ceux-ci concernent quel horodatage ?
[list]
[]Celui de la Prise de vue ?
[
]Celui de l’importation ?
[]Celui du traitement ?
[
]Celui de l’exportation ?
[]Celui de l’impression ?
[
]Celui du fichier xmp ?
[/list]

Les différences d’horodatage de PdV ne devraient jamais exister. Ces horodatages sont fixés par l’appareil lors de l’enregistrement sur la carte mémoire et ne sont pas accessibles par logiciel¹.
Pour tous les autres, ils sont tributaires de l’horloge de la machine sur laquelle ils sont appliqués. Donc si tu as plusieurs machines, sont-elles toutes bien synchronisées aux serveurs de temps de l’internet ? Si c’est le cas, l’écart de temps entre les deux devrait être inférieur à la seconde. Sinon tes problèmes viennent peut-être de là.

Concernant ton organisation de stockage, le plus simple est toujours le mieux… :slight_smile:


1 Comme d’habitude, la réponse doit être nuancée. En bidouillant, il est possible de les modifier, mais les risques de perte irrémédiables de fichiers sont bien réels dans ce cas.

La différence concerne uniquement l’horodatage des xmp/BdD. Et les horloges des 2 mac sont sur le même horaire de Cupertino.
Je n’ai pas de pb avec mes fichiers non photos gérés via Dropbox.

Bonsoir,

Désolé, je n’ai pas non plus tout compris de tes 2 manières de travailler.

Pour le cas A, j’ai bien compris que tu utilises 2 Mac que tu synchronises avec Dropbox, mais je n’ai pas forcément bien compris ou sont les fichiers. Je vais essayer de reformuler ce que j’ai cru comprendre.

Tu utilises Darktable sur les 2 Mac (Mac1 et Mac2) de manière indifférenciée.
Chaque Mac a sa propre base de données de Darktable, que je vais appelé M1BdD pour Mac1 et M2BdD pour Mac2. Et il n’y a pas de base dans Dropbox.
Il y a des photos sur chaque Mac (sur le disque, pas en lien) que je vais appelées M1P1 à M1Px pour les photos sur Mac1 et M2P1 à M2Py. Ces photos sont différentes et unique.
Les photos des 2 Mac sont synchronisées dans Dropbox, que je vais appelé DpbM1P1 à DpbM1px pour les photos provenant de M1 et DpbM1P1 à DpbM1py pour les photos provenant de M2.
Un lien est créé sur chaque Mac pour les photos dans Dropbox qui sont issues de l’autre Mac, que je vais appelé M2DpbM1P1 à M2DpbM1Px pour les photos de M1 synchronisées sur Dropbox et mises en lien sur M2, et M1DpbM2P1 à M1DpbM2Py pour les photos de M2 synchronisées avec Dropbox et mises en lien sur M1.
Dejà à ce stade, est-ce correct ?

Avec M1, tu n’ouvres dans Darktable que les photos M1P1 à M1Px et jamais les photos M1DpbM2P1 à M1DpbM2Py (donc celles en lien). Est-ce bien ça ou est-ce les photos sur Dropbx (DpbM2P1 à DpbM2Py) que tu n’ouvres pas sur M1 ?

Par curiosité, quelle est l’utilité de faire un lien sur l’autre Mac si tu n’ouvres pas les photos ? (mais là, je pense ne pas avoir tout compris de ton flux).

Comment est faite la syncho des photos de M1 sur Dropbox ? Dans les 2 sens (Mac1 <=> Dropbox) ou dans 1 seul sens (Mac1 => Dropbox) ?

Est-ce que tu connais la valeur de décalage ? Est-ce que c’est toujours le même ? J’ai déjà eu des problèmes de syncho avec un disque externe qui était de 1h, problème d’heure été/hivers (je n’ai pas encore tout compris du pourquoi).

La différence est de combien ?
Ne serait-ce pas un problème de fuseau horaire ?

De quelques minutes à plusieurs jours… (nous utilisons Dropbox sur plusieurs postes, Mac et PC, sans jamais rencontrer de différence d’horodatage).