Если стоит задача обновлять исходные файлы программ то есть такая концепция создания слепка различий и поставки этого файла для обновления.
В Linux есть специальные утилиты:
man diff
man patch
jungels.net/articles/diff-patch-ten-minutes.html
Есть реализация на питоне от гугла. С помощью нее можно будет поставлять апдейты в виде py файлов (тут я имею ввиду, что вы можете поставлять апдейт как python программу которая будет патчить сорцы используя необходимые патчи).
https://code.google.com/p/google-diff-match-patch/
Также можно использовать git для этого, как например это сделано в oh-my-zsh.
Вы можете оборачивать комманды git в своем апдейт приложении так, что для пользователя это будет прозрачно.