Если мне память не изменяет, то одно из основных условий бэкапа - копия должна быть хотя бы на другой физической машине (в идеале на удаленной машине). Вы собираетесь версии постоянно по сети гонять?
Зачем постоянно? Я делаю git push на другую машину с той же периодичностью, с которой бы делал туда же резервные копии обычными средствами. Кроме того, есть копия на этой же машине, но на другом физическом носителе, куда git push делается после каждого значимого коммита.
Системы управления версиями. Например, git. У меня весь домашний каталог под его управлением находится. В итоге (в частности) всегда есть возможность вернуться (временно) к любой отмеченной ранее версии любого файла; в том числе и .bash_history. Я в ближайшее время планирую написать именно о применении СУВ «в мирных целях». Если интересует, дам в этой теме ссылку, когда будет готово.
было-бы неплохо. я юзаю для этого hg. Удобнее не просматривать файл "за вчера", а просматривать diff прошлого и сегодняшнего (наверное git так тоже умеет).
Не знаю, как hg, а git хранит именно файлы целиком.
не знаю как в git, а в hg сохраняется вся история изменений целиком. но речь идёт о бандлах, которые передаются от источника к месту назначению - если в ревизии 667 добавилась одна строка, то в репозиторий с ревизией 666 эта строчка и затолкается. Причём как я понял, не просто 1 строчка, а сжатая bzip2 строчка.
Не знаю, как hg, а git хранит именно файлы целиком.
Не совсем так. При commit'е в репозиторий помещаются файлы целиком, но при вызове (явном или неявном, эта команда автоматически вызывается во многих случаях) git gc они заменяются сжатыми диффами.