Я не против объединения репозиториев, но в этих конкретных случаях без него можно обойтись 1. См. команду diff. Она сформирует файл изменений, а Сергей подсунет его программе patch, которая внесет их в его исходник. Необходимое условие - Вы должны сообщить Сергею, на основании какой версии _его_ исходника вы вносили изменения.
2. Тут тяжелее. Но можно предложить следующий вариант.
Репозиторий домой относит только один программист (тот, что больше пишет кода). А Вы домой уносите рабочую копию исходников (не репоз.!), и при встрече тот программер переписывает репозитоирй, а вы, заменив устаревшую рабочую копию доработанной дома, обновляете из репозитория ревизии файлов, устраняете конфликты и т.д.