Am Sat, Sep 14, 2024 at 02:46:35PM -0500 schrieb Dale:

> I was running the command again and when I was checking on it, it
> stopped with this error. 
> 
> 
> 
>   File "/root/dh", line 1209, in <module>
>     main()
>   File "/root/dh", line 1184, in main
>     directory_hash(dir_path, '', dir_files, checksums)
>   File "/root/dh", line 1007, in directory_hash
>     os.path.basename(old_sums[filename][1])
>                      ~~~~~~~~^^^^^^^^^^
> KeyError: 'Some Video.mp4'

What was the exact command with which you ran it?
Apparently the directory has a file 'Some Video.mp4', which was not listed 
in an existing checksum file.

I also noticed a problem recently which happens if you give dh a directory 
as argument which has no checksum file in it. Or something like it, I can’t 
reproduce it from memory right now. I have been doing some refactoring 
recently in order to get one-file-per-tree mode working.

> I was doing a second run because I updated some files.  So, it was
> skipping some and creating new for some new ones.  This is the command I
> was running, which may not be the best way. 
> 
> 
> /root/dh -c -f -F 1Checksums.md5 -v

Yeah, using the -c option will clobber any old checksums and re-read all 
files fresh. If you only changed a few files, using the -u option will 
drastically increase speed because only the changed files will be read.
Use the -d option to clean up dangling entries from checksum files.


> Also, what is the best way to handle this type of situation.  Let's say
> I have a set of videos.  Later on I get a better set of videos, higher
> resolution or something.  I copy those to a temporary directory then use
> your dmv script from a while back to replace the old files with the new
> files but with identical names.  Thing is, file is different, sometimes
> a lot different.  What is the best way to get it to update the checksums
> for the changed files?  Is the command above correct? 

dh has some smarts built-in. If you changed a file, then its modification 
timestamp will get udpated. When dh runs in -u mode and it finds a file 
whose timestamp is newer than its associated checksum file, that means the 
file may have been altered since the creation of that checksum. So dh will 
re-hash the file and replace the checksum in the checksum file.


> I'm sometimes pretty good at finding software bugs.  But hey, it just
> makes your software better.  ;-) 

Me too, usually. If it’s not my software, anyways. ^^
But I think you may be the first other of that tool other than me.

-- 
Grüße | Greetings | Salut | Qapla’
Someone who eats oats for 200 years becomes very old.

Attachment: signature.asc
Description: PGP signature

Reply via email to