Pull to refresh

Простая система управления версиями для домашних проектов

Сегодня я начал маленький домашний проект и хотя команда состоит из меня одного, я, тем не менее, решил использовать систему контроля версий. На ее выбор, настройку и установку у меня ушел целый день.


Этим постом я просто хочу сэкономить кому-то время. Систему контроля версий можно настроить за 20 минут и далее написано как:

На работе используется Team Foundation Server, соответственно хотелось похожего интерфейса, функционала и интеграции в Visual Studio 2010. Замечу, что Express Edition не поддерживает интеграцию сторонних модулей, так что перманентный триал на 90 дней рулит.

Весь функционал TFS мне не нужен, нужна лишь система управления версиями.
Рассматривались Subversion + AnkhSvn, Git + Git Source Control Provider и Mercurial + HgScc. Материалов, посвященных сравнению этих систем очень много, в том числе и на Хабре.

Я остановился на последнем варианте. Решающим аргументом стал сервис для хостинга проектов Bitbucket. Для Git и Subversion есть GitHub, но он бесплатен лишь для OpenSource проектов, BitBucket же бесплатен для проприетарных проектов с числом разработчиков до 5. Ну и к тому же, я прочитал хабратопик «Как начать работать с GitHub: быстрый старт», и… Ну и в общем, теперь я пишу эту статью.
Зачем возится с BitBucket при проекте, состоящем из одного девелопера? Наверное, это просто перестраховка. Даже несмотря на использование RAID 1 для рабочей информации, хочется перестраховаться и хранить результаты своей работы еще где-то.

Итак, пошаговая инструкция для установки Mercurial Windows way (то есть без консоли):

  1. Скачать и установить Mercurial. Рекомендую выбрать установку и для Visual Studio 2008 и для Visual Studio 2010. У меня были проблемы когда я выбрал установку лишь для Visual Studio 2010.
  2. Скачать и установить Python. На сегодня для Mercurial нужно ставить Python 2.7.2.
  3. Скачать и установить HgScc. Надо сказать, что документация к HgScc отсутствует начисто. Считается, что пользователи должны пользоваться документацией, относящейся к Mercurial.
  4. Запустить Visual Studio, в Tools -> Options -> Source Control выбрать Mercurial в качестве плагина для системы контроля версий.
  5. Создать новый проект или зайти в существующий. В Solution Explorer выбрать Solution и в контекстном меню выбрать Mercurial -> Add to Source Control.
  6. Появится окно Create Repository, в нем оставим дефолтное значение Solution Location и нажмем Ok.
  7. Все, можно пользоваться локальным репозиторием. Единственное ухудшение по сравнению с TFS – не работает окно Pending Changes, вместо него приходится использовать модальное окно, открывающееся по Mercurial -> Commit в контекстном меню. Получается чуть медленнее. Здесь важно понимать, что когда вы совершаете commit, ваши изменения не идут сразу на сервер, они идут в локальный репозиторий на вашем компьютере.

В принципе, если вам нужен только локальный репозиторий, то на этом инструкция заканчивается.

Но Mercurial — распределенная система контроля версий, соответствено схема ее использования выглядит так: вы заливаете свои изменения на локальный репозиторий, затем синхронизируете свой локальный репозиторий с сервером (в данном случае BitBucket). Для проекта с одним разбработчиком это лишь беполезное усложнение, но для команды разработчиков это очень удобно.
Вот ролик, очень наглядно объясняющий почему это так удобно (in English).

Интеграция с BitBucket:

  1. Зарегистрироваться на BitBucket. Создать новый репозиторий для своего проекта, не забыв отметить, что он приватный.
  2. Подтвердить свой e-mail.
  3. Зайти в Mercurial -> Synchronize. Здесь в первой же строке Repository Path, есть иконка с изображением ведра – это соединение с BitBucket. Ввести данные для аутентификации и выбрать репозиторий на BitBucket, с которым вы хотите синхронизировать свой проект.
  4. Нажатие на кнопку Incoming позволяет узнать, какие изменения будут получены с сервера при нажатии кнопки Pull. Pull эти изменения непосредственно получает. Соответственно, Outgoing показывает, какие изменения будут переданы на сервер по нажатию кнопки Push, а Push передает эти изменения.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.