Так как наша команда программистов ведет разработку сразу несколько проектов, довольно быстро возникла необходимость в системе контроля версий.
Естественно, поиски были начаты с изучения Хабра — и привели к неожиданному результату. Несмотря на то, что системы контроля версий появились ещё в 1986 году, большинство туториалов по работе с современными системами контроля версий оказались неполными и сильно завязанными на работу с командной строкой.
Мы ничего не имеем против командной строки в целом, но в нашей небольшой команде разработчиков (4 человека) фанатов работы с командной строкой нет :).
Почему мы считаем, что работа с командной строкой неэффективна?
- Трата времени на ввод данных. Набивать команды намного дольше, чем кликать мышкой.
- Трата времени на обучение. Изучение нового синтаксиса в эпоху понятных интерфейсов однозначно дольше, чем обучение графическому интерфейсу.
- Вероятность ошибки. Ошибиться при вводе данных через командную строку легче (человеческий фактор никто не отменял).
- Нарушение принципов автоматизации. Возможно, это самый главный пункт. Компьютер создан для ускорения работы и замене человека при выполнении рутинных операций. В случае с командной строкой мы всегда работаем вручную, по сути, приходится каждый раз писать один и тот же программный код (пусть и примитивный).
К сожалению, нам не удалось найти полноценного русскоязычного мануала по работе с современными системами контроля версий. Собрав информацию из разных статей и англоязычных видео на YouTube, мы решили сделать своё собственное руководство, которое:
- Будет пошаговой инструкций (по ней же будут работать наши программисты).
- Будет работать от начала и до конца (то есть по ней вы получите небольшой, но законченный результат — работающую распределенную систему контроля версий).
- Будет работать с использованием только графических интерфейсов (причины см. выше).
Вступление
Вопреки ожиданиям матерых сисадминов и прочих любителей и фанатов работы с командной строкой, в данной статье не будет никаких команд, выполняемых с помощью командной строки. Вся статья написана языком понятным даже тем, кто только недавно начал программировать, но уже задумался о внедрении VCS (системы контроля версий). Каждый шаг настройки VCS разжеван до мелочей с приведением принскринов и дополнительных пояснений.
Если вы не любитель мануалов «Для чайников», то можете не читать данную статью и пойти своим путем в решении задачи подъема VCS.
Используемые программы и сервисы
Для развертывания VCS (системы контроля версий) мы будем использовать следующие программы и сервисы:
- Mercurial — кроссплатформенная распределенная система управления версиями, разработанная для эффективной работы с очень большими репозиториями кода.
- TortoiseHg — графический фронтенд для системы контроля версий Mercurial.
- Bitbucket — веб-сервис для хостинга проектов и их совместной разработки, основанный на системе контроля версий Mercurial и Git.
Развертывание система контроля версий – пошаговая инструкция
1. Скачиваем и устанавливаем к себе на компьютер TortoiseHg с официального сайта: http://tortoisehg.bitbucket.org/
Данный клиент необходимо будет устанавливать на всех компьютерах, с которых будет вестись совместная разработка проектов.
В данной инструкции все шаги настройки и работы с системой контроля версий будут производиться с использованием TortoiseHg версии: 2.10.1 for Windows 64-bit with Mercurial 2.8.1.
2. Регистрируемся в веб-сервисе Bitbucket: https://bitbucket.org/
Весь процесс регистрации сводится к заполнению контактных данных (Username, Email и т.д.) и подтверждения указанного при регистрации email-адреса нажатием на кнопку «Confirm this email address» в полученном после регистрации письме.
Регистрироваться в сервисе Bitbucket потребуется также всем участникам вашей команды разработчиков. К великому счастью стартапов в данном сервисе есть бесплатный аккаунт, который позволяет создавать приватные репозитории с 5-ю пользователями. Также есть возможность увеличения максимального числа членов команды, участвующей в разработке на бесплатном тарифе до 8 человек.
С полным списком тарифов вы можете ознакомиться, пройдя по ссылке: https://bitbucket.org/plans
3. Зайдя в ваш аккаунт в сервисе Bitbucket, вы можете сразу изменить язык интерфейса вашего аккаунта на русский.
Для этого в верхнем правом углу главного меню из выпадающего списка выберите раздел «Manage account» и на открывшейся странице выберите из выпадающего списка «Language» нужный вам язык интерфейса
4. Для создание репозитория для вашего проекта вам необходимо перейдите на главную страницу вашего аккаунта (https://bitbucket.org/dashboard/overview) и нажмите на кнопку «Создайте ваш первый репозиторий»
5. На странице создания нового репозитория укажите следующие настройки:
— Имя – Укажите имя вашего нового репозитория. Данное имя используется для построения ссылки доступа к вашему репозиторию.
Важно! Лучше указывать имя латинскими буквами, иначе ссылка на репозитрий будет заканчиваться дефисами и иметь сложный к пониманию вид: httрs://вашлогин@bitbucket.org/вашлогин/———
— Описание – Укажите краткое описание вашего репозитория (поле не обязательное)
— Уровень доступа – Поставьте галочку, если вы хотите, чтобы доступ к вашему репозиторию имели только члены вашей команды разработчиков (приватный репозиторий).
— Создание форков – Поставьте «Разрешить только приватные форки»
— Тип репозитория – Выберите «Mercurial»
— Управление проектом – Поставьте галочки «Трекер задач» и «Вики»
— Язык – Выберите язык разработки, на котором написан ваш проект. В моем случае это PHP.
По завершению указания всех настроек страница будет выгладить приблизительно так:
Еще раз проверьте введенные данные и если все введено корректно, жмем кнопку «Создать репозиторий».
6. После создания нового репозитория вы попадете на страницу «Начало работы»:
Где, нажав на ссылку «Я начинаю с полного нуля», сможете получить ссылку для подключения к вашему репозиторию с помощью TortoiseHg.
Ссылка будет иметь вид: httрs://вашлогин@bitbucket.org/вашлогин/имярепозитория
7. У себя на компьютере создаете пустую папку, в которой будут в дальнейшем храниться файлы вашего проекта, подключенные к системе контроля версий Mercurial.
Важно! Папка должна быть пустой. Мне, например, для подключения папки с уже существующим проектом (кучей программного кода) пришлось временно перенести все файлы в другой каталог (сделать резервную копию — backup). Позже мы вернем все файлы на место, а пока нужно полностью очистить папку для подключения.
Далее нажимаем на пустой папке, предназначенной для хранения файлов проекта, подключенных к системе контроля версий Mercurial, правой кнопкой мыши и из выпадающего меню выбираем пункт «TortoiseHg->Clone…»
8. В открывшемся окне вам необходимо указать в поле «Источник» ссылку для подключения к созданному вами репозиторию из п. 6
И нажать кнопку «Клонировать».
9. Система запросит у вас пароль от вашего аккаунта в сервисе Bitbucket, укажите его.
10. Если все было сделано без отклонений от данной инструкции, то в папке появится новый каталог «.hg» со служебными файлами созданного репозитория.
11. Теперь можно смело возвращать файлы (программный код) вашего проекта в папку, предназначенную для хранения файлов проекта, подключенных к системе контроля версий Mercurial
Важно! Служебный каталог «.hg» не трогайте. Он нужен для работы VCS.
12. Снова нажимаем правой кнопкой мыши на нашей папке проекта и из выпадающего меню выбираем пункт «Hg Commit…»
13. Вы увидите диалоговое окно, предназначенное для фиксации всех сделанных изменений, произведенных над вашим проектом (в данном случае мы добавили в изначально пустую папку проекта наши программные коды).
Вам необходимо выделить все измененные (добавленные) файлы, указать комментарий (например, Версия 1.00) к изменению и нажать кнопку «Фиксировать».
Система попросит подтвердить добавление, жмите «Добавить».
14. Если все было сделано правильно, то система зафиксирует произведенные изменения, и вы увидите приблизительно такое окно:
Собственно, в дальнейшем, когда будете вести разработку, после завершения небольшого куска кода, вы будете выполнять действие из п. 12 (нажимать «Hg Commit…») для фиксации проделанного изменения в системе контроля версия. Это даст вам возможность в любой момент времени откатить систему до предыдущей фиксации.
Учитывая вышесказанное, на практике следует писать более развернутый, чем «Версия 1.00», комментарий к каждой из фиксаций.
15. Далее нажимаем правой кнопкой мыши на папке проекта и из выпадающего меню выбираем пункт «Hg Workbench…»
16. В открывшемся окне вы можете видеть всю историю сохраненных (зафиксированных) изменений в коде, можете откатить к нужной фиксации, а также отправить изменения в созданный вами ранее репозиторий.
Для этого в панели управления выберите кнопку «Протолкнуть входящие изменения в».
После этого вам будут показаны диалоговые окна с просьбой подтвердить «проталкивание» и просьбой указать пароль от вашего аккаунта в Bitbucket. Соглашайтесь и указывайте пароль.
Система начнет копирование файлов в ваш репозиторий на сервере Bitbucket. Не спешите и дождитесь завершения процесса.
17. Теперь копия файлов вашего проекта храниться в вашем репозитории на серверах Bitbucket. В вашем аккаунте Bitbucket вы можете видеть всю историю работы с вашим проектом.
Промежуточные итоги подключения системы контроля версий (VCS)
На данный момент мы создали репозиторий и поместили в него все файли нашего проекта. То есть теперь вы можете подключиться к вашему репозиторию с любого компьютера и получить стабильную версию файлов хранящихся в нем.
Процесс подключения вашего второго компьютера заключается в копировании файлов из репозитория на второй компьютер. Вам нужно пройти шаги 1 – Установка TortoiseHg и 7 – Импорт файлов репозитория, для копирования файлов на второй, третий и следующие ваши рабочие компьютеры.
Подключение сотрудников к вашему репозиторию.
Основная цель подключения системы контроля версий (VCS) к своему проекту — это организация совместной работы. Т.е. пока вы разрабатываете систему один, вы в большинстве случаев можете обойтись без VCS, но если разработчиков несколько, то вероятность регулярной потери (затирания) программных кодов и конфликтов версий системы очень высока.
Поэтому давайте сейчас подключим к нашему проекту еще одного программиста (пригласим участника) и настроим ему рабочее место.
Подключение сотрудника к нашему репозиторию
18. Все сотрудники, которые будут иметь доступ к вашему репозиторию, должны быть зарегистрированы на сервисе Bitbucket. А также у них на компьютерах должен быть установлен TortoiseHg.
Как зарегистрироваться на сервисе и установить TortoiseHg, я рассказывал чуть ранее в данной инструкции. Поэтому данный процесс не должен вызвать у вас и ваших коллег никаких трудностей.
19. Зайдите в ваш аккаунт на сервисе Bitbucket:
Нажмите на кнопку «Отправить приглашение», расположенную в разделе «Пригласить участника на этот репозиторий».
20. Система выведет вам диалоговое окно с просьбой указать электронный адрес пользователя, которому вы хотите дать доступ к репозиторию. Помимо этого, вам понадобится указать права доступа («чтение» или «запись»). Т.к. в данной инструкции мы показываем, как подключить к репозиторию еще одного разработчика, то укажите «запись».
После того, как ввели email сотрудника и указали права доступа, жмите кнопку «Share».
21. Приглашенный участник получит на свой email письмо со ссылкой на приглашение. Ему будет необходимо пройти по данной ссылке и принять приглашение на доступ к вашему репозиторию.
Еще раз повторю, все участники вашего репозитория должны быть зарегистрированы в сервисе Bitbucket.
22. После того, как приглашение принято, новый участник будет видеть у себя в аккаунте данный репозиторий и свою ссылку на доступ к нему с помощью TortoiseHg.
23. Дальше вашему сотруднику необходимо выполнить 7 пункт данной инструкции для получения файлов проекта к себе на компьютер.
Все изменения, сделанные вами и вашими помощниками, будут сохраняться в вашем репозитории. Вы сможете смотреть, что и когда было изменено и при желании в любой момент откатите ваш проект к нужной версии.
Я думаю, вводную статью о развертывании системы контроля версий без использования командной строки можно на этом заканчивать. Прохождение описанных выше шагов позволит вам внедрить у себя на проекте полноценную VCS, т.е. пройдя все шаги, вы получите хоть и не большой, но законченный результат.
Данный подход мы применили для разработки проекта: АвтоОфис – платформа для интернет бизнеса
Если у вас после прочтения статьи появились вопросы ко мне или уточнения и дополнения инструкций, то пишите в комментариях. Буду очень благодарен, если усилите статью своим пониманием VCS.
P.S.: В следующей статье постараюсь доступным языком расписать, что такое «Ветки», «Метки» и «Форки» и как с ними работать.
ссылка на оригинал статьи http://habrahabr.ru/company/arnion/blog/206618/
Добавить комментарий