Git и Yandex.Disk


Распределенность и гибкость Git'а позволили нам с братом реализовать очень интересный workflow. Я называю его "бомж-репозиторий".
Смысл в том, что удаленный репозиторий хранится не на сервере, а в синхронизируемой папке Яндекс Диске. Достаточно что бы там лежала только папка ".git". Компьютеры разработчиков так же держат у себя локальные копии репозитория. 



Основное и единственное преимущество - дешевая память. У меня, например, на диске свободно около 40 гигов (получил по акции), а максимальный размер репозиториев на github и bitbucket по 1 гигу.
Если ты пушишь в бомж-репозиторий, он автоматически синхронизируется на всех компьютерах и другие пользователи могут взять из него пулл. Таким образом, да, удаленный репозиторий прибывает некоторое время в неконсистентном состоянии, но синхронизация обычно не занимает больше нескольких секунд, так что с этим можно жить.
Еще одна хитрость, без которой не получится пушить в локальную папку. На клиентах нужно проставить глобальный параметр receive.denyCurrentBranch и core.bare.

git config receive.denyCurrentBranch updateInstead
git config --bool core.bare true
https://github.com/git/git/blob/v2.3.0/Documentation/config.txt

Опыт:

Пользуемся репозиторием уже больше месяца, все стабильно. Ни одной проблемы, связанной с таким расположением репозитория не выявлено. Однако, сказать что их не может быть нельзя. Обязательное условие коммита - это наличие подключения к сети и запущенный клиент Яндекс диска. Если окажется, что синхронизация началась после того как оба человека запушили изменения, то результат может быть непредсказуемый. К счастью, диск хранит историю и файлы возможно откатить. Все же, такая ситуация может оставить неприятный осадок.

Другая мысль к которой я пришел, это возможность реализации репозитория на одном из компьютеров, подключение к которому будет осуществляться через VPN-мост. Проблема этого решения только в том, что компьютер должен быть всегда включен, что превращает его в сервер. Кроме того, репозиторий в любом случае лучше хранить в облаке, на всякий случай.

Комментарии

  1. Запилил подобную бомш репку, да все действительно работает) Но постоянно смущает чувство, что, что-то пойдет не так)

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Siege Up! Editor (beta)

STM32F4 и программный выход в DFU