Работаем с SVN — основные команды
Мануалов и описаний команд SVN сейчас в интернете великое множество. Внесу и я свои пять копеек в эту тему.
Про установку и настройку SVN я уже писал, но что происходит потом? Да, собственно, ничего сложного.
Сначала администратор SVN заводит новый проект на сервере, настраивает доступ и раздаёт логины-пароли участникам проекта. После этого происходит важный и ответственный момент — первоначальный импорт файлов в репозиторий. Для этого нужно перейти в каталог проекта и выполнить команду svn import. В моём случае, это делается так:
cd /home/alexey/projects/project_name/
svn import -m «Initial upload» ––username alexey ./ svn://svn.local/var/svn/project_name/trunk/
После этого из каталога /home/alexey/projects/project_name/ можно всё удалить и создать рабочую копию проекта. Делается это командой svn checkout:
svn checkout ––username alexey svn://svn.local/var/svn/project_name/trunk/ ./
А дальше всё как в учебнике. Поработали, внесли изменения в файлы, обновили их в репозитории командой svn commit. При этом не забываем сначала проверить состояние репозитория, вдруг кто-то ещё вносил изменения в файлы: svn update. Добавить новые файлы в репозиторий — svn add filename. Удалить файлы из репозитория — svn del filename. Если вы запортачили файл в своей рабочей копии и хотите вытащить его из репозитория — svn revert filename.
Источник
Записки программиста
Краткая шпаргалка по основным командам Subversion
15 февраля 2016
Не могу сказать, что я большой фанат Subversion. По-моему, Git прекрасен, и никакие другие системы контроля версий не нужны. Тем не менее, работать с Subversion время от времени приходится, потому что нужно сделать checkout какого-то древнего полумертвого проекта или еще почему-то. Так что, в этой заметке мы рассмотрим основы работы с Subversion, ну и заодно почему он иногда может быть даже интереснее, чем Git. Заметка рассчитана на тех, кто уже имеет опыт использования Git или хотя бы Mercurial.
Перекрестная ссылка: Вас также может заинтересовать старенькая заметка Мой первый опыт работы с Subversion. Там речь идет больше про настройку серверной стороны, а также про использование всяких TortoiseSVN и прочих GUI. Данный же пост посвящен работе с уже существующими репозиториями из консоли.
Итак, почему же Subversion иногда может быть интереснее, чем Git:
- Считается, что централизованную систему контроля версий проще объяснить новичкам;
- Используются последовательные номера ревизий, ясно что за чем шло;
- Тут можно чекаутить отдельные каталоги и делать для них свои бранчи;
- Есть поддержка file lock, что иногда, пожалуй, может быть удобно;
- Subversion лучше работает с бинарными файлами и компактно хранит их дифы;
Я, впрочем, не гугу Subversion. Но в первом приближении, вроде, все верно.
Источник
Начало работы с 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’ перед внесением изменений в файлы, доступные в вашей рабочей копии. После этого, вносите изменения в файлы, а затем зафиксируйте изменения в хранилище после того, как только файлы будут изменены.
Для того чтобы применить различия между двумя источниками на пути в рабочей копии, используйте:
Для того, чтобы увидеть различия между этими двумя конкретными версиями файла, используйте:
Источник
Начало работы с 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.
Источник
Система контроля версий
Контроль версий — это искусство управления изменениями в информации. Данный инструмент издавна был важен для программистов, которые обычно вносят небольшие изменения в программы, а затем, на следующий день, отменяют эти изменения. Однако, польза от систем контроля версий простирается далеко за границы мира разработки программного обеспечения. Место для систем контроля версий есть везде, где люди используют компьютеры для управления часто изменяющейся информацией
Subversion
Subversion — это система контроля версий с открытым исходным кодом. Используя Subversion вы можете сохранять историю изменений файлов и документов. Дерево файлов и папок хранится в центральном репозитории похожем на обыкновенный файловый архив, за исключеним того, что сохраняются любые их модификации.
Установка
Для доступа к репозиторию Subversion, посредством HTTP протокола, вы должны установить и настроить веб сервер. Apache2 гарантированно работает с Subversion. Для установки и настройки сервера Apache2, обратитесь к подразделу HTTP раздела Apache2. Для доступа к репозиторию Subversion, посредством HTTPS протокола, вы должны установить и настроить цифровой сертификат в веб сервере Apache2. Для установки и настройки цифрового сертификата, обратитесь к подразделу HTTPS раздела Apache2.
Для установки Subversion выполните следующую команду в терминале:
Конфигурация сервера
Данный шаг подразумевает, что вы установили в систему пакеты, отмеченные выше. Данная секция объясняет как создать репозиторий Subversion и получить доступ к проекту
Репозиторий Subversion может быть создан используя следующую команду:
Методы доступа
Репозиторий Subversion может быть доступен разными способами — на локальном диске или через разные сетевые протоколы. В любом случае, расположение репозитория всегда ссылка (URL). Таблица объясняет разные схемы ссылок в доступных методах доступа.
Таблица 4.1. Методы доступа
прямой доступ к репозиторию (на локальном диске)
Доступ по протоколу WebDAV к вебсерверу Apache2, умеющему работать с системой Subversion
То же самое, что и http://, но с SSL шифрованием
Доступ через выборочный протокол к серверу svnserve
То же самое, что и svn://, но через SSH тунель
В этой секции объясняется как настроить Subversion для всех этих методов доступа. Здесь мы описываем основы. Для более детального описания, обратитесь к книге svn.
Это самый простой из всех методов доступа. Он не требует запуска никакого процесса сервера Subversion. Этот метод доступа используется для доступа к Subversion с той же машины. Синтакс команды, введенной в строке терминала, следующий:
Если вы не указали имя хоста, используйте три слэша (///) — два для протокола (в данном случае — файл) плюс первый слэш в пути. Если вы указали имя хоста, используйте два слеша (//).
Права доступа к репозиторию зависят от прав доступа к файловой системе. Если пользователь обладает правами на чтение/запись — он может производить отладку и вносить изменения в репозиторий
Для доступа к репозиторию Subversion через протокол WebDAV необходимо сконфигурировать сервер Apache 2. Добавьте этот фрагмент в файл /etc/apache2/apache2.conf :
Следующим шагом необходимо создать файл /etc/subversion/passwd . Этот файл содержит настройки идентификации. Для добавления записи, например нового пользователя, Вы можете запустить эту команду из окна терминала:
Команда запросит ввести пароль. Как только пароль будет введён — пользователь будет добавлен. Теперь, чтобы получить доступ к репозиторию, Вам необходимо выполнить эту команду:
Передача пароля происходит открытым текстом. Если Вы не хотите, что бы пароль был перехвачен используйте шифрование траффика с применением SSL. Дополнительные сведения Вы можете найти в следующей секции.
Доступ к репозиторию Subversion через протокол WebDAV с применением SSL (https://) похож на http://, за исключением того, что в веб сервере Apache 2 необходимо установить и сконфигурировать цифровой сертификат.
Можно установить цифровой сертификат выданный такой организацией, как Verisign или сертификат, подписанный Вами.
Этот шаг подразумевает, что у вас есть установленный и сконфигурированный цифровой сертификат в веб сервере Apache 2. Для доступа к репозиторию Subversion, обязательно ознакомьтесь с предыдущей секцией! Спобобы доступа такие же, за исключением протокола. Необходимо использовать https:// для доступа к репозиторию Subversion.
Как только репозиторий Subversion будет создан, можно будет сконфигурировать контроль доступа. Для изменения контроля доступа измените файл /путь/к/репозиторию/проект/conf/svnserve.conf . Например, для включения аутентификации, уберите комментарий на следующих строчках:
Как только Вы раскомментируете вышеуказанные строки, Вы можете использовать список пользователей из файла passwd. Редактировать необходимо файл passwd , находящийся в той же директории и добавьте нового ползователя.
Что бы получить больше информации посмотрите файл.
Теперь что бы получить доступ к Subversion через свой протокол svn:// с того же или с другого компьютера, Вы можете запустить сервер Subversion используя комманду svnserve. Синтаксис:
После запуска этой команды Subversion будет запущен на порту 3690. Для того, что бы сменить репозиторий, необходимо выполнить команду:
Если в кониге указано, будет запрошен пароль. После аутентификации, будет проверен код из репозитория Subversion. Для синхронизации локальной копии и репозитория проекта можно выполнить под-команду update . Синтакс введённой команды следующий.
Вы можете обратиться к инструкции пользователя, если вас интересует детали использования каждой под-команды Subversion. На пример, что бы узнать больше про комманду «co», запустите эту команду:
Конфигурация и процесс сервера такие же как и в случае с svn://. Более подробно описано в предыдущей секции. На этом этапе подразумевается что Вы выполнили предыдущие шаги и запустили сервер Subversion, используя комманду svnserve
Так же подразумевается, что на том же компьютере запущен сервер SSH и на него разрешены входящие соединения. Что бы проверить, попробуйте подключиться к этому компьютеру используя SSH. Если вы зашли в этот компьютер, значит всё замечательно. Если вы не можете войти в этот компьютер, решите эту проблему перед тем, как приступать к дальнейшим шагам.
Протокол svn+ssh:// используется если необходимо подключиться к репозиторию Subversion используя SSL. В этом случае все передаваемые данные будут зашифрованы. Для доступа к репозиторию проекта необходимо использовать следующую комманду:
Что бы получить доступ к репозиторию Subversion используя этот метод, необходимо ввести полный путь (/путь/к/репозиторию/проекту).
Если в указано в настройках будет запрошен пароль. Необходимо ввести пароль, используемый при подключении через SSH. Если пароль верный, будет проверен код из репозитория Subversion.
Сервер CVS
CVS — система контроля версий. Её можно использовать для записи истории исходных файлов.
Источник