Apache Subversion Binary Packages
Find packages for your operating system:
The Apache Subversion project does not officially endorse or maintain any binary packages of the Subversion software. However, volunteers have created binary packages for different distributions and platforms, and as a convenience, we maintain a list of links to them here. If there are any problems with or questions about the different binary packages please send email to the Subversion users mailing list.
Note that binary packages usually come out about a week after the corresponding source release. Please don’t post to the mailing lists asking when a binary package for a given platform will be ready. The packagers already know when new source releases come out, and work as fast as they can to make binaries available.
Binaries are typically built from the latest stable release.
Note also that this list does not include distributions of larger collections of software of which Subversion is but one piece. Several vendors offer such things, but we concern ourselves primarily with Subversion itself. As such, the listing here is limited to those packages which may be reasonably considered binary distributions of Apache Subversion alone. If you are looking for more widely scoped, Subversion-related value-add offerings, we trust that $
Centos Linux ¶
CollabNet (supported and certified by CollabNet; requires registration)
WANdisco (supported and certified by WANdisco; requires registration)
Debian Linux ¶
Debian Project (maintained by Debian Project; client and server; svnserve is part of the subversion package, mod_dav_svn is in the separate libapache2-mod-svn package (formerly libapache2-svn))
WANdisco (supported and certified by WANdisco; requires registration)
Записки программиста
Краткая шпаргалка по основным командам Subversion
15 февраля 2016
Не могу сказать, что я большой фанат Subversion. По-моему, Git прекрасен, и никакие другие системы контроля версий не нужны. Тем не менее, работать с Subversion время от времени приходится, потому что нужно сделать checkout какого-то древнего полумертвого проекта или еще почему-то. Так что, в этой заметке мы рассмотрим основы работы с Subversion, ну и заодно почему он иногда может быть даже интереснее, чем Git. Заметка рассчитана на тех, кто уже имеет опыт использования Git или хотя бы Mercurial.
Перекрестная ссылка: Вас также может заинтересовать старенькая заметка Мой первый опыт работы с Subversion. Там речь идет больше про настройку серверной стороны, а также про использование всяких TortoiseSVN и прочих GUI. Данный же пост посвящен работе с уже существующими репозиториями из консоли.
Итак, почему же Subversion иногда может быть интереснее, чем Git:
- Считается, что централизованную систему контроля версий проще объяснить новичкам;
- Используются последовательные номера ревизий, ясно что за чем шло;
- Тут можно чекаутить отдельные каталоги и делать для них свои бранчи;
- Есть поддержка file lock, что иногда, пожалуй, может быть удобно;
- Subversion лучше работает с бинарными файлами и компактно хранит их дифы;
Я, впрочем, не гугу Subversion. Но в первом приближении, вроде, все верно.
Установка и настройка SVN (сервер+клиент)
По просьбам трудящихся, а так же учитывая, что есть статья по установке 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) по указанному при установке хосту: порту (например, 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:\repositories\example-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:\repositories\proj1 и C:\repositories\proj2, то указав параметром -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-folder\bin\svnadmin.exe. Если путь к snv-install-folder\bin еще не прописан в 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, подробно расписано в руководстве TortoiseSVN Клиент Subversion для Windows.
Дублировать это подробное руководство, конечно, желания нет, но все же super-fast-start work with tsvn опишу.
1) Для просмотра любого репозитория после установки TortoiseSVN вызовите контекствное меню на любом файле в системе, выберите меню TortoiseSVN→Repo-browser. В открывшемся окошке введите адрес репозитория с протоколом (например, localhost:8443/svn/test или svn://someserver:3690/proj1/trunc). Откроется окно просмотра репозитория (с помощью кнопки напротив строки адреса можно выбрать, какую ревизию просмотреть; HEAD — это последняя ревизия).
2) Для создания локального репозитория (не используя сервер) запускается пункт меню TortoiseSVN→Create repository here. на нужном каталоге. В Repo-browser такой репозиторий доступен по протоколу file:///.
3) Для скачки себе версии из существующего репозитория запускается пункт меню TortoiseSVN→SVN Checkout на каталоге, в который сольется версия.
4) Если вы еще не использовали SVN и хотите залить на сервер свою текущую версию исходников, запустите пункт меню TortoiseSVN→Import. на каталоге, в котором лежит версия (при этом не забудьте, что разрабатываемую ветку надо лить в trunk).
5) TortoiseSVN→Export. используется для получения чистой версии исходников из репозитория (без служебных файлов контроля версий).
6) Если контекстное меню вызвать на каталоге, который является локальной (рабочей) копией репозитория, контекстное меню значительно расшириться. Например, появятся пункты Update (слить последние изменения с сервера) и Commit (закачать ваши изменения на сервер).
На последок рекомендую почитать интересную серию статей Работа с Tortoise SVN.
Apache Subversion Binary Packages
Find packages for your operating system:
The Apache Subversion project does not officially endorse or maintain any binary packages of the Subversion software. However, volunteers have created binary packages for different distributions and platforms, and as a convenience, we maintain a list of links to them here. If there are any problems with or questions about the different binary packages please send email to the Subversion users mailing list.
Note that binary packages usually come out about a week after the corresponding source release. Please don’t post to the mailing lists asking when a binary package for a given platform will be ready. The packagers already know when new source releases come out, and work as fast as they can to make binaries available.
Binaries are typically built from the latest stable release.
Note also that this list does not include distributions of larger collections of software of which Subversion is but one piece. Several vendors offer such things, but we concern ourselves primarily with Subversion itself. As such, the listing here is limited to those packages which may be reasonably considered binary distributions of Apache Subversion alone. If you are looking for more widely scoped, Subversion-related value-add offerings, we trust that $
Centos Linux ¶
CollabNet (supported and certified by CollabNet; requires registration)
WANdisco (supported and certified by WANdisco; requires registration)
Debian Linux ¶
Debian Project (maintained by Debian Project; client and server; svnserve is part of the subversion package, mod_dav_svn is in the separate libapache2-mod-svn package (formerly libapache2-svn))
WANdisco (supported and certified by WANdisco; requires registration)