refresh EXIF kills the star-ratings which are set in DT
Describe the bug
Version 4.8 has new metadata-fields. For images, imported with earlier versions, you have to use "refresh EXIF" in Module "actions on selection" / "metadata". This will delete all star-ratings without warning and without any option to skip the deletion.
Steps to reproduce
- Mode "Lighttable"
- Module "actions on selection"
- Tab "metadata"
- Button "refresh EXIF"
Expected behavior
Bevor deleting this manually settings give a warning or offer the possibility to skip the star-rating while "refresh EXIF".
Logfile | Screenshot | Screencast
No response
Commit
4.8.0
Where did you obtain darktable from?
OBS
darktable version
4.8.0
What OS are you using?
Linux
What is the version of your OS?
Ubuntu 22.04.3
Describe your system?
No response
Are you using OpenCL GPU in darktable?
Yes
If yes, what is the GPU card and driver?
No response
Please provide additional context if applicable. You can attach files too, but might need to rename to .txt or .zip
You can set star-ratings in some cameras. So the rating is a kind of metadata. But I think most people set the star-ratings after import in Darktable and not in the camera. The star-ratings are an important criteria for filtering and so I carefully set them.
- Frank Jäger @.***> [06-25-24 07:51]:
Describe the bug
Version 4.8 has new metadata-fields. For images, imported with earlier versions, you have to use "refresh EXIF" in Module "actions on selection" / "metadata". This will delete all star-ratings without warning and without any option to skip the deletion.
Steps to reproduce
- Mode "Lighttable"
- Module "actions on selection"
- Tab "metadata"
- Button "refresh EXIF"
Expected behavior
Bevor deleting this manually settings give a warning or offer the possibility to skip the star-rating while "refresh EXIF".
exif settings are contained in the original raw image which dt absolutely will not touch or alter in any way. the changes (star ratings) you have made with dt are in the xmp file and the library.
if you reset the exif settings from the original raw image, you will absolutely change the ratings withing the library/xmp. something one should already understand and be wary of.
the same if you revert color or crop changes you have made to the the original image.
-- (paka)Patrick Shanahan Plainfield, Indiana, USA @ptilopteri facebook/ptilopteri Photos: http://wahoo.no-ip.org/piwigo paka @ IRCnet oftc
And there is a warning in the manual.
refresh exif Refresh the Exif data from the source file. Warning: this may overwrite some tags and metadata that you have altered in darktable (such as star ratings).
https://docs.darktable.org/usermanual/4.6/en/module-reference/utility-modules/lighttable/selected-image/#metadata-tab
@wwwFrank So it's actually working as designed. Do you have any arguments why the behavior should be different, or can we close this issue?
does it also happen if you have selected "ignore exif rating" in import settings? see https://docs.darktable.org/usermanual/4.6/en/module-reference/utility-modules/lighttable/import/#module-parameters
Yes, setting the option "ignore exif rating" in the module "import" to true fixed the problem in module "actions on selection", function "refresh EXIF". So I'm able to import the 4.8th additional metadata from older pictures without killing all my star-ratings.
This option was so "far away" from the refresh-button, that I didn't see the connection.
For initial import it's useful to have both options. For refresh I assume that in 99.9 % it is not wanted to re-import the rating from the RAW-file, where the ratings normally are unset. Rating is usually set after import, reviewed after sleeping on night and again after developing the RAW-files.
Maybe new metadata should be somehow imported automatically and not require usage of "refresh EXIF" button? Though it may be tricky due to not all images available at the time of database upgrade...
the handling of rating in exif data seems to be manufacutere/camera specific. Some cameras set exif rating = 0 even for non rated images, others keeps that unset. So "normally unset" can't be identified from each set of exif data.
So if you expect "refresh exif" being "refresh exif except ..." you should file a feature request including the exceptions ...