Svn on linux command line

Записки программиста

Не могу сказать, что я большой фанат Subversion. По-моему, Git прекрасен, и никакие другие системы контроля версий не нужны. Тем не менее, работать с Subversion время от времени приходится, потому что нужно сделать checkout какого-то древнего полумертвого проекта или еще почему-то. Так что, в этой заметке мы рассмотрим основы работы с Subversion, ну и заодно почему он иногда может быть даже интереснее, чем Git. Заметка рассчитана на тех, кто уже имеет опыт использования Git или хотя бы Mercurial.

Перекрестная ссылка: Вас также может заинтересовать старенькая заметка Мой первый опыт работы с Subversion. Там речь идет больше про настройку серверной стороны, а также про использование всяких TortoiseSVN и прочих GUI. Данный же пост посвящен работе с уже существующими репозиториями из консоли.

Итак, почему же Subversion иногда может быть интереснее, чем Git:

  • Считается, что централизованную систему контроля версий проще объяснить новичкам;
  • Используются последовательные номера ревизий, ясно что за чем шло;
  • Тут можно чекаутить отдельные каталоги и делать для них свои бранчи;
  • Есть поддержка file lock, что иногда, пожалуй, может быть удобно;
  • Subversion лучше работает с бинарными файлами и компактно хранит их дифы;

Я, впрочем, не гугу Subversion. Но в первом приближении, вроде, все верно.

Теперь перейдем к командам.

Подсасываем последние изменения:

Проверить, в какой ветке мы находимся и на какой сервер смотрим:

Посмотреть историю изменений:

История изменений с diff’ами, аналог git log -p :

Кто какие строчки когда менял:

Посмотреть незакомиченные изменения:

Какие файлы были изменены или добавлены:

Изменения в рамках ревизиции, аналог git show :

Посмотреть измененные в ревизии файлы:

Изменения по сравнению с текущей ревизией, аналог git diff :

Применение сохраненного в файл дифа, аналог git apply :

Читайте также:  Kali linux как работать

Отменить последние изменения, аналог git reset —hard HEAD :

Текущее состояние репозитория, измененные файлы и так далее:

Удалить неотслеживаемые файлы и каталоги — встроенной команды, увы, нет, но можно прописать алиас в .bashrc:

Создание нового бранча или тэга:

svn copy https: // example.com / project / trunk / \
https: // example.com / project / branches / test-branch

svn copy https: // example.com / project / trunk / \
https: // example.com / project / tags / 1.0 \
-m «Release 1.0»

cd path / to / trunk
cd ..
mkdir branches
cd branches
svn co https: // example.com / project / branches / test-branch
cd test-branch

Примечание: Примите также во внимание, что если вы сделали checkout самого корня репозитория, в котором находятся каталоги trunk, branches и tags, то можете просматривать бранчи обычным ls , удалять обычным svn rm с последующим коммитом, и так далее. Впрочем, в больших проектах вы вряд ли захотите делать checkout вот прямо всего репозитория целиком.

Lock/unlock, чтобы файл никто не мог менять кроме нас:

Коммит и сразу пуш, потому что это SVN:

В общем-то, описанных команд вам хватит в 95% всех случаев. Дополнительную информацию рекомендую искать в man’ах и help’ах. Еще можно порекомандовать книгу Pragmatic Version Control using Subversion.

А пользуетесь ли вы Subversion и если да, то какие команды советовали бы добавить к приведенному выше списку?

Вы можете прислать свой комментарий мне на почту, или воспользоваться комментариями в Telegram-группе.

Коротко о себе

Меня зовут Александр, позывной любительского радио R2AUK. Здесь я пишу об интересующих меня вещах и временами — просто о жизни.

Вы можете следить за обновлениями блога с помощью RSS, ВКонтакте, Telegram или Twitter. Также я являюсь одним из ведущих подкаста DevZen и иногда выкладываю видео на YouTube.

Мой e-mail — af is kon @gmail.com. Если вы хотите мне написать, прошу предварительно ознакомиться с этим FAQ.

Читайте также:  Asbru connection manager linux

Источник

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

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

В сегодняшней статье мы покажем вам, как установить Subversion на Linux VPS, а также некоторые основные команды Subversion. Subversion, или сокращенно SVN является программным обеспечением управления версиями и контроля версий системы с открытым исходным кодом. Это позволяет пользователям поддерживать текущие и версии файлов в истории, таких как исходный код, веб — страниц, документов и других электронных данных.

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

Если вы используете 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)

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

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

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

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

sudo svnadmin create /home/someuser/svn/myapp

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

chown -R www-data:subversion myapp chmod -R g+rws myproject
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

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

Читайте также:  Linux конфликт ip адресов

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

Для того, чтобы дать доступ только для чтения к «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 commit.

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

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

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

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

svn diff -r revision1:revision2 filename

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

Источник

Оцените статью
Adblock
detector