Найти в Дзене
.Net Review

Система управления версиями. Что это? Сравнение Git и SVN

Оглавление

Ситуация, в которой электронный документ за время своего существования претерпевает ряд изменений, достаточно типична. При этом часто бывает важно иметь не только последнюю версию, но и несколько предыдущих. В простейшем случае можно просто хранить несколько вариантов документа, нумеруя их соответствующим образом. Такой способ неэффективен (приходится хранить несколько практически идентичных копий), требует повышенного внимания и дисциплины и часто ведёт к ошибкам, поэтому были разработаны средства для автоматизации этой работы. В этой статье подробнее о каждой технологии.

Что такое система управления версиями?

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

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

Git vs SVN

Git - распределённая система управления версиями. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux, первая версия выпущена 7 апреля 2005 года. Программа является свободной и выпущена под лицензией GNU GPL версии 2. По умолчанию используется TCP порт 9418.
Самая популярная система контроля версий на сегодняшний день.

Преимущества:

  • Легкая система. Мало весит, не ресурсозатратная.
  • Скорость работы. Хорошо оптимизированная система.
  • Архитектура. Работа Git'a отличается от привычных систем управления. Данные репозитория представлены слепками, из которых состоит весь проект.
  • Репозитории. Из-за популярности Git существуют огромное количество репозиториев для проектов. Из бесплатных: GitHub и Azure.
  • Инструменты для работы. Реализованы многофункциональные бесплатные инструменты, такие как SourceTree.

SVN - свободная централизованная система управления версиями, официально выпущенная в 2004 году компанией CollabNet. С 2010 года Subversion является одним из проектов Apache Software Foundation и официально называется Apache Subversion.
Цель проекта в начале разработки — заменить распространённую на тот момент систему Concurrent Versions System (CVS), которая на сегодняшний день считается морально устаревшей. Subversion реализует все основные функции CVS и свободна от ряда недостатков последней.

Преимущества:

  • Форматы хранилища. Можно выбрать тип хранения репозитория (БД, набор файлов).
  • Библиотеки языков. Строенные библиотеки для языков, которые включают функционал по работе с системой.
  • Инструменты для работы. Как и с Git существуют приложения для работы с SVN. Пример: TortoiseSVN.

Итог

SVN был заменой CVS, который успешно с этим справился, однако со временем Git набрал популярность за счет архитектуры и удобной работы с системой.
Проектов c системой SVN становится всё меньше. За счет популярности Git получает всё больше фишек, инструментов и хостингов репозиториев. Мой личный выбор Git.

Телеграмм канал: https://t.me/dotnetreview

Источники: SVN Wiki, Git Wiki