В сегодняшней статье мы покажем вам, как установить Subversion на Linux VPS, а также некоторые основные команды Subversion. Subversion, или сокращенно SVN является программным обеспечением управления версиями и контроля версий системы с открытым исходным кодом. Это позволяет пользователям поддерживать текущие и версии файлов в истории, таких как исходный код, веб – страниц, документов и других электронных данных.
Во- первых, установим SVN на Linux
Для того чтобы установить SVN, необходимо подключиться к Linux VPS через SSH.
Если вы используете Ubuntu, обновите пакеты ОС и установите SVN на сервере, используя следующие команды:
sudo apt-get update sudo apt-get install svn
Если вы используете CentOS, вы можете использовать следующую команду для обновления пакетов ОС и установки SVN:
yum update yum install svn
Чтобы проверить версию SVN, установленной на вашем сервере, используйте следующую команду:
# svn --version svn, version 1.7.14 (r1542130)
Создайте учетную запись пользователя системы и переключитесь на этого пользователя:
useradd -M someuser
Замените ‘someuser’ на действительное имя пользователя.
su someuser cd ~
Создайте новый каталог для ваших файлов проекта/приложений/веб-сайта:
mkdir -p svn/myapp
Создайте хранилище SVN с помощью следующей команды:
sudo svnadmin create /home/someuser/svn/myapp
Установите соответствующие права доступа к файлам. Распределения на основе Debian, выполните следующую команду:
chown -R www-data:subversion myapp chmod -R g+rws myproject
О распределении RPM на основе (при использовании Apache в качестве веб-сервера), выполните следующую команду:
chown -R apache:subversion myapp chmod -R g+rws myproject
Создайте файл ‘passwd’ в каталоге /home/someuser/svn/myapp/conf/passwd на сервере, который содержит информацию о аутентификации пользователя:
sudo htpasswd -c /home/someuser/svn/myapp/conf/passwd someuser
Если вы хотите добавить пользователей, используйте ту же команду, но без переключателя ‘-c‘, чтобы избежать перезаписи файла passwd.
Назначение разрешений для пользователей SVN с помощью файла authz (/home/someuser/svn/myapp/conf/authz):
Создание концептуальных групп, которые вам нужны, а затем добавить к нему пользователей:
[groups] allaccess = someuser someaccess = someuser2
Выберите уровень доступа с обоих разрешений и уровня проекта:
Чтобы дать разрешения для чтения и записи “allaccess” для пользователей, добавьте:
[/] @allaccess = rw
Для того, чтобы дать доступ только для чтения к “someaccess” пользователям к некоторому проекту нижнего уровня, добавьте:
[/someproject] @someaccess = r
Для того, чтобы скопировать неверсионное дерево вашего проекта/файлов веб-сайта и начать отслеживать в вашем хранилище SVN и создать промежуточные каталоги, введите следующие команды:
svn import -m "Initial import" local/path/ https://svn.yourdomain.com/path/to/svn/repo/
Вы можете создать единое хранилище для каждого проекта/сайта на каком – то центральном месте, где вся история.
Чтобы создать рабочую копию в другой локальный каталог, используйте:
svn co https://svn.yourdomain.com/path/to/svn/repo/ /local/path/directory2
Для того, чтобы отправить изменения из рабочей копии в хранилище, используйте:
svn commit -m "добавьте краткую информацию об изменениях здесь">
Используйте команду ‘svn add /path/file’, чтобы добавить файл из рабочей копии в хранилище. Файл будет добавлен в хранилище, когда вы делаете commit SVN.
Чтобы удалить файл из рабочей копии (или хранилище), используйте:
svn delete /path/file
и файл будет удален из хранилища после команды svn commit.
Чтобы обновить изменения из хранилища в рабочую копию, используйте:
svn update
При наличии нескольких авторов, работающих над проектом/веб-сайтом, они имеют локальные рабочие копии на нескольких машинах, всегда запускайте команду ‘svn update’ перед внесением изменений в файлы, доступные в вашей рабочей копии. После этого, вносите изменения в файлы, а затем зафиксируйте изменения в хранилище после того, как только файлы будут изменены.
Для того чтобы применить различия между двумя источниками на пути в рабочей копии, используйте:
svn merge
Для того, чтобы увидеть различия между этими двумя конкретными версиями файла, используйте:
svn diff -r revision1:revision2 filename