Кук-бук. Дома, на работе, везде

Если вам случается приносить домой задачи с работы, то рано или поздно вы столкнетесь с проблемой синхронизации разных версий файлов в ваших проектах. Чем крупнее задача и чем дольше сроки исполнения, тем более вероятно появление «каши» из разных вариантов файлов и фрагментов задач. Если над проектом работает несколько человек, хаос в проекте наступит значительно быстрее, и это будет уже не просто вероятным, а неизбежным финалом.

Не буду кормить вас долгими лирическими вступлениями. Мой рецепт облегчения жизни – использование систем контроля версий. Для тех, кто не знает, что это такое: система контроля версий — это, как правило, хранилище данных со следующими свойствами:

. данные часто изменятся, поэтому хранилище может предоставить доступ к любой версии файла (история изменений);
. хранилище может быть распределенным или централизованным (сервер);
. хранилище может разграничивать доступ разным пользователям и сохранять информацию об авторе, времени и характере изменений;
. хранилище может разрешать конфликтные ситуации (например, когда два пользователя редактируют один файл).

Поскольку стандартом де-факто сейчас является система SVN, рассказывать буду именно о ней.

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

Первым делом скачаем сам сервер. Его можно найти на сайте www.visualsvn.com в разделе Downloads. Программа называется VisualSVN Server (не cпутайте с VisualSVN – это плагин к среде разработки Visual Studio) и весит всего-то 3,8 мегабайта. Не удивляйтесь – она не поставляется на DVD и для нее не нужно покупать новый винчестер. Именно так и выглядят многие действительно хорошие программы. В процессе установки инсталлятор запросит у вас место установки (Location) и место для хранилищ (Repositories). Первое можно оставить по умолчанию, второе же лучше изменить. Я указал папку на диске, где храню файлы проектов (например, D:\SVN_repositories). Остальные параметры можно оставить по умолчанию. Нажмите кнопку «продолжить» и менее чем через минуту вы будете обладателем собственного сервера.

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

Если вы (пока, только пока) не матерый профессионал, вам будет проще работать не с командной строкой и не с этой консолью, а с более дружелюбными к пользователю программами, оснащенными графическим интерфейсом. Щелчком правой кнопки мыши на пункте Repositories вызовите контекстное меню и создайте свой первый репозиторий «test».

Единственное, что нам еще понадобится в этом окошке – создать пользователя, у которого будет доступ к вашему хранилищу.

Уже сейчас вы можете войти с помощью браузера на адрес https://127.0.0.1:8443/svn/ и обнаружить там (после ввода своих логина и пароля) созданные на компьютере хранилища-репозитории. В данный момент система бодро отрапортует о наличии одного пустого хранилища, но это временно. Возможно, браузер попытается воспротивиться «входу на сайт с неизвестным сертификатом» – не беспокойтесь. Этот сертификат, сайт и сервер – ваши, вы просто используете браузер, чтобы заглянуть на свой же компьютер.

Итак, свой сервер системы контроля версий, работающий по защищенному протоколу https, у нас есть. Можно зайти на него с помощью браузера, выпотрошить его с помощью консоли управления Windows, но хотелось бы большего комфорта. Его можно обеспечить с помощью распространенной утилиты для клиентского доступа к SVN. Она называется TortoiseSVN и доступна для свободной загрузки. Самый простой способ найти ее – зайти на сайт разработчика: tortoisesvn.tigris.org.

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

Осталась малость – попытаться разместить в хранилище какой-нибудь проект. Если вы дошли до использования систем контроля версий, у вас наверняка готовится к выходу суперкрутая онлайновая мега-ЭрПэГэ. Наверняка все рабочие файлы лежат в папке… Например, «С:/TEMP». Вот туда мы и отправимся.

Войдите в папку с проектами и щелкните правой кнопкой мыши. В контекстном меню выберите новый пункт TortoiseSvn, затем команду Export. Это означает, что вы хотите использовать хранилище данных на вашем сервере, которое будет обслуживать данный проект. В появившемся окне введите адрес тестового репозитория с вашего сервера «https://127.0.0.1:8443/svn/test» и нажмите OK. Если компьютер задаст вам вопрос о сертификате – отвечайте «Accept permanently», и он вас больше этим не побеспокоит.

Если вы теперь внесете в эту папку какие-либо изменения, это немедленно станет видно в проводнике Windows. Я, например, добавил в папку два новых текстовых файла

Выберите в контекстном меню проводника команду «SVN commit», все изменения, в том числе имевшиеся ранее здесь папки и файлы, будут отправлены на ваш сервер и отметятся в проводнике значком, который означает, что ваш проект синхронизирован с репозиторием и отличий между ними нет. Команда «SVN update» даст обратное действие, если файлы в папке проекта устарели, то есть были изменены другим пользователем – новые версии будут скачаны из репозитория и размещены в нужных местах.

Главное достоинство такого подхода заключается в том, что вы можете открыть доступ из Интернета к своему SVN–серверу и синхронизировать изменения из любой точки, где есть Интернет, а также работать с товарищами над одной задачей, находясь даже на разных концах планеты. Мне, например, показалось очень удобным оставить включенным домашний компьютер и не иметь проблем с разными версиями исходников, программируя дома, на работе или во время поездки в гости или на отдых. Разумеется, синхронизировать можно не только исходники программ, но и другие данные – например, эту статью, которая была написана за несколько дней на трех компьютерах, находящихся в разных местах. Главное – по завершении работы не забывать синхронизировать результаты с сервером.

Этот рецепт прост, доступен каждому и куда практичнее, чем носить с собой документы на флеш-брелке. На сегодня это все – пробуйте и становитесь не просто пользователем, а шеф-поваром на своей компьютерной кухне!

Поляков Александр. Lecosson@mail.ru


Компьютерная газета. Статья была опубликована в номере 40 за 2009 год в рубрике soft

©1997-2024 Компьютерная газета