-
Notifications
You must be signed in to change notification settings - Fork 13
emdiff
emdiff - команда для сравнения содержимого двух торрентов по спискам предоставляемых ими файлов. Выводит список затронутых изменениями файлов во втором торренте по сравнению с первым. Сравнение файлов происходит поименно. Например:
$ emdiff t1.torrent t2.torrent
+ directory/file1
- directory/file2
~ directory/changed_file
? directory/changed_type
Ниже представлены расшифровки кодов:
-
+
В торрентеt2
существует файл, которого нет вt1
. -
-
В торрентеt2
нет файла, существующего вt1
. -
~
В обоих торрентах найден указанный файл, однако его содержимое различно. Эта метка ненадежна, пожалуйста, внимательно прочитайте замечания внизу страницы! -
?
Указанный путь имеет разный тип в торрентах. Например, в одном торренте этим именем назывался файл, а в другом торренте это каталог.
Собственных опций emdiff не имеет, но поддерживает общий набор стандартных опций для всех программ из emonoda (таких, как --help
и --config
). За подробностями обратитесь на страницу config.
Чем различаются два файла в бекапах emfetch?
$ emdiff backup/attack_on_titan.torrent.1380475600.bak backup/attack_on_titan.torrent.1380873522.bak
+ Shingeki no Kyojin [KANSAI]/[KANSAI] Shingeki no Kyojin - 25 1280x720.mp4
Чем отличается старый бекап от торрента, загруженного в клиенте?
$ emdiff backup/attack_on_titan.torrent.1380475600.bak 8237951c7e1abdfbbefce7e7996ed792d8bf2c5d
+ Shingeki no Kyojin [KANSAI]/[KANSAI] Shingeki no Kyojin - 25 1280x720.mp4
~ Shingeki no Kyojin [KANSAI]/[KANSAI] Shingeki no Kyojin - 23 1280x720.mp4
~ Shingeki no Kyojin [KANSAI]/[KANSAI] Shingeki no Kyojin - 24 1280x720.mp4
Если вместо любого из двух файлов указан хеш раздачи, то emdiff попытается вытащить список файлов этой раздачи из клиента. А указав два хеша, можно сравнить две раздачи, зарегистрированные в клиенте. Для использования этой возможности вы должны сконфигурировать клиент в ~/.config/emonoda.yaml
(за подробностями обратитесь на страницу config):
core:
client: rtorrent
В силу особенностей формата, нельзя точно определить, различается ли содержимое файлов, входящих два торрента. Файлы представлены единым потоком байтов, который режется на чанки фиксированного размера. Торрент так же несет в себе индекс со смещениями в данных, обозначающие границы файлов в раздаче. Границы чанков не совпадают с границами файлов, более того, в один чанк может входить несколько файлов. При определении различий содержимого используется сравнение размеров - это единственная информация о файле, которая хранится в торренте. То есть, если два файла будут различаться по содержимому, но их размер совпадет с точностью до байта, то emdiff не увидит между ними разницы. Таким образом, если в диффе присутствует символ ~
- то указанные файлы различаются точно, однако его отсутствие не говорит о том, что файлы не менялись. С другой стороны, символы +
, -
и ?
являются надежными и вы можете на них полагаться.
Некоторые клиенты записывают поле md5sum
для каждого из файлов, но на практике таких раздач я не встречал.