- Настройка SVN
- Что такое система контроля версий
- Настройка сервера (шаг 1)
- Установка клиента (Шаг 2)
- Настройка структуры хранилища (Шаг 3)
- Создание рабочей копии (Шаг 4)
- Изменение файлов проекта (Шаг 5)
- Применение изменений файлов (Шаг 6)
- Откат к предыдущей версии (Шаг 7)
- Читайте также похожие статьи:
- Установка и настройка SVN (сервер+клиент)
Настройка SVN
Здравствуй, уважаемый читатель блога LifeExample. При разработке любого более-менее крупного проекта невозможно обойтись без системы контроля версиями (SVN). Настройка SVN может загнать в тупик многих начинающих web разработчиков. Я до недавнего времени также пребывал в замешательстве и больших вопросах относительно установки и настройки SVN.
Дабы уберечь вас от изучения уймы полезной и бесполезной информации, доступной в интернете, я хочу показать вам, как выглядит настройка SVN по шагам, а также рассказать, что такое система контроля версий.
Что такое система контроля версий
Система контроля версий (по англ. Version Control System, сокращенно VCS) состоит из двух частей:
- Сервер, он же хранилище, он же репозиторий — где хранятся все файлы проекта, а также история их изменения.
- Клиент — программа для работы с хранилищем, каждый клиент имеет свою локальную копию файлов проекта, с которой работает разработчик.
VCS предназначена для упрощения совместной разработки проекта, несколькими и более программистами.
Многие начинающие программисты одиночки при написании кода, создают (backup) копии папок, с программой помечая их текущей датой, или порядковым номером.
Вспомните ваш процесс разработки, какого либо проекта. Я уверен, что выше описанная ситуация вам знакома. А сталкивались ли вы с ситуацией, когда вам нужно вернуться не к последней версии, а скажем к одной из сделанных месяц назад?
Проблема в том, что с таким подходом, мы не можем с уверенностью сказать, какие были произведены изменения спустя месяц, и что было сделано на момент создания копии проекта.
Благодаря системам контроля версий, можно не только быть всегда в курсе введенных изменений относительно любой сделанной ранее копии программы, но и вести разработку проекта в команде с другими программистами.
Если вы интересовались вакансиями web разработчиков, то не могли пропустить одного из требований к кандидатам, встречаемое теперь почти в каждом предложении.
Именно система контроля версий Subversion (SVN) применяется в большинстве организаций, поэтому я и расскажу сегодня о работе и настройке с SVN.
Настройка сервера (шаг 1)
Целью статьи является не только познакомить вас с системой контроля версий, но и дать возможность попрактиковаться с её использованием, поэтому сервер я предлагаю разместить локально. Поскольку не у всех есть возможность выделить под него отдельный хостинг.
Примечание! Разработчики не советую пользоваться локальной версией, в режиме работы команды. Локальная версия подходит только для ведения проекта одним программистом.
Чтобы самостоятельно настроить SVN server, можно скачать, одну из предлагаемых на официальном сайте , программ с SVN сервером в комплекте, или же ограничиться чистым SVN сервером и скачать Subversion 1.7.
Так, как статья рассчитана на новичков, и предполагает что, вы уважаемые читатели, совершенно не понимаете, как самостоятельно установить и настроить SVN, я покажу вам самый кротчайший путь, от неведения к действиям, с помощью популярной в области систем контроля версий программы TortoiseSVN.
TortoiseSVN — это бесплатный клиент для системы контроля версий Subversion, выполненный как расширение оболочки Windows. Вся прелесть программы заключается в том, что она не только является клиентом, но и может автоматически в несколько кликов мыши создать локальный SVN сервер, пригодный для работы.
Таким образом, чтобы настроить SVN сервер, первым делом нам нужно скачать и установить программу TortoiseSVN.
После инсталляции программы, в контекстном меню проводника должны появиться характерные для TortoiseSVN пункты меню.
Организуем хранилище наших проектов, для этого на диске С:\ создадим новый каталог с именем SVNrepository , откроем его, и щелкнув правой кнопки мыши, в контекстном меню выбирем TortoiseSVN->»Создать здесь хранилище» .
Каталог SVNrepository должен заполниться файлами вышеприведенной структуры, после чего можно считать, что мы завершили настройку SVN сервера и готовы к работе.
Установка клиента (Шаг 2)
Как это ни странно но, клиентское приложение мы уже установили, и можем благополучно пользоваться им. Запустить его привычным всем методом через кнопку пуск или с ярлыка на рабочем столе – не получится, поскольку оно уже успешно работает.
При установке инсталер TortoiseSVN создал соответствующие службы, которые теперь будут запускаться автоматически с запуском windows. Благодаря этим службам в контекстном меню проводника стали доступны новые пункты меню.
Собственно с их помощью, и будет происходить вся последующая работа с системой контроля версий. Такая полезная интеграция клиента SVN, прямо в проводник windows сократит до нуля, время на изучение интерфейса нового клиента, ведь в наше время все привыкли пользоваться мышкой и контекстным меню.
Настройка структуры хранилища (Шаг 3)
Закончив настройку составляющих SVN, сервера и клиента, я предлагаю немножко попрактиковаться, и посмотреть, как же все это должно выглядеть и работать.
В документации к данной программе разработчики советуют использовать в хранилище три определяющих каталога:
В каталоге trunk расположим основной проект, над которым будем вести работу.
Каталог branches будет содержать последующие копии ответвлений проекта, или проще говоря – версий проэкта.
Не совсем ясным для меня осталось назначение папки tags для копий меток, пока в голове нет четкой картины, где бы она могла понадобиться.
Разработчики в руководстве упоминают о том, что любая организация – каталога, имеет право на существование, и определяется только требованиями конкретного проекта. Именно поэтому, я создам в репозитории (хранилище), всего два каталога.
В trunk я намерен хранить текущую реализацию проекта, а в branches все разрабатываемые в прошлом и в дальнейшем версии.
Т.е. формально я представляю себе репозиторий такого вида:
Из этой структуры следует, что на момент разработки версии v3 в текущий момент успешно выпущена и поддерживается версия v2.
Чтобы создать каталоги в хранилище, нужно открыть контекстное меню папки SVNrepository и выбрать пункт TortoiseSVN->»Обозреватель хранилища» . Откроется окно для работы с хранилищем.
В котором с помощью все того же контекстного меню, можно будет создать необходимые каталоги.
Попутно добавим в /branches каталог /release v1 , в котором будут храниться версии первой разрабатываемой версии проекта.
Заметьте при создании или редактировании файлов и каталогов, мы можем оставлять комментарии, для упрощения дальнейшей навигации по хранилищу.
Основа для работы готова, закончена настройка SVN сервера под конкретный пример, теперь давайте начнем разрабатывать наш тестовый проект.
Создание рабочей копии (Шаг 4)
В папку branches/release v1 добавим файл ReadMe.txt нашего, пока не существующего, проекта. Соответственно, нужно изначально подготовить данный файл, и осилить написать туда пару строчек текста, зачем, расскажу позже.
Перенеся файл в репозитории, мы наконец-то можем возрадоваться началу процесса разработки проекта и контроля его версий. Теперь откройте любой каталог у себя на компьютере, в котором планируете создавать проект. Пусть это будет: C:/Project1 .
В контекстном меню выберите пункт «SVN извлечь«, укажите в качестве URL хранилища, путь до папки с версией v1:
Подтвердите выбор, нажатием на кнопку «Ок«, и наблюдайте ха процессом извлечения, новой рабочей копии из репозитория.
Обратите внимание, на папке проекта C:/Project1 появилась пиктограмма в виде зеленой галочки. Это означает, что все прошло успешно и рабочая копия полностью синхронизирована с хранилищем.
Изменение файлов проекта (Шаг 5)
Следующим шагом немного изменим, содержимое файла C:\Project1\ReadMe.txt , можете внести любые изменения, на свое усмотрение.
Как только мы сохраним изменения система SVN установит на файле пиктограмму восклицательного знака, означающую то что, данный файл в текущей рабочей копии был изменен. Такой же знак отличия получит и папка в которой находится редактируемый файл.
После завершения всех изменений, нужно выгрузить рабочую копию обратно в репозиторий, что бы она была зафиксирована, и получила возможность быть восстановленной в любое время.
Применение изменений файлов (Шаг 6)
В контекстном меню папки Project1 выберем пункт «SVN фиксировать«, система предложит указать комментарии, перед тем как файлы будут загружены на сервер. Не ленитесь их заполнять, поскольку в последствии, они сыграют вам на руку при необходимости отката версий.
Кроме того в открывшемся окне, мы можем произвести сравнение файла с предыдущими его версиями. Если вы следовали моим советам, и изменяли строки ReadMe.txt , то сможете оценить прелесть работы встроенной в TortoiseSVN программы для стравнения текстовых файлов. Для этого выберите в контекстном меню, пункт «Cравнить с базой«.
На первый взгляд может показаться сумбурно, и не понятно, но спустя некоторое время, вы оцените удобность работы данного приложения.
Подтвердив фиксацию, изменений, папка Project1 , вновь приобретет пиктограмму галочки, и вы сможете дальше работать с копией, а все изменения зафиксируются в хранилище, и в последствии, мы запросто сможем восстановить оду из копий измененных файлов.
Откат к предыдущей версии (Шаг 7)
Если спустя некоторое время, стало ясно, что все идет не так, и мы хотим вернуть файлу прежний вид, сделать это можно удобным способом. В контекстном меню файла C:\Project1\ReadMe.txt выберем пункт «Обновить до ревизии«
Заметьте что по умолчанию, система SVN предлагает обновиться до HEAD ревизии, т.е. до последней, но мы можем указать номер ревизии, к которой нужно откатить файл. Если номер не известен, можно использовать Журнал ревизий, и отметить именно ту версию, которая нас больше всего устраивает. Подтвердив выбор кнопкой «ОК", файл будет заменен более ранней версией.
Настройка SVN сервера как оказалось, заняла меньше времени, нежели описание процесса работы с системой контроля версий. Но зато получился неплохой мануал для начинающих. Тем кто столкнулся с проблемами в настройке SVN, или возникли вопросы по использованию TortoiseSVN, я рекомендую, не стесняясь писать комментарии к статье.
Читайте также похожие статьи:
Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.
Установка и настройка SVN (сервер+клиент)
Автор: feedbee
Источник: habrahabr
По просьбам трудящихся, а так же учитывая, что есть статья по установке SVN (правда +Trac) под Linux, решил написать краткое описание установки и настройки SVN для Windows.
Ничего нового для людей, хорошо знающих и работающих с SVN, здесь не будет. Цель статьи — помочь некоторому проценту новичков, пребывающих на Хабре, таки осилить изучение этой системы контроля версий.
С самого начала сообщаю, что для SVN есть подробное руководство. Называется оно svn-book и доступно на сайте и идет вместе с CollabNet Subversion-server. Так же про установку и настройку svnserv с Apache есть описание в учебнике по TortioseSVN (довольно хорошая подробная помощь на русском).
На самом деле SVN-клиент может отлично работать и без сервера. Репозиторий (хранилище кода) можно создать в любом каталоге на собственном HDD, или в сетевом каталоге. Сервер требуется лишь для удаленного доступа к репозиторию, не больше. Локальный репозиторий годится, если над проектом работает один человек и ему просто нужна система контроля версий своего приложения и бэкапы.
Если работа ведется в команде или требуется удаленный доступ к репозиторию (через Интернет, например), нужно устанавливать SVN-сервер. Он может работать самостоятельно, либо через веб-сервер Apache. В первом случае доступ к репозиториям будет по протоколу svn://, во втором — http(s)://. Доступ через веб-сервер нужен при проблемах с файрволом, когда он пропускает только HTTP-трафик, а так же для работы некоторых утилит-примочек к SVN-серверу.
Установка сервера
Самую свежую версию svn-cервера всегда можно найти на сайте subversion.tigris.org. Чистый svn-сервер без Apache в комплекте, и без визуальных примочек доступен только для версии 1.4.6, в то время как текущая версия 1.5.0. Для версии 1.5.0 есть выбор между CollabNet Subversion-server-1.5.0 (
5 MB). Первый идет в комплекте с Apache, второй — с Apache и плагином для Windows Management Console. Так же для VisualSVN есть платная возможность интеграции с Visual Studio.
A. Установка и настройка сервера VisualSVN (svn-сервер + Apache + консоль управления) самая простая. Эту версию нельзя установить без Apache.
1) Скачиваем файл VisualSVN-Server-1.5.1.msi или новее. Запускаем установку.
2) В мастере установки указываем, использовать ли для доступа HTTPS, либо просто HTTP. Указываем порт для прослушивания по выбранному протоколу и способ аутентификации. Так же указываем каталог, в котором будут храниться репозитории.
3) После установки открываем Management Console (через Пуск, например) и создаем пользователей и репозитории.
Теперь ваши репозитории доступны через выбранный протокол (HTTP или HTTPS) по указанному при установке хосту:порту (например, https://localhost:8443/svn/). Их можно просматривать как из браузера (через xsl), так и из SVN-клиета.
Работа с сервером VisualSVN безусловно самая простая.
B. Установка CollabNet Subversion Server (svn-сервер + Apache опционально).
1) Скачиваем файл CollabNetSubversion-server-1.5.0-23.win32.exe или версию новее. Запускаем его на установку.
2) Шаг Choose Components. Устанавливаем флажок SVNSERVE в любом случае. Если требуется установить так же Apache для SVN, устанавливаем флажок напротив него.
3) На шаге sunserve Configuration устанавливаем порт для sunserve (по умолчанию 3690, менять его смысла нет, если он не занят) и путь к репозиториям (каталог, где вы будете создавать отдельные репозитории в виде подкаталогов).
4) Затем настраивается Apache: хост/порт, путь к репозиториям (тот же, что и для svnserve) и префикс для URL (http://host:port/prefix). Префикс нужен на случай, если Apache будет использоваться не только для обслуживания SVN.
После установки появятся две новых службы Windows: Subversion Server (наш svnserv.exe) и Apache2.2 (если он был включен при установке). Чтобы все заработало их нужно запустить.
С. Установка svnserve 1.4.6 (чистый svn-сервер).
1) Скачиваем файл svn-1.4.6-setup.exe. Запускаем его на установку. При установке ничего кроме целевого каталога указывать не надо. После установки этот каталог надо добавить в переменную среды PATH (не помню, возможно это делается автоматически).
2) Создаем репозитории командой: svnadmin create c:repositoriesexample-repository
3) Создаем сервис. Команда в консоли: sc create svn_svr binpath= «c:\Program Files\Subversion\bin\svnserve.exe —service -r C:\repositories\» displayname= «Subversion Svr»
Здесь -r C:repositories — адрес каталога с репозиториями, т.е. от него потом будут вычисляться пути. Например, если есть 2 репозитория: C:repositoriesproj1 и C:repositoriesproj2, то указав параметром -r C:repositories потом пути к репозиториям будут: svn://localhost:3690/proj1 и svn://localhost:3690/proj2 соответственно. Порт 3690 устанавливается по умолчанию, но его можно поменять (подробности в svn book).
4) Запускается сервис автоматически при старте Windows или из списка служб.
Именно эту работу (если не считать установку Apache) сделал за вас установщик CollabNet Subversion Server. В случае установки svnserve 1.4.6 доступ к репозиторию будет только по протоколу svn://.
D. Создание репозитория. Выделяю этот пункт отдельным разделом. Если в VisualSVN создание репозитория производится кликом мыши, то для svnserve (в том числе в версии от CollabNet) репозиторий создается из консоли. В поставке snv-сервера есть файл snv-install-folderbinsvnadmin.exe. Если путь к snv-install-folderbin еще не прописан в PATH, сделайте это.
Чтобы создать репозиторий, откройте консоль (cmd) и перейдите в каталог для хранения репозиториев, который вы указывали при установке (CollabNet) или создании сервиса (svnserve 1.4.6). Создайте новый пустой подкаталог (например, example-repository). В консоли выполните команду: svnadmin create example-repository. В только что созданном каталоге появится структура файлов svn. В них есть много полезных «штук», о которых можно почитать в svn-book и учебнике.
В подкаталоге conf можно настроить основные параметры репозитория. Прежде всего требуется закрыть доступ в репозиторий кому-попало. В файле svnserve.conf раскомментируем строки
# anon-access = read
# auth-access = write
Не забудьте убрать так же пробел после #, т.к. иначе будет ошибка чтения конфига. anon-access определяет доступ анонимным пользователям, auth-access — зарегистрированным. Они могут принимать значения «write», «read» и «none». Обычно anon-access = none и auth-access = write.
Далее надо раскомментировать # password-db = passwd, а в файл passwd в этом же каталоге добавить строку user = password.
Для начала такое определение доступа годится, но в последствии конечно пароли надо шифровать (читаем svn-book).
На этом установка сервера закончена и можно установить клиент.
Установка клиента.
Некоторые профессионалы предпочитают работать с консолью. Наверное это не самый удобный способ, особенно для новичков, поэтому рассматривать его не будем. Другие работают с SVN через плагины к своим IDE. Это самый лучший способ, но поскольку разных IDE много и плагинов к ним тоже, в этой статье работу с ними не описываем.
Самым популярным и признанным клиентом SVN под Windows является TortoiseSVN. После его установки вы не получите отдельной программы, которую можно «классически запустить», клиент встраивается в проводник Windows, а команды для него доступны из контекстного меню файла (в т.ч. и в Total Commander).
Описывать установку клиента нет никакого смысла, там все элементарно просто.
О том, как работать с TortoiseSVN, подробно расписано в руководстве Create repository here. на нужном каталоге. В Repo-browser такой репозиторий доступен по протоколу file:///.
3) Для скачки себе версии из существующего репозитория запускается пункт меню TortoiseSVN→Import. на каталоге, в который сольется версия.
4) Если вы еще не использовали SVN и хотите залить на сервер свою текущую версию исходников, запустите пункт меню TortoiseSVN→SVN Checkout на каталоге, в котором лежит версия (при этом не забудьте, что разрабатываемую ветку надо лить в trunk).
5) TortoiseSVN→Export. используется для получения чистой версии исходников из репозитория (без служебных файлов контроля версий).
6) Если контекстное меню вызвать на каталоге, который является локальной (рабочей) копией репозитория, контекстное меню значительно расшириться. Например, появятся пункты Update (слить последние изменения с сервера) и Commit (закачать ваши изменения на сервер).
На последок рекомендую почитать интересную серию статей Работа с Tortoise SVN.