Skip to content

Commit 90f12af

Browse files
committed
fix: deterministic dedup when folder support is equal
- When two folders have the same number of media files, keep the lexicographically smaller path to ensure consistent behavior across platforms (glob order differs between APFS and ext4). - Fixes test failures on GitHub Actions Ubuntu runners.
1 parent 19a7c69 commit 90f12af

1 file changed

Lines changed: 23 additions & 1 deletion

File tree

spider.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ def remove_duplicated_files() -> None:
344344
orig,
345345
orig_support,
346346
)
347-
else:
347+
elif dup_support < orig_support:
348348
to_delete = dup
349349
logger.info(
350350
"Keeping %s (%d files) over %s (%d files)",
@@ -353,6 +353,28 @@ def remove_duplicated_files() -> None:
353353
dup,
354354
dup_support,
355355
)
356+
else:
357+
# Equal support — keep the lexicographically smaller path
358+
# for deterministic behavior across platforms.
359+
if dup < orig:
360+
to_delete = orig
361+
files_map[file_md5] = dup
362+
logger.info(
363+
"Keeping %s (%d files) over %s (%d files)",
364+
dup,
365+
dup_support,
366+
orig,
367+
orig_support,
368+
)
369+
else:
370+
to_delete = dup
371+
logger.info(
372+
"Keeping %s (%d files) over %s (%d files)",
373+
orig,
374+
orig_support,
375+
dup,
376+
dup_support,
377+
)
356378

357379
try:
358380
if os.path.exists(to_delete):

0 commit comments

Comments
 (0)