Дело в том, что git
не хранит diff, он хранит простые файлы (см., Например, Pro Git book ).
Для хранения: через некоторое время (или после вызова git gc
) он пытается упаковать аналогичные файлы в файл пакета ( см. Здесь ), где он каким-то образом использует различие между двумя файлами.
Я не знаю, сможете ли вы подключиться к созданию packfile с помощью какого-нибудь внешнего плагина.
Вы также должны были бы подключиться к обнаружению сходства git между файлами, которое в значительной степени зависит от обнаружения похожих строк (например: куски байтов, разделенные '\n'
)