mirror of
https://github.com/storytold/lightcraft.git
synced 2026-10-24 18:18:12 -06:00
Whether an existing target is the photo itself is decided by file identity (dev+inode on Unix; an exact directory entry check elsewhere), not by a lower-case name comparison, so on case-sensitive volumes img_1.JPG next to IMG_1.JPG is a collision (-1 suffix). Moves use a no-replace rename (hard link + unlink where supported) and case changes go through a unique temp name. Tests model case-sensitive and case-insensitive volumes and check the real disk. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>