Ликбез SVN
В компании где я работаю, при вводе новых разработчиков в команду, бывали сложности с освоением SVN. Для ускорения ввода новых разработчиков в проект мы стали применять поход который назвали Ликбез SVN. Он заключается в следующем:
- Сформирован набор последовательных действий в TortoiseSVN. Дополнительно приложено видео с записью этих действий.
- Разработчик пробует проделать действия самостоятельно, разбирается как работает то что не понятно.
- Новый разработчик демонстрирует более опытному как выполнять эти действия. Бывают дополнительные вопросы, обсуждения или пояснения.
- Если видно что тема не понята на достаточном уровне, то проводится "пересдача".
- После успешной демонстрации разработчику рекомендуется проделать все действия ещё раз самостоятельно.
В среднем, даже без предварительной работы с системами контроля версий, такой ликбез проходиться за день-два. После этого вопросов по работе с SVN обычно не возникает.
Ликбез SVN
Все действия выполняются в TortoiseSVN.
- Создать репозиторий с названием rep (через TortoiseSVN) со стандартной структурой каталогов.
- Выгрузить рабочую копию из репозитория rep ветка trunk.
- Сделать четыре фиксации в рабочую копию (фиксируются только нужные файлы, лишние добавляются в список игнорирования).
- Новый проект на Delphi (GUI приложение).
- Добавлена кнопка.
- Добавлен обработчик для кнопки с ShowMessage.
- Добавлена вторая кнопка со вторым обработчиком с ShowMessage.
- Показать как посмотреть какая ветка выгружена в рабочей копии.
- Показать как посмотреть какая ревизия выгружена в рабочей копии.
- Показать как посмотреть изменения во 2-ой фиксации.
- Показать как посмотреть какие изменения внесены в рабочую копию или что изменений нет.
- Внести изменения в файлы в рабочей копии.
- Убрать изменения в рабочей копии.
- Выгрузить в рабочую копию ревизию 3.
- Обновить рабочую копию до последней ревизии.
- Добавить ветку в репозиторий.
- Показать как посмотреть список веток в репозитории.
- Переключать рабочую копию на другую ветку.
- Добавить две фиксации в ветке.
- Изменить текст внутри ShowMessage.
- Добавить третью кнопку.
- Убрать изменения в одной из фиксаций в trunk.
- Сделать слияние из ветки в trunk двух ревизий, каждую ревизию сливать отдельной фиксацией.
- Показать как посмотреть полную историю изменений во всех ревизиях со всех веток.
- Показать как воспроизвести конфликт в рабочей копии при выполнении обновления.
- Показать как воспроизвести конфликт в рабочей копии при выполнении слияния из ветки.
- Показать как разрешить конфликт.
- Показать как посмотреть кто последний менял отдельные строки в файле.
- Переименовать файл с сохранением истории изменений файла.
- Переместить файл в новый каталог с сохранением истории изменений файла.
- Показать как посмотреть свойства (svn property) репозитория.
- Показать как посмотреть свойства (svn property) файла.
- Подключить один репозиторий к другому через свойство svn:externals ссылка должна быть на определенную ревизию, не на HEAD.
- Зафиксировать изменения в подключенном репозитории и обновить ссылку в основном.
- Создать патч (заплатку).
- Применить патч (заплатку).