SVN для начинающих: как установить и работать с Subversion

SVN (Apache Subversion) хранит историю проекта в одном репозитории на сервере, а вы правите файлы в рабочей копии.

Разбираем установку на Windows, macOS и Linux, шесть ежедневных команд, ветки и пять частых ошибок, от конфликта и устаревшей копии до working copy locked.

Статью написал:
Ваня Буявец, продюсер, основатель Checkroi
Ваня Буявец
Основатель Checkroi, продюсер, эксперт в выборе онлайн-курсов
Все 3177 статей автора Подписаться на Телеграм-канал
Одобрено экспертом:
Наташа Буявец, основатель Checkroi, эксперт по онлайн-курсам
Наташа Буявец
Основательница Checkroi, продюсер Youtube-каналов, эксперт по онлайн-курсам
Все 3831 экспертное мнение Подписаться на Телеграм-канал
Обложка: SVN для начинающих: как установить и работать с Subversion

SVN, или Apache Subversion, это централизованная система контроля версий. Вся история проекта лежит в одном репозитории на сервере, а каждый участник забирает себе рабочую копию, правит файлы и отправляет изменения обратно коммитом. По-русски название нередко пишут как «свн», но в проектной документации СВН означает систему видеонаблюдения, а здесь речь о программе для разработчиков.

Чтобы начать работать, хватит трёх шагов: поставить клиент (графический на Windows или пакет subversion на macOS и Linux), получить рабочую копию командой svn checkout и дальше ходить по циклу «обновить → изменить → проверить → зафиксировать». Если вы уже знакомы с Git, сравните подходы по нашему разбору Git простыми словами: многие слова там те же, а логика другая.

CheckroiCheckroiПодборка курсов по Git364 курса • 32 школыСравните цены, школы, программу и найдите выгодные предложения по обучениюСравнить→

Что такое SVN и как он устроен

Рой забирает рабочую копию проекта из центрального репозитория SVN

Subversion появился в 2000 году в компании CollabNet, сейчас его развивает фонд Apache. Последний выпуск на ноябрь 2026 года, Apache Subversion 1.15.0, вышел 8 октября 2026 года.

Главное отличие от Git в том, что у SVN один центральный репозиторий. На вашем компьютере лежит не вся история, а рабочая копия одной ревизии плюс служебная папка .svn.

Термин Что означает
Репозиторий Хранилище на сервере со всеми версиями файлов
Рабочая копия Папка у вас на диске, где вы правите файлы
Ревизия Номер состояния репозитория после очередного коммита: r1, r2, r3 и дальше по порядку
Коммит Отправка ваших изменений в репозиторий с комментарием
trunk, branches, tags Основная линия разработки, ветки и метки релизов. Это соглашение, а не требование программы

Номер ревизии общий для всего репозитория. Если коллега закоммитил правку в соседний модуль, номер вырос и у вас, хотя ваши файлы не менялись.

С контролем версий сталкиваются почти во всех IT-ролях: его используют и веб-разработчики, и DevOps-инженеры, которые настраивают сборку и выкладку кода.

Как установить SVN на Windows, macOS и Linux

Официальный список сборок лежит на странице пакетов Apache Subversion. Сам проект готовые установщики официально не поддерживает, их собирают сторонние команды.

Система Чем ставить Команда или файл
Windows TortoiseSVN: графический клиент, работает из Проводника Установщик .msi для 32-bit, 64-bit или ARM64
Windows SlikSVN (консольный клиент) или VisualSVN (клиент и сервер) Установщик .msi с сайта проекта
macOS Homebrew или MacPorts brew install subversion
Ubuntu, Debian Пакетный менеджер sudo apt-get install subversion
CentOS, Red Hat Пакетный менеджер sudo yum install subversion

На Windows проще всего начать с TortoiseSVN. Текущая версия 1.15.0 собрана с библиотекой Subversion 1.15.0. На той же странице есть русский языковой пакет, его ставят вторым установщиком после основного.

