Using -SEP * causes -DIFF to report differences

Started by FrankB, January 05, 2025, 07:11:03 AM

Previous topic - Next topic

FrankB

ExifTool 13.11
Windows 11

I'm just now (sorry for the delay. Phil) adding the -DIFF feature to GUI. Sometimes ExifTool reports differences that I dont expect. Not yet sure it's a bug, but it's suspicious.

Scenario: I have 2 directories I want to compare. c:\foto\left and c:\foto\right. For the sake of this report they contain the same JPG. Copied via Explorer, verified with WinMerge.

If -SEP * is present, then XMP list tags are reported as a difference.
Note that in GUI -SEP x is always passed to ExifTool. If it turns out that -SEP should not be passed when using -DIFF, I will need to create an exception for that. The next question would be: Are there more options that should not be passed?

EDIT: When comparing 2 files in the same directory -SEP does not exhibit this behaviour. EG
exiftool  -CHARSET FILENAME=UTF8 -v0 -overwrite_original -sep * -c %.6f° -API WindowsLongPath=1 -g0:1 -s C:\foto\diff_left\IMGP0002.jpg -diff C:\foto\diff_left\IMGP0002_copy.jpg

Thanks in advance,
Frank

(No hurry!)

C:\foto>Diff_Sep.cmd

C:\foto>chcp 65001
Active code page: 65001

C:\foto>exiftool -CHARSET FILENAME=UTF8 -v0 -overwrite_original -sep * -c %.6f° -API WindowsLongPath=1 -g0:1 -s C:\foto\diff_left -diff C:\foto\diff_right\%f.%e
======== diff < C:/foto/diff_left/IMGP0002.jpg > C:\foto\diff_right\IMGP0002.jpg
---- File:System ----
< Directory                       : C:/foto/diff_left
>                                   C:\foto\diff_right
< FileCreateDate                  : 2025:01:05 12:31:04+01:00
>                                   2025:01:05 12:31:26+01:00
---- XMP:XMP-xmpMM ----
< HistoryAction                   : derived*saved*saved*saved
>                                   derived, saved, saved, saved
< HistoryChanged                  : /*/metadata*/metadata
>                                   /, /metadata, /metadata
< HistoryInstanceID               : xmp.iid:be5f9329-08e5-044b-9786-1816381ee753*xmp.iid:0adee3ab-7910-b447-93fd-9e9a2b853159*xmp.iid:d8179d5c-7b16-234a-8bb6-5affe030de6e
>                                   xmp.iid:be5f9329-08e5-044b-9786-1816381ee753, xmp.iid:0adee3ab-7910-b447-93fd-9e9a2b853159, xmp.iid:d8179d5c-7b16-234a-8bb6-5affe030de6e
< HistorySoftwareAgent            : Adobe DNG Converter 8.6 (Windows)*Adobe Photoshop Camera Raw 8.0 (Windows)*Adobe Photoshop Camera Raw 8.0 (Windows)
>                                   Adobe DNG Converter 8.6 (Windows), Adobe Photoshop Camera Raw 8.0 (Windows), Adobe Photoshop Camera Raw 8.0 (Windows)
< HistoryWhen                     : 2014:12:27 14:33:01+01:00*2015:04:13 22:34:49+02:00*2015:04:13 22:43:30+02:00
>                                   2014:12:27 14:33:01+01:00, 2015:04:13 22:34:49+02:00, 2015:04:13 22:43:30+02:00
    1 directories scanned
    1 image files read

C:\foto>Diff_NoSep.cmd

C:\foto>chcp 65001
Active code page: 65001

C:\foto>exiftool -CHARSET FILENAME=UTF8 -v0 -overwrite_original -c %.6f° -API WindowsLongPath=1 -g0:1 -s C:\foto\diff_left -diff C:\foto\diff_right\%f.%e
======== diff < C:/foto/diff_left/IMGP0002.jpg > C:\foto\diff_right\IMGP0002.jpg
---- File:System ----
< Directory                       : C:/foto/diff_left
>                                   C:\foto\diff_right
< FileCreateDate                  : 2025:01:05 12:31:04+01:00
>                                   2025:01:05 12:31:26+01:00
    1 directories scanned
    1 image files read

C:\foto>

Phil Harvey

Hi Frank,

Thanks for this report!  It was even worse than this because sometimes it would show differences and sometimes it wouldn't.

This will be fixed in version 13.12.

According to the documentation:

            The following text formatting options
            are valid when -diff is used: -c, -charset, -d, -E, -ec, -ex, -L,
            -lang, -n, -s, -sep, -struct and -w.


Let me know if you have any problems with any of these.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).

FrankB

Thanks for confirming Phil.

Will do more testing with the various formatting options. Already noticed that -n does not seem to be affected.

Do you want me to run the tests on 13.12?

Frank

Phil Harvey

Thanks.  Don't worry about running through all the possible options.  Just let me know if you notice anything peculiar.  The -sep option was a bit of an odd one because of an interference with some deprecated API List options.  I don't expect any other problems like this in the -diff output.

- Phil
...where DIR is the name of a directory/folder containing the images.  On Mac/Linux/PowerShell, use single quotes (') instead of double quotes (") around arguments containing a dollar sign ($).