Вся прелесть истории магазина DVCS в том, что вы можете сделать это миллионами разных способов. Вы можете написать обработчик коммита, но мне было проще просто сделать это вручную push + cron.
Мой простой и, скорее всего, наивный подход:
Я толкаю в свой центральный репозиторий. Мой резервный сервер тянет из центрального хранилища каждые 10 минут. Каждый день в 2:30 центральное хранилище получает gzip'd и загружается на сервер резервного копирования. Когда я загружаю свою локальную машину, я загружаю последнюю резервную копию gzip и, если мне все равно, я могу записать ее на CD.
Таким образом, в любой момент у меня есть по крайней мере 3 довольно недавних резервных копии и 3 последние рабочие копии, хранящиеся в разных местах по всему континенту. Если все это потерпит неудачу, я буду больше беспокоиться о росте skynet, чем о том, что я потерял свой проект.