Skip to Content

SVN для чайников. Часть I.

Данный цикл статей посвящен введению в использование SVN, с точки зрения обычного пользователя. Статья была написана в помощь моим коллегам для быстрого освоения и использования SVN. Итак начнем с азов.

Данный материал был опубликован в журнале "Компоненты и технологии"

Введение

Subversion (SVN) — бесплатная система управления версиями с открытым исходным кодом. SVN позволяет управлять файлами и каталогами, а так же сделанными в них изменениями во времени. SVN предоставляет следующие возможности :

  1. Контроль изменений каталогов. SVN использует «виртуальную» файловую систему с возможностями управления версиями, которая способна отслеживать изменения во времени целых структур каталогов
  2. Настоящая история версий. SVN делает возможным добавление, удаление, копирование и переименование как файлов, так и каталогов. При этом каждый вновь добавленный файл начинает жизнь с чистого листа, сохраняя собственную историю изменений
  3. Атомарная фиксация изменений. Каждый набор изменений либо попадает в хранилище целиком, либо не попадает туда вовсе. Т.е. если при фиксации изменений проекта произошла ошибка при обработке файла, то изменения всего проекта не будут зафиксированы
  4. Метаданные с версиями. Каждый файл и каталог имеет собственный набор свойств, представленных в виде названия и значения. Вы можете создавать и сохранять любые необходимые пары названий свойств и их значений. Свойства файлов точно так же находятся под управлением версиями, как  их содержимое
  5. Единый способ работы с данными. SVN обнаруживает различия между файлами с помощью специального бинарного алгоритма, который одинаково работает как с текстовыми, так и с бинарными файлами. Файлы записываются в хранилище в сжатом виде независимо от их типа, а различия между отдельными версиями могут передаваться по сети в обоих направлениях
  6. Эффективные ветки и метки. SVN создаёт ветки и метки путём простого копирования проекта, используя механизм, похожий на жёсткие ссылки в файловых системах. Благодаря этому, операции по созданию веток и меток занимают немного времени.


Список основных терминов

  1. Репозиторий (repository) — централизованное хранилище исходных кодов, рабочих материалов и документации. Любое количество клиентов подключается к хранилищу и читает или записывает эти файлы
  2. Рабочая копия/working copy (WC) — обычное дерево каталогов на компьютере, содержащие набор файлов для работы над проектом. Изменения в рабочей копии не доступны для других пользователей репозитория, до тех пор пока они не будут зафиксированы.
  3. Trunk — основное направление разработки
  4. Branch (''Ветка'') - направление разработки, которое существует независимо от другого направления, но имеет с ним общую историю. Ветка всегда берет начало как копия чего-либо и движется от этой точки, создавая свою собственную историю
  5. Tag (''Метка'') — выделенная явно, через создание отдельной папки версия файлов проекта в определенный момент времени.
  6. Revision — номер ревизии репозитория, в пределах репозитория номер ревизии уникальная величина
  7. Checkout – команда, которая выполняет начальное получение проекта из репозитория в WC.
  8. Commit – команда, которая выполняет фиксацию изменений файлов проекта в WC в Репозиторий.
  9. Update – команда, которая выполняет обновление файлов проекта в WC из репозитория
  10. Revert – команда, которая выполняет отмену любых изменений в файлах проекта в WC на основе номера ревизии репозитория.
  11. Merge – команда, которая выполняет слияние файлов из разных веток проекта и помещает результат слияния в WC.
  12. Conflict – ситуация, возникающая при фиксации изменений, когда одни и те же файлы изменяли несколько разработчиков.
  13. Resolve – набор правил по разрешению возникающих конфликтов.
  14. Import – команда, для быстрого копирования дерева файлов в Репозиторий.
  15. Export – команда, для экспорта проекта, отличается от checkout тем, что не создает в папках проекта служебную информацию.
  16. Switch – команда, которая выполняет переключение WC на другую ветку разработки.
  17. Create, Add, Delete, Copy, Move, Rename – команды для управления файлами и папками в репозитории или WC.

Программное обеспечение

Работа с репозиторием SVN рассмотрена на основе программного обеспечения TortoiseSVN tortoisesvn.net/ версии 1.5.8 и программы сравнения файлов ExamDiff.


Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

re: error

Решил поставить данную систему, посмотреть, как работает.

После установки создал папку test, зашел в нее и запустил repository browser.

При попытке создать репозиторий ругается - unable to open an ra_local session URL и unable to open repository "file:///C:/test/1.txt"

сначала нужно сделать

сначала нужно сделать репозиторий. для этого нужно создать папку репозитория на диске и в ней запустить команду Create Repository Here. Только потом можно запускать браузер репозитория с указанием пути до локального репозитория.

Уточните пожалуйста...

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

Так как все же лучше осуществлять перемещение папок и файлов? В рабочей копии или средствами репозитория?

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

Содержание этого поля является приватным и не предназначено к показу.
  • Syntax highlight code surrounded by the {syntaxhighlighter SPEC}...{/syntaxhighlighter} tags, where SPEC is a Syntaxhighlighter options string or "class="OPTIONS" title="the title".
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <b> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <p> <pre> <strike> <table> <tbody> <tr> <td>
  • Использовать как разделитель страниц.

Подробнее о форматировании