Я робив це деякий час, просто використовуючи git. Я не відслідковую весь домашній каталог, лише ті частини, які я активно змінюю. Сюди входить мій каталог home / bin, який містить безліч маленьких скриптів, мій каталог .vim та деякі більші проекти в інших каталогах. Також до репо додаються деякі конфігурації для терміналів і openbox, а також різні інші додатки.
Це працює досить добре, оскільки для всіх цих матеріалів є той самий набір дозволів, і я не переймаюся початковою міткою часу. Це доходить до того моменту, коли я планую розбити деякі з них на підмодулі, використовуючи git filter-branch
. Це дещо хитро, але оскільки між файлами в різних підкаталогах є взаємозалежності (наприклад, деякі .vim-скрипти можуть викликати скрипти з мого каталогу бін ... не дуже вдалий приклад, але, сподіваємось, ви зрозумієте).
Я не знайшов більш комплексних рішень, але також не вивчив жодного, включаючи історію git-home. Здається, було б досить складно поставити весь домашній каталог під контроль редакції, і було б багато змінних. Наприклад, якщо ви поставите свої профілі Firefox під контроль перегляду, ви закінчите накопичувати величезну кількість бінарних диференціалів. Також є такі речі, як ssh-ключі, які часто краще втрачати, ніж дублювати.
Якщо ви хочете відслідковувати дозволи (крім виконуваного біта, який вже git), мабуть, це буде гак, який це зробить. Він згадується в цьому потоці за замовчуванням на сервері .