Краткая инструкция по работе с SVN (Subversion) для пользователей
Недавно коллеги допекли, и я написал для них следующий узелок по работе с SVN и описал несколько полезных фишек.
SVN — свободная централизованная система управления версиями. Суть системы такова, что все файлы хранятся на сервере, а клиенты подключаются к серверу, скачивают актуальное состояние файлов, вносят правки и отсылают изменения обратно на сервер, чтобы другие клиенты могли работать уже и с их правками.
Для работы с SVN необходимо знать адрес репозитория (места хранения файлов), имя входа и пароль и иметь клиентскую программу.
Наиболее распространенной клиентской программой для работы с SVN является TortoiseSVN. Скачать ее можно на данной странице http://tortoisesvn.net/downloads. Важно, чтобы разрядность устанавливаемой версии программы совпадала с разрядностью операционной системы.
Рассмотрим простейший рабочий цикл ...
Этапы работы с репозиторием SVN
1) Создание локальной рабочей копии (checkout).
Необходимо создать простую папку, и в ее контекстном меню выбрать пункт «SVN Checkout...»
Далее в появившемся окне указать путь к svn-репозиторию в поле «URL of repository» и нажать на ОК.
А в появившемся окне авторизации ввести свои учетные данные.
После того как будет выполнено создание рабочей копии, значок папки с репозиторием станет выделен зеленой галкой .
2) Изменения файлов и директорий в рабочей копии.
В изменении файлов SVN никак не задействован — изменения производятся программами, предназначенными для этого: текстовые редакторы, средства разработки и т.п.
Для файловых операций, если нужно удалить, переименовать, переместить или скопировать файл или директорию в рабочей копии, необходимо использовать средства SVN (команды delete, move, copy) доступные через пункт «TortoiseSVN» контекстного меню соответствующего объекта (файла или папки).
Любые локальные изменения, если они признаны неудачными, можно откатить через подпункт контекстного меню Revert.
После того, как в папке с локальной рабочей копией были выполнены какие-то изменения, ее иконка приобретает вид . Следовательно необходимо слить внесенные изменения на сервер (commit).
3) Слияние изменений (update)
Прежде чем выполнять отправку измененных данных на сервер необходимо выполнить слияние изменений, выполненных другими пользователями, со своей рабочей копией через пункт контекстного меню SVN Update для головной папки.
4) Фиксация изменений (commit)
Для отправки внесенных изменений на сервер необходимо в контекстном меню папки с рабочей копией выбрать пункт «SVN Commit...», после чего перед пользователем отобразится окно с внесенными им изменениями.
В списке измененных файлов галочки должны стоять только возле тех файлов, изменения по которым планируется отправлять на сервер.
В контекстном меню по каждому элементу списка можно выбрать пункт «Compare with base» и увидеть все внесенные изменения.
Временные файлы типа dcu, ~pas, dof, tmp и т.д. класть в репозиторий не нужно!
5) Регулярное обновление рабочей копии
Для поддержания актуального состояния своей рабочей копии необходимо регулярно выполнять ее обновление последними зафиксированными изменениями других пользователей через пункт контекстного меню «SVN Update».
Дополнительные полезные svn-фишки
1) Разрешение конфликтов (resolve conflicts)
Бываю ситуации, когда несколько человек правят один и тот же файл в одном месте. Но после того как первый из них выполнил commit своих изменений на сервер, то все остальные при попытке выполнить update актуальных данных к сервера получают уведомление о конфликте серверных изменений с локальными (эти файлы в окне update выделены красным цветом и возле них написано слово «Conflicted»).
Для разрешения конфликта необходимо в этом окне вызвать контекстное меню на конфликтном файле и выбрать один из вариантов:
- Resolve conflict using ‘mine’ (затереть серверные правки локальными);
- Resolve conflict using ‘theire’ (затереть локальные правки серверными);
- Edit conflicts (открывается окно для ручной корректировки конфликта).
После разрешения конфликта возле файла должна появится надпись «Resolved».
2) Задание глобального паттерна исключений (global ignore pattern)
Чтобы в окне коммита не появлялись временные файла необходимо задать глобальный паттерн исключений, который доступен через контекстное меню на папке с рабочей копией в пункте «Settings». В строке паттерна через пробел нужно ввести типы файлов, которые не должны подпадать под коммит.
3) Переход на другой сервер (relocate)
Если сервер с репозиторием был перемещен в другое место, но необходимо выполнить операцию Relocate, через одноименный пункт контекстного меню по папке с рабочей копией, и в открывшемся окне указать новый путь к репозиторию.

Нет обратных ссылок на эту запись.