Меню Рубрики

Установка svn клиента linux

Начало работы с SVN на Linux

Во- первых, установим SVN на Linux

Для того чтобы установить SVN, необходимо подключиться к Linux VPS через SSH.

Если вы используете Ubuntu, обновите пакеты ОС и установите SVN на сервере, используя следующие команды:

Если вы используете CentOS, вы можете использовать следующую команду для обновления пакетов ОС и установки SVN:

Чтобы проверить версию SVN, установленной на вашем сервере, используйте следующую команду:

Создайте учетную запись пользователя системы и переключитесь на этого пользователя:

Замените ‘someuser’ на действительное имя пользователя.

Создайте новый каталог для ваших файлов проекта/приложений/веб-сайта:

Создайте хранилище SVN с помощью следующей команды:

Установите соответствующие права доступа к файлам. Распределения на основе Debian, выполните следующую команду:

О распределении RPM на основе (при использовании Apache в качестве веб-сервера), выполните следующую команду:

Создайте файл ‘passwd’ в каталоге /home/someuser/svn/myapp/conf/passwd на сервере, который содержит информацию о аутентификации пользователя:

Если вы хотите добавить пользователей, используйте ту же команду, но без переключателя ‘-c‘, чтобы избежать перезаписи файла passwd.

Назначение разрешений для пользователей SVN с помощью файла authz (/home/someuser/svn/myapp/conf/authz):

Создание концептуальных групп, которые вам нужны, а затем добавить к нему пользователей:

Выберите уровень доступа с обоих разрешений и уровня проекта:

Чтобы дать разрешения для чтения и записи “allaccess” для пользователей, добавьте:

Для того, чтобы дать доступ только для чтения к “someaccess” пользователям к некоторому проекту нижнего уровня, добавьте:

Для того, чтобы скопировать неверсионное дерево вашего проекта/файлов веб-сайта и начать отслеживать в вашем хранилище SVN и создать промежуточные каталоги, введите следующие команды:

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

Для того, чтобы отправить изменения из рабочей копии в хранилище, используйте:

Используйте команду ‘svn add /path/file’, чтобы добавить файл из рабочей копии в хранилище). Файл будет добавлен в хранилище, когда вы делаете commit SVN.

Чтобы удалить файл из рабочей копии (или хранилище), используйте:

и файл будет удален из хранилища после команды svn commit.

Чтобы обновить изменения из хранилища в рабочую копию, используйте:

При наличии нескольких авторов, работающих над проектом/веб-сайтом, они имеют локальные рабочие копии на нескольких машинах, всегда запускайте команду ‘svn update’ перед внесением изменений в файлы, доступные в вашей рабочей копии. После этого, вносите изменения в файлы, а затем зафиксируйте изменения в хранилище после того, как только файлы будут изменены.

Для того чтобы применить различия между двумя источниками на пути в рабочей копии, используйте:

Для того, чтобы увидеть различия между этими двумя конкретными версиями файла, используйте:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

Установка и настройка 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.

источник

ТОП 5: Клиенты систем управления версиями (SVN)

Содержание

Автор — Андрей Мин (Andrew Min)

Nautilus Subversion Management Scripts

Набор SVN-сценариев для Nautilus — это отличный инструмент, если вам всего-то и нужно выполнить несколько простых команд. Это не отдельный клиент, а просто модуль для файлового менеджера Gnome. Установив его, вы сможете выполнять стандартные операции SVN, просто щёлкая правой кнопкой на файле или папке и выбирая команды. Если вам не нужен полнофункциональный клиент SVN, то набор SVN-сценариев Nautilus идеален для вас. Поддерживаемые функции: commit, add, checkout, diff, rename и некоторые другие.

Для установки вам нужен пакет «nautilus-script-collection-svn» из репозитория «universe».

RapidSVN — отличный выбор, если вы предпочитаете отдельный клиент. RapidSVN невероятно прост в использовании, но достаточно функционален, чтобы справиться с поставленными перед ним задачами. RapidSVN — это клиент основанный на wxWidgets, что позволяет ему выглядеть одинаково во всех рабочих средах и операционных системах. RapidSVN поддерживает все стандартные функции: import, export, checkout, update, commit, add, delete, move. Также имеется несколько дополнительных функций: bookmarks, cleanup…

Для установки RapidSVN вам нужен пакет «rapidsvn» из репозитория «universe».

Subcommander

Если, по тем или иным причинам, вам не нравится RapidSVN, то Subcommander — отличная альтернатива. Он, как и RapidSVN, хорошо смотрится на разных платформах, несмотря на использование библиотек Qt. Весь функционал объединён в действительно простом и понятном интерфейсе. Поддерживаемые функции: blame, checkout, diff, merge, mkdir, import, и export. Также имеется ряд дополнительных опций: bookmarks, logs, diff options…

Для установки Subcommander вам нужен пакет «subcommander» из репозитория «universe».

Если вам нужен мощный SVN-клиент, попробуйте eSVN. У него не самый красивый интерфейс, но он имеет уйму настраиваемых параметров: flat view, customizable refreshing options, advanced showing/hiding options. Добавлены и некоторые возможности функций diff и cat.

Для установки eSVN вам нужен пакет «esvn» из репозитория «universe».

KDEsvn

Вы поклонник KDE и предпочитаете всё интегрированное, попробуйте KDEsvn. Как у многих приложений в KDE, сильная сторона KDEsvn — конфигурируемость. Кроме того, клиент хорошо интегрируется с другими приложениями KDE, включая KIO (KDE Input/Output). KDEsvn использует код RapidSVN, поэтому поддерживает все функции SVN: update, commit, blame, add, delete, merge, checkout и import.

Для установки KDEsvn вам нужен пакет «kdesvn» из репозитория «universe».

