Да. Есть две основные причины, по которым я переключился на DVCS (Git и Mercurial) для своих собственных хобби-проектов. Во-первых, это проблема хранения резервных копий , а во-вторых, я много путешествую и использую несколько географически отдельных компьютеров .
Быстрое и простое резервное копирование
Я работаю как минимум с двумя клонами репозитория. Один из них является очевидным локальным для моей рабочей области, другой - тот, который я храню на своем файловом сервере (или в онлайн-хранилище, таком как github или bitbucket ), на который я дам дамп всякий раз, когда я заканчиваю с вещами на местном уровне. Создание резервной копии так же просто, как синхронизация репозиториев, другими словами, продвижение ваших изменений вверх по течению.
Работа в разных местах или на компьютерах
Вероятно, это менее распространенный сценарий для разработчиков с хобби-проектами, потому что я склонен путешествовать. Помимо моего домашнего компьютера, я иногда остаюсь у родителей, где держу свой старый компьютер (это достаточно модно для программирования хобби). Всякий раз, когда мне хочется взломать новые функции, я могу сделать это на этом компьютере, а затем просто синхронизировать репозитории, чтобы получить эти изменения, когда вернусь домой.
Простое разветвление / слияние
Не секрет, что DVCS обрабатывает ветвления / слияния довольно автоматически. Конфликты слияний случаются, но даже без таковых в централизованных инструментах контроля версий, например Subversion не очень помогает в слиянии даже в простых сценариях. Хотя я не использую эту функцию все чаще для личных проектов, есть некоторые разработчики, которые делают.
Я знаю одного подрядчика по программированию, который использовал git для отслеживания собственной работы над проприетарной системой в компании, которая все еще использовала SourceSafe для контроля версий. Git позволил ему легко отслеживать отдельные исправления, разветвляя каждое исправление, даже несмотря на то, что в конце он должен был объединить файлы вручную. Когда придет время регистрировать файлы в SourceSafe, он будет смотреть на различия в разных ветках, чтобы увидеть, какие изменения необходимы, а затем делать их. Скажем так, большая часть его времени была потрачена на ожидание того, чтобы его сверстники наверстали упущенное.