2008-10-27

Subversion

Я уже давно поставил subversion на свой домашний сервер (Synology). Раньше я "догфудил" нашу внутреннюю систему, и она работала очень хорошо даже на netbook-е, но мне всегда хотелось, чтобы она работала на linux-сервере. Subversion оказалась очень удобной, особенно для персонального использования:

  1. Есть варианты для ARM-процессора, что позволяет использовать Slug (Linksys NSLU2), или Synology, или даже Nokia N800.
  2. Её можно сконфигурировать для работы через inetd, когда она не висит постоянно в памяти. При персональном использовании это наиболее удобный режим.
  3. Один сервер может работать с несколькими репозитариями. Что позволяет создать не хранить мух с котлетами. Один для моих проектов, сыну - свой, один - как backup для всяких my documents, один для временных вещей, которые потом будут удалены и т.д.
  4. Можно быстро загрузить репозитарий из файла и сохранить в файл. Я сделал скрипт и загрузил свои проекты вместе с полной историей.
  5. Tortose Svn - как оболочка очень удобна. Даже spell-checker с подсказками имён функций из текста. Супер.
  6. Очень удобно, что сервер не хранит состояние клиента. Это просто гора с плеч. Никаких read-only атрибутов, никаких "открыть файл для редактирования". Просто работаешь спокойно, переписываешь всё вместе куда хочешь, если надо, потом система разберётся сама, что изменилось. И не надо никаких плагинов к Visual Studio.

Короче, я этой штукой очень доволен.  И вот что я подумал: нет никаких технических причин, по которым крупной компании нужна более мощная система. Фактически единственная причина - та же, по которой крупной компании нужен совет директоров и отдел кадров. Реально проекты должны разбиваться на мелкие функциональные части, которые вполне могут располагаться в малых серверах, где количество клиентов - это, по порядку величины, количество людей в команде. Команды периодически отправляют стабильные версии в вышестоящий сервер, где количество клиентов - порядка количества команд, и т.д. Сейчас это делается в крупных компаниях через ветки (branches), но нет особых причин, по которым все ветки должны располагаться на одном сервере. Я за децентрализацию.

No comments: