вторник, 8 мая 2012 г.

Персональный репозиторий

Все разработчики знают (или хотя бы слышали) о SourceForge, GitHub и тысячах подобных облачных сервисов, которые предоставляют относительно свободные svn или git репозитории разработчикам. С этим есть ряд проблем (основные, имхо):
  • Скорость иногда просто удручает.
  • За приватность проектов нужно платить (эти площадки всё таки для open source проектов).
  • Иногда не хочется засорять облако проектами в духе "я тестировал консоль", но где-нибудь этот один файлик  таки очень хочется оставить на память.
  • Не очень понятно, что на этих сервисах с местом.
Но тут приехал +Антон Маховер и подкинул идейку, от которой у меня мурашки по коже и я в восторге последнюю пару часов. Идея не нова, но я о таком не задумывался ранее.


Шаги для достижения счастья:
  1. Ставим Dropbox
  2. Ставим TortoiseSVN
  3. Добавить плагины в IDE по вкусу
  4. Создаём svn репозиторий внутри папки Dropbox
  5. Работаем как обычно!
Если есть необходимость рассмотреть этот процесс подробнее, со скриншотами, см. сюда (перевод).

Что мешает держать код в Dropbox как есть?
На самом деле - ничего. Это всё субъективно. Меня, например, банально раздражает то, что каждый раз когда я собираю проект или сохраняю файлик, изменения моментально начинают лететь по сети во все стороны.

Версионность в Dropbox'е есть, однако там всего лишь хранятся несколько последних копий файлов, на всякий случай. Не очень подходит в случае кода.

Ко всему прочему, синхронизируются всякие лишние конфиги IDE, бинарники и различный кэш того же решарпера. Если я сижу под виртуалкой, а обмен с хостом осуществляется с помощью Dropbox'а, уведомления об обновлениях добивают. Да, их можно отключить, я знаю.


Что получаем на выходе? 
Да дофига всего:
  • Прежде всего то, ради чего всё это делалось - версионность кода.
  • Репозиторий теперь локальный - про медленную скорость можно забыть.
  • Никаких лишних файлов в облаке и синхронизаций по движению мыши.
  • Совместные проекты? Проще просто, в Dropbox есть гибкий механизм расшаривания.
Конечно, у данного решения есть и свои минусы:
  • О безопасности речи не идёт.
  • С опознаванием автора кода в совместном проекте могут быть проблемы.
  • В Dropbox место тоже не очень то бесконечное, но на более-менее обычный код должно хватать с лихвой.
  • Расшарить проект с человеком, у которого нет svn уже не так тривиально.
  • Если Вы забудете закоммититься, изменения сами, кэп, не синхронизируются.
Надеюсь, решение будет полезным. В первую очередь я буду использовать это именно как персональный репозиторий.

А какие Вы видите плюсы или минусы в использовании SVN в тандеме с Dropbox?

Спасибо!
Хорошего дня!