Мне нужно загрузить только измененные части файла обратно на сервер и объединить изменения на сервере.
В качестве первого варианта вы можете захотеть сэкономить немного кода и использовать rsync или другой эквивалент.
rsync
Если это не соответствует вашим потребностям, реализация алгоритма что rsync использует для этой цели, вероятно, более чем достаточно.