Важная галочка: в установщике клиента консольные инструменты включаются отдельно. Без них команда svn в терминале не найдётся, хотя меню в Проводнике будет работать.

Проверить установку можно одной командой:

svn --version

Если терминал ответил номером версии, клиент на месте. Если команда не найдена, значит консольный клиент не установлен или не попал в PATH.

Канал основателя Checkroi Вани Буявца3 800 человек читают мой Телеграм-канал про нейросетиСобрал промпты для Claude Code и ChatGPT, разборы ИИ-инструментов и лайфхаки по продвижению бизнеса в одном местеПрисоединиться

Первые шаги: репозиторий и рабочая копия

В рабочем проекте репозиторий обычно уже есть, и вам присылают его адрес. Для тренировки можно завести свой прямо на диске, сервер для этого не нужен. Команды ниже взяты из раздела быстрого старта книги Version Control with Subversion, её ведут на официальном сайте svnbook.

  1. Создайте пустой репозиторий: svnadmin create /var/svn/repos.
  2. Подготовьте папку проекта с подпапками trunk, branches и tags, файлы положите в trunk.
  3. Загрузите проект в репозиторий: svn import /tmp/myproject file:///var/svn/repos/myproject -m "initial import".
  4. Заберите рабочую копию: svn checkout file:///var/svn/repos/myproject/trunk myproject.

Исходная папка после импорта остаётся как была, Subversion о ней ничего не знает. Работать нужно в той папке, которую создал checkout: в ней появилась служебная .svn.

Команды набираются в терминале. На Windows подойдёт обычная командная строка, как с ней работать, мы показывали в инструкции про запуск скрипта через командную строку.

Для сетевого репозитория меняется только адрес: вместо file:/// будет https:// или svn://. Короткая форма команды svn co делает то же самое.

Ежедневный цикл работы с SVN

В книге Subversion типичный рабочий день описан шестью действиями. Их удобно запомнить по порядку: каждое следующее опирается на предыдущее.

  1. Обновить рабочую копию: svn update. Подтягивает чужие коммиты.
  2. Внести изменения. Файлы правите в любом редакторе, например в VS Code (как его настроить и открыть в нём терминал, есть в инструкции по настройке VS Code). Новые файлы ставите под контроль через svn add, удаляете через svn delete, переименовываете через svn move.
  3. Проверить, что поменялось: svn status для общего списка и svn diff для построчных правок.
  4. Исправить ошибки: svn revert файл возвращает файл к последней полученной версии.
  5. Разрешить конфликты. Снова svn update, а если правки пересеклись, то svn resolve.
  6. Зафиксировать: svn commit -m "что сделано".
svn update
svn add docs/new-page.md
svn status
svn diff
svn commit -m "Добавил страницу с инструкцией"

Чаще всего вы будете смотреть на вывод svn status. Первая буква в строке говорит, что случилось с файлом:

Код Что значит
? Файл не под контролем версий, в коммит не попадёт
A Файл будет добавлен в репозиторий
M Содержимое файла изменено
D Файл будет удалён из репозитория
C Конфликт: ваши правки пересеклись с чужими

В Git тот же круг выглядит как pull, commit и push, только коммит сначала остаётся у вас на компьютере. Этот порядок отрабатывают на курсах по Git, и он без изменений переносится на SVN.

Ни svn status, ни svn diff на сервер не ходят, они сравнивают файлы с локальной копией. Чтобы увидеть, что изменилось в репозитории, добавьте ключ -u: svn status -u.

Ветки и слияние в SVN

Схема веток trunk и branches в виде дерева папок

Ветка в Subversion устроена просто: это копия папки внутри репозитория. Создаётся она одной командой прямо на сервере, без скачивания файлов:

svn copy ^/trunk ^/branches/my-feature -m "Ветка под новую фичу"
svn switch ^/branches/my-feature

