Вроде бы велосипед изобретаете, существуют же для этих целей системы контроля версий. Но они не ориентированы на произвольные двоичные данные, больше с текстом работают и то порой возникают конфликты которые в общем случае разрешить без вмешательства извне попросту невозможно. Представьте себе ситуацию когда три клиента вдруг решили изменить один и тот же блок, и каждый представляет свои уникальные изменения… кому отдать предпочтение? кто последний, тот и папа? а если при этом 4-й и 5-й вообще предлагают удалить эту часть с данными и вносят еще с десяток исправлений в разные части файла? С двоичными данными, да еще без знания особенностей структуры файла и логики работы с этими данными придумать «универсальное» решение кроме полной блокировки файла ото всех на время внесения исправлений — невозможно. Либо сохранять все варианты модификаций при невозможности устранить конфликт и разбирать их потом вручную.