Система управления версиями subversion svn — система управления версиями svn — проект для управления версиями, позволяет контролировать изменения также как git
Управление версиями файлов, в принципе, предоставляет возможность отслеживать историю изменений и восстанавливать состояние файлов на момент «сохранения».
Использовать будем образ Debian, такая же машина используется в качестве клиента — с нее будем подключаться к репозиторию
apt-cache search subversion
Проверяем имя пакета, чаще всего это subversion
Устанавливаем при помощи apt-get install
apt-get install subversion
dpkg -l | grep subversion
ii subversion 1.8.9-1~bpo70+1 amd64 Advanced version control system
Работа с локальным репозиторием subversion SVN
svnadmin create /home/svn
Смотрим информацию по репозиторию
svn info file:///home/svn
В нем ничего нет о чем говорит запись Last Changed Rev: 0. Данное значение увеличивается с каждым новым «коммитом», поскольку их не было и информации в репозитории не содержится число ревизий равно нулю.
Path: svn
URL: file:///home/svn
Relative URL: ^/
Repository Root: file:///home/svn
Repository UUID: 5718294f-ff89-4950-8af1-f8e9d6ea408a
Revision: 0
Node Kind: directory
Last Changed Rev: 0
Last Changed Date: 2017-02-15 15:09:05 +0000 (Срд, 15 Фев 2017)
Создадим и добавим файлы в репозиторий
svn import docs file:///home/svn -m «let's get started»
Adding docs/file1.txt
Adding docs/file2.txt
Adding docs/file3.txt
-m — ключ за которым следует комментарий
Файлы, которые добавляются в репозиторий должны быть размещены в каталоге /root/docs — его предварительно следует создать
Смотрим информацию по репозиторию, видим что номер ревизии обновился Revision: 1, также отображается дата последней модификации
svn info file:///home/svn
Path: svn
URL: file:///home/svn
Relative URL: ^/
Repository Root: file:///home/svn
Repository UUID: 5718294f-ff89-4950-8af1-f8e9d6ea408a
Revision: 1
Node Kind: directory
Last Changed Author: root
Last Changed Rev: 1
Last Changed Date: 2017-02-15 15:17:13 +0000 (Срд, 15 Фев 2017)
Смотрим, что находится в репозитории
svn list file:///home/svn
file1.txt
file2.txt
file3.txt
Создаем копию репозитория
svn co file:///home/svn
A svn/file1.txt
A svn/file2.txt
A svn/file3.txt
Checked out revision 1.
Дополним один из файлов и «закоммитим» изменения:
mcedit svn/file1.txt
adding some text
ESC и сохраняем изменения
cd /home/svn
svn commit -m «added some text»
Sending file1.txt
Transmitting file data .
Committed revision 2.
Номер ревизии обновился, изменения, внесенные в файл, сохранились.
Таким образом производится работа с локальным репозиторием, при использовании репозитория удаленного доступ осуществляется по протоколам https или svn+ssh. При работе с использованием веб-сервера доступ ограничивается посредством .htpasswd.
Работа с удаленным репозиторием SVN
Работа с удаленным репозиторием SVN — доступ сейчас получаем к тому же репозиторию, но с другой машины (предварительно на сервере vm создан системный пользователь svnuser, ему задан пароль)
На машине, с которой выполняется подключение (vm2), также должен быть установлен пакет subversion
root@vm2:~# svn co svn+ssh://svnuser@vm/home/svn
The authenticity of host 'vm (123.123.123.123)' can't be established.
ECDSA key fingerprint is a6:00:b5:cf:37:ac:25:84:c0:45:57:d4:01:d0:c1:53.
Are you sure you want to continue connecting (yes/no)?
svnuser@vm's password:
Вводим пароль пользователя, видим файлы. которые были скопированы из удаленного репозитория на машину
A svn/file1.txt
A svn/file2.txt
A svn/file3.txt
Checked out revision 2.
cd svn/ && ls
file1.txt file2.txt file3.txt
Система управления версиями subversion svn настраивается в базовом виде так.
В настоящее время гораздо шире для разработки используется git