Знак ^/ означает корень текущего репозитория, адрес целиком писать не нужно. Команда svn switch переключает рабочую копию на ветку.

В Git ветка устроена иначе, это указатель на коммит, а не копия папки. Чем ветка отличается от копии всего репозитория, мы разбирали в статье про форк в программировании.

Пока вы работаете в ветке, коллеги продолжают коммитить в trunk. Чтобы подтянуть их правки, в рабочей копии ветки выполните svn merge ^/trunk. Когда фича готова, переключитесь на trunk и влейте ветку обратно: svn merge ^/branches/my-feature, затем svn commit.

С версии 1.8 Subversion сам понимает, что вы возвращаете ветку в trunk. Ключ --reintegrate, который встречается в старых инструкциях, объявлен устаревшим.

Перед таким слиянием рабочая копия trunk должна быть чистой: без локальных правок и обновлена до одной ревизии. Иначе Subversion откажется сливать.

Как работать с SVN через TortoiseSVN

Если командная строка пугает, те же задачи решаются через контекстное меню Проводника. Названия пунктов ниже взяты из русской справки клиента.

  • Получить рабочую копию: правой кнопкой по пустой папке → «SVN Извлечь…», вставить адрес репозитория.
  • Обновить: правой кнопкой по папке → «SVN Обновить».
  • Добавить новый файл: подменю TortoiseSVN, пункт «Добавить…».
  • Отправить изменения: «SVN Фиксировать…», в окне написать комментарий и отметить нужные файлы.

Состояние файлов клиент показывает значками поверх иконок, поэтому изменённый файл видно прямо в Проводнике. Разница с консолью только в интерфейсе: команды под капотом те же.

Ваня БуявецКанал основателя Checkroi Вани БуявцаЗабирайте промпты и обучение по нейросетям в моём Телеграм-каналеБольше 3 800 человек уже применяют Claude Code, ChatGPT и другие нейросети в работе, учёбе, бизнесе и жизниПерейти в канал

Частые ошибки и что с ними делать

Рой радуется, что конфликт в файле разрешён и коммит прошёл

Почти все проблемы новичков в SVN сводятся к пяти ситуациям.

Коммит отклонён, рабочая копия устарела

Симптом: svn commit падает с сообщением про out of date. Причина в том, что кто-то уже изменил этот файл на сервере.

Решение: выполните svn update, проверьте результат и закоммитьте ещё раз.

Файл в статусе C, конфликт

Ваши правки и чужие задели одни и те же строки. Рядом с файлом появятся временные копии с вашей и серверной версиями.

Решение: откройте файл, сведите правки руками и выполните svn resolve --accept working файл. Оставить целиком свою версию можно через --accept mine-full, целиком серверную через --accept theirs-full.

Сводить конфликты руками приходится и в Git, этот навык отдельно разбирают в курсах по GitHub, где учатся работать в команде через пул-реквесты.

Ошибка working copy locked

Обычно появляется, если предыдущая операция прервалась: закрыли терминал посреди обновления или отвалилась сеть.

Решение: выполните svn cleanup в корне рабочей копии. По справочнику SVN Book, эта команда снимает зависшие блокировки и доделывает незавершённые операции.

Новый файл не попал в коммит

В выводе svn status рядом с ним стоит знак вопроса. Subversion не берёт файлы под контроль сам.

Решение: svn add файл, затем снова svn commit.

Старый клиент не открывает рабочую копию

В версии 1.15 появился новый формат рабочей копии под функцию Pristines On Demand, она уменьшает папку .svn. По примечаниям к выпуску, такую копию открывает только клиент 1.15 или новее.

Решение: обновите клиент у всех, кто работает с этой папкой. По умолчанию svn checkout создаёт копию в старом формате, совместимом с клиентами 1.8–1.14.

SVN или Git: что выбрать

Новые проекты чаще начинают на Git, но SVN по-прежнему живёт в компаниях с давней историей кода. Выбирать обычно не приходится: работаете с тем, что уже стоит в команде.