источник

Делаем хранилище версий (subversion) на Linux для совместной работы (SVN)

Статья в процессе дополнения.

Для начала расскажу немного о таком продукте коллективного ума, как Subversion. Эта система контроля версий, позволяет вносить изменения в проект поэтапно, учитывая различные варианты модификации файлов.

На самом деле можно использовать практически в любой сфере программирования, веб разработки, написания текстов и т.д.

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

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

Настройки серверной части

Устанавливаем пакет subversion из командной строки:

После того, как приложение будет установлено, создадим каталог для хранения всех репозиториев. У меня это будет /var/svn, но вы можете выбрать произвольный путь (внося соответствующие правки во все команды далее по тексту):

Читайте также:  Установка каркаса для цокольного сайдинга

Далее создадим новый репозиторий командой svnadmin. Допустим, мы делаем совместный проект над каким-либо сайтом www.aaa.ru. Не будем мудрствовать лукаво, создадим репозиторий прямо в таком виде:

# svnadmin create /var/svn/www.aaa.ru

Попутно можно вывести информацию о репозитории, командой svn info, указав протокол доступа к хранилищу. Для локального хранилища подойдёт протокол file://

Какую информацию можно подчерпнуть отсюда? Прежде всего – полный путь к репозиторию, номер ревизии (версии). То есть каждый раз при изменении какого-либо файла в хранилище меняется и номер, увеличиваясь на единицу. А так же здесь фигурирует дата последнего изменения. Пожалуй, это для нас будут основные поля.

Идём дальше. Репозиторий создан. Пора добавить в него хоть какие-нибудь файлы.

Создадим временный каталог test с одним единственным файлом index.php, следующего содержания:

Импортируем этот каталог в наш репозиторий. Обратите внимание, используется команда:

# svn import test file:///var/svn/www.aaa.ru -m «Index file»

где test – имя нашего каталога, содержимое которого помещается в хранилище; далее идёт указание самого хранилища, а так же присутствует ключ -m с комментарием. Все комментарии учитываются, чтобы потом можно было вспомнить что и зачем менялось в конкретной ревизии, поэтому рекомендуется давать осмысленные и грамотные пояснения своим действиям.

Это значит, что добавился файл test/index.php, а номер ревизии сменился на 1.

Если мы повторим команду запроса info, то увидим, что наши изменения ревизии учитываются.

Как работать с клиентов Linux

Для того, чтобы работать с клиентов на базе OS Linux, нужно будет установить пакет subversion (см. начало статьи), поскольку оно включает в себя как сервер, так и клиент. (P.S. Существую и графические приложения, я уверен, но сейчас речь о консоли)

Итак, предположим, что для своей работы мы выбрали протокол ssh, как достаточно безопасный.

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

Не забываем поднять SSH на сервере с репозиторием!

$ svn co svn+ssh://dmitry@192.168.1.104/var/svn/www.aaa.ru

cocheckout – означает копирование репозитория в рабочий каталог.

При этом у нас дважды спросят пароль пользователя dmitry (в дальнейшем мы это уберем).

Нетрудно заметить, что создалась локальная папка www.aaa.ru с содержимым репозитория.

Я немного изменил код файла (см.ниже вывод команды cat index.php ). И закоммитил изменения с комментарием “Add 3 line“. Опять же введя пароль это удалось сделать.

Честно говоря, надоело вводить пароль постоянно. Сгенерирую ключи SSH:

на предложение ввести парольную фразу отвечу пустым паролем. Затем импортирую публичный ключ на удаленный сервер:

$ ssh-copy-id -i /home/dmitry/.ssh/id_rsa.pub dmitry@192.168.1.104

Здесь потребуется один раз ввести пароль от удаленной учетки dmitry, чтобы удостовериться, что мы можем добавлять в неё ключи.

Теперь, как мы можем проверить, пароль не спрашивается при закачке репозитория и коммитах. Намного удобнее и быстрее.

Если вдруг нужно добавить новый файл – это делается командой import (как мы выше создавали файл index.php на сервере), аналогичным образом импортируем каталог ТОЛЬКО с теми файлами, которых на сервере нет.

Иначе, можно просто создать новый файл в нашем временном рабочем каталоге и добавить его в репозиторий так:

Будет точно так же закачан файл и обновлена ревизия.

Этими функциями subversion не ограничивается. Всегда можно посмотреть полный список так:

Кстати, здесь я предлагаю схитрить. Если мы постоянно работаем в консоли и используем один и тот же путь к репозиторию (вы заметили, что неудобно набивать его руками каждый раз?), можно создать переменную окружения для удобства. А то и вообще потом поместить её в свой стартовый файл оболочки:

$ repo=’dmitry@192.168.1.104/var/svn/www.aaa.ru’
$ svn log svn+ssh://$repo

Намного удобнее использовать. Кстати, команда log показывает всю историю изменений репозитория:

Посмотреть изменения между различными ревизиями можно так:

Поясняю. + перед строкой – означает, что она добавилась. – что исчезла.

Работа с Subversion с клиентами по Windows

Есть много хорошего софта. Наиболее популярен тут TortoiseSVN, бесплатный.

Подключаем наш репозиторий:

Далее вводим аутентификационные данные (пока не добавили ключ Windows машины) и увидим наш репозиторий:

Пункты меню – аналогичные. Делаем Чекаут (загрузку репо в каталог), меняем файл. Делаем коммит и готово!

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

Кроме того, существует возможность не просто сравнивать между собой несколько ревизий, но ещё и откатывать изменения обратно, объединять ревизии в окончательный билд, игнорируя определенные сборки, но включая изменения внесенные на других этапах. В общем весьма гибкая система, заслуживающая внимания.

источник

Добавить комментарий