Eu acredito que é mais avançado do que nomes simples, eu apenas tentei. Na verdade, parece que não se baseia no nome.
Então, acabei de criar o seguinte:
TestDir
│
├─ blue.png #Blue A4 page
├─ blue2.png #Blue A4 page
├─ green.png #Blue A4 page
├─ red.png #Yellow A4 page
├─ yellow.png #Yellow A4 page
├─ yellow2.png #Yellow A4 page
└ TestDir2
│
├─ yellow.png #Blue A4 page
└─ yellow.png #Blue A4 page
Importou a pasta TestDir (que também importa de qualquer subdiretório). Este foi o aviso:
6 duplicate photos were not imported:
/home/tim/Pictures/Test/red.png
/home/tim/Pictures/Test/yellow2.png
/home/tim/Pictures/Test/green.png
/home/tim/Pictures/Test/blue2.png
(and 2 more)
2 photos successfully imported.
Os dois que importaram foram blue.png e yellow.png. Isso é porque eles foram criados primeiro (ele escolhe o mais antigo se houver duplicatas).
Isso foi confirmado pelo próximo teste:
TestDir
│
├─ blue.png #Blue A4 page
├─ blue2.png #Blue A4 page
├─ green.png #Blue A4 page (sorry OCD people)
├─ red.png #Yellow A4 page (sorry OCD people)
├─ yellow.png #Yellow A4 page
├─ yellow2.png #Yellow A4 page
├─ pink2.png #Pink A4 page
├─ pink.png #Pink A4 page
└ TestDir2
│
├─ yellow.png #Blue A4 page
└─ yellow.png #Blue A4 page
pink2.png
e pink.png
foram criados. pink2.png
foi criado primeiro, depois pink.png
8 duplicate photos were not imported:
/home/tim/Pictures/Test/red.png
/home/tim/Pictures/Test/yellow2.png
/home/tim/Pictures/Test/green.png
/home/tim/Pictures/Test/blue2.png
(and 4 more)
3 photos successfully imported.
Os bem-sucedidos importados foram blue.png
, yellow.png
e pink2.png
.
Por causa disso eu suponho que ele usa um algoritmo de hash.
É preciso o suficiente para que a alteração de apenas um pixel de cor de verde para amarelo em uma página A4 faça com que ele não seja detectado como duplicado. Muito preciso então!
Na verdade, acabei de encontrar este post aqui :
Assim que este bug for corrigido, a Shotwell usará (exclusivamente) um MD5 completo hash do arquivo para executar a verificação duplicada, que é uma maneira maldita e precisa de encontrar duplicatas.
Na verdade, no código-fonte , na linha 732 está o seguinte: Kudos @ Jeremie Miserez
imported_full_md5_table.has_key(prepared_file.full_md5)) {
Parece que ele usa um hash MD5!