Признак SVN Git
Модель Централизованная, один сервер Распределённая, полная история у каждого
Номер версии Сквозная ревизия: r1, r2, r3 Хеш коммита
Работа без сети Коммит невозможен Коммиты локально, отправка позже
Ветка Копия папки на сервере Указатель на коммит
Бинарные файлы Есть блокировки svn lock Нужны внешние инструменты

Блокировки у SVN сильнее, чем у Git. Для картинок, 3D-моделей и документов, которые нельзя слить построчно, svn lock (глава о блокировках в SVN Book) запирает файл в репозитории: пока вы его правите, закоммитить изменения в него не сможет никто другой. Это удобно командам с тяжёлыми ассетами, например геймдизайнерам и художникам игровых студий.

Если команда переезжает на Git, не обязательно бросать историю. Инструмент git svn гоняет изменения между репозиториями SVN и Git в обе стороны.

Где освоить системы контроля версий

Команды из этой статьи закрывают ежедневную работу с SVN. Для уверенной работы в команде пригодится общее понимание контроля версий: ветки, ревью, разрешение конфликтов. Курсы обычно учат этому на Git, а после него команды Subversion выглядят знакомо: тот же цикл, другая модель хранения.

Программы, где Subversion разбирают отдельно, собраны в разделе курсов по SVN. Ниже подборка курсов по Git из нашего каталога. О том, чем занимается отдельный специалист по этому направлению, мы писали в обзоре профессии Git-специалиста.

КурсШколаСтоимость со скидкойВ рассрочкуДлитель­ностьОбзор курса от Checkroi
Gitlab CI/CD с нуля
Перейти на сайт курса
MerionMerion16 250 ₽1354 ₽/мес.4 месяцаОбзор курса
Gitlab CI/CD
Перейти на сайт курса
Слёрм (Slurm)Слёрм25 000 ₽6250 ₽/мес.58 часовОбзор курса
Основы Git
Перейти на сайт курса
PurpleSchoolPurpleSchool3999 ₽2749 ₽/мес.2 месяцаОбзор курса
Обучение Git
Перейти на сайт курса
SkillboxSkillbox22 500 ₽ - 1 месяцОбзор курса
Основы Git
Перейти на сайт курса
HexletHexletБесплатно - 1 месяцОбзор курса

Больше программ — в полном каталоге курсов по Git

Часто задаваемые вопросы

Что такое СВН в программировании?

Так по-русски пишут SVN, сокращение от Apache Subversion. Это централизованная система контроля версий: история файлов хранится в одном репозитории на сервере, а разработчики работают в своих рабочих копиях.

Как расшифровывается SVN?

SVN образовано от названия Subversion, полное имя программы Apache Subversion. В проектной документации инженерных систем сокращение СВН означает другое, систему видеонаблюдения.

Где скачать SVN?

Официальный список сборок лежит на странице пакетов Apache Subversion. На Windows обычно ставят TortoiseSVN, на macOS команду brew install subversion, на Ubuntu и Debian sudo apt-get install subversion.

Чем svn checkout отличается от svn export?

svn checkout создаёт рабочую копию со служебной папкой .svn, из неё можно коммитить. svn export выгружает чистое дерево файлов без служебных данных, оно под контролем версий уже не находится.

Что делать, если SVN пишет working copy locked?

Выполните svn cleanup в корне рабочей копии. Команда снимает зависшие блокировки и доделывает прерванные операции.

Можно ли перейти с SVN на Git и сохранить историю?

Да. Инструмент git svn умеет забирать историю из репозитория Subversion в Git и отправлять изменения обратно, поэтому переезд можно делать постепенно.

Читайте Checkroi первым в Google
Добавьте Checkroi в избранные источники — и наши разборы курсов и обзоры школ будут показываться выше в вашей выдаче Google.
Оставить комментарий
0 комментариев
Форма комментария

Оставьте комментарий

Напишите, что думаете. Нам важно ваше мнение!