Какой посоветуете алгоритм для поиска изменений в тексте?
Это называется rsync
Алгоритм простой: "дерево" чанков (если это код) и "цепочка" чанков (если это НЕ код).
1. Формируете два унифицированных "дерева" зависимых частей кода у старого и нового файлов в виде чанков (блоков).
2. Забираете только изменившиеся "ветки" общего унифицированного "дерева".

Разумеется, всё это придётся реализоввывать с "нуля" своими силами.