Как известно, Subversion, также известная как SVN, — это свободная централизованная система управления версиями. Система имеет огромное количество команд, параметров и способов для управления репозиториями. Прелесть SVN в том, что использовать ее могут не только разработчики, но и люди, весьма далекие от программирования. Перейдем к командам.

Первым делом — checkout:

svn co --username eax https://yoursite.ru/svn/project/

Скачиваем последние изменения:

svn up

Проверяем ветку и сервер:

svn info

Для просмотра истории изменений:

svn up
svn log | less

Та же история, но с diff (аналогично гитовскому git log -p):

svn log --diff | less

Узнаем, кто, когда, какие строки менял:

svn blame -v test.txt

Смотрим незакоммиченные изменения:

svn diff

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

svn diff --summarize

Смотрим изменения в рамках ревизии, аналогично git show в Git:

  • для просмотра комментариев:

    svn log -c 123456
  • для просмотра изменений:

    svn diff -c 123456

Смотрим измененные в ревизии файлы:

svn diff --summarize -c 123456

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

svn diff -r 123456
svn diff --summarize -r 123456

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

patch -p0 -i myfile.diff

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

svn revert --recursive .

Показать текущее состояние репозитория:

svn status

Получить список бранчей:

svn ls https://yoursite.ru/svn/project/

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

svn copy https://yoursite.ru/svn/project/ 
https://yoursite.ru/svn/project/test-branch

svn copy https://yoursite.ru/svn/project/ 
https://yoursite.ru/svn/project/tags/1.0 
-m "Release 1.0"

Мержим бранчи:

svn merge http://yoursite.ru/svn/project/test-branch

Удаляем бранч:

svn delete http://yoursite.ru/svn/project/test-branch 
-m "Removing test-branch"

Добавляем файл:

svn add text.txt

Переименовываем файл:

svn mv from.txt to.txt

Удаляем файл:

svn del file.txt

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

svn lock file.txt
svn unlock file.txt

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



1 комментарий

  1. devbutch

    17.07.2017 at 14:44

    | svn status
    Это не «показать текущее состояние репозитория», а как раз таки показать список изменений в локальной копии.
    Например вы сделали чекаут, внесли изменения в файлы, создали новые или удалили ненужные и уже готовы к коммиту — делаем svn status и смотрим список измененных файлов, удаленных (svn remove), добавленных (svn add) или «неопознанных» (создали через touch или в оконном менеджере, но не добавили их черезз svn add).

Оставить мнение