Использование SVN в "домашних" условиях

Последнее изменение: 10/04/2009 20:55:02

Что такое Control Version System?

В переводе на русский - это система контроля версий. Такие системы предназначены для выполнения уймы различной работы, связанной с ведением версионности для файлов и директорий. Любых файлов, любых объемов, любых уровней вложенности. Системы контроля версий позволяют Вам в любой момент времени легко найти и восстановить ту версию файла, которую Вы сохраняли в репозитарий. В процессе работы над проектами, документами, или просто с какими-либо данными, может возникнуть необходимость в сохранении текущего состояния файлов и директорий. Бывает наступают моменты, когда где-то внутри появляется неприятное чувство: опасение перед внесением дальнейших изменений. Это мешает дальнейшей спокойной работе. Очень многие любят делать архивные копии, толку от которых потом ровно 0, потому что найти что-то в них, а уж тем более увидеть какие были различия между разными версиями файлами практически нереально.

В Интернете есть много информации о таких системах и описания, как их использовать. Чаще всего такие системы требует установки каких-либо серверных компонент, серверной части. И сервер, конечно же, чаще всего устанавливается на Линукс. Что и отпугивает многих пользователей от использования этого замечательного инструмента. Сразу отмечу, что Visual SourceSafe хоть и легко интегрируем с продуктом Visual Studio компании Microsoft©, но он мне никогда не нравился своими функциональными возможностями.

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

Tortoise SVN

Данный клиент предназначен для работы с SVN системой контроля версий. Не буду особенно вдаваться в историю, просто отмечу – на данный момент это одна из последних разработок в этой области, которая очень активно набирает обороты. Необходимость в ней возникла после того, как стали понятны все недостатки предыдущей не менее популярной системы CVS. И создавалась SVN теми же людьми, которые создавали CVS. Дополнительно исторический экскурс Вы без проблем найдете на просторах Интернета. Домашняя страничка этого проекта - http://tortoisesvn.net/.

Итак – клиент. Он существует для большого числа ныне существующих операционных систем. Проект open source, и его можно без проблем загружать и использовать. Скачать клиент под Windows можно здесь: http://tortoisesvn.net/downloads. Тут же можно скачать пакет для организации поддержки русского языка и проверки орфографии (это по желанию, по умолчанию дистрибутив поддерживает английский язык и два вида словарей – английский британский и американский).

Далее – стандартный процесс установки. Ставим по очереди клиент (надо перезагрузить компьютер), затем по желанию пакет для поддержки русского языка и словари для проверки орфографии русского языка. Перезагрузка требуется по причине интеграции клиента в Windows Explorer. Теперь у Вас в контекстном меню везде и всюду появятся следующая пара пунктов меню (для английского варианта): Image:localsvn1.gif

А где же сервер?

Как было сказано, системы контроля версий используют серверные решения в качестве основной базы данных, куда сохраняются все файлы. Но нас такое положение дел не устраивает. Честное слово, я думаю что мне, также как и Вам, совсем не хочется возиться с установкой серверных компонент (установка сервера под Линукс проблемы не составит, но его настройка может стать проблемой, а SVN-сервера под Windows нет и не будет). Когда я работал с этим клиентом, я использовал его с уже установленными серверами, и в этом проблем не было. Однако дома тоже бы хотелось иметь нечто подобное. И вот я, наконец, обратил внимание на следующий пункт в меню: «Create repository here…» («Создать здесь репозитарий…»). Данный функционал позволяет создать на винчестере (т.е. локально) базу данных, аналогичную серверному решению, которая позволит работать с системой контроля версий. Ну что – попробуем? Итак, я создал на винчестере в корне директорию для организации этот базы данных (например, C:\SVNRep). Вызываем контекстное меню для этой директории и выбираем тот самый пункт - «Create repository here…». Далее появится диалог, в котором предлагается выбрать один из двух форматов базы данных для репозитария: Image:localsvn2.gif

Желающие разобраться, в чем различие между этими двумя типами, без проблем я думаю, смогут найти информацию в Интернете. Я, не особо задумываясь, выбираю первый тип. Berkуley DB не рекомендуется использовать, если вы планируете делать репозитарий на сетевом диске (возможны проблемы, либо сразу либо через время), поэтому выбираем всегда FSFS. После нажатия на кнопку «ОК» в директории создается определенный набор файлов, после чего появится диалог с сообщением об успешном выполнении этой операции. Это был первый шаг – создание репозитария

Теперь второй шаг – задание рабочего каталога. Тут все немного проще. Допустим, я собираюсь создать новый или использовать уже существующий проект - D:\Project\Test. Все что нужно – это перейти на этот каталог, вызвать для него контекстное меню и выбрать пункт «SVN Checkout…» Image:localsvn3.gif

Здесь есть пункт, позволяющий указать, где находится репозитарий. Для серверных решений – в нем указывается http или https сервер, на котором установлен SVN-сервер. Но меня интересует вариант с локальным использованием SVN. Поэтому указываю в этом поле директорию, в которой только что создали базу данных репозитария. Для этого необходимо указать file:/// и имя директории где сделан репозитарий. Жму «Ок» - всё! Дальше можно работать в этой директории с SVN также же, как и с серверной базой – добавлять, удалять файлы, выполнять комиты и апдейты, искать различия в разных ревизиях и т.п. В-общем, полный функционал, предоставляемый этой системой контроля версий.

P.S. На официальном сайте есть полноценная документация на русском языке, в которой подробно рассказано об SVN – начиная с истории создания и заканчивая полным описанием всех функциональных ее возможностей. Надеюсь, что данная статья подтолкнет еще большее количество желающих использовать эту замечательную систему, даже для своих небольших проектов. Ссылка на страницу с документацией: http://tortoisesvn.net/translation_release_doc (может измениться).

3 июля 2006 г.