Предыдущий ролик Следующий ролик  

Видео урок: История контроля версий

Принципы контроля версий

Прежде чем мы начнем использовать современные системы контроля версий, давайте вкратце рассмотрим их историю. Первая система контроля версий была создана в 1972 году в Bell Labs, где разрабатывалась UNIX. Она называлась SCCS. Она работала только в UNIX и только с файлами исходного кода. Десять лет спустя была разработана система Revision Control System, или RCS. Это была первая кросс-платформенная система контроля версий, но, опять же, она работала только с текстовыми файлами. И SCCS, и RCS работали только в системах разработки и не позволяли делиться кодом, так как были предназначены только для одного пользователя.

Следующее поколение ПО контроля версий - централизованные системы контроля версий - разрабатывалось с 1986 года. В Concurrent Versions System, или CVS, впервые появилось центральное хранилище, которое могло использоваться несколькими пользователями. В ней по-прежнему рабочей единицей был файл. Она отслеживала изменения в отдельных файлах, а не в целом дереве папок. Позже, в 1980-х годах, появился Perforce, и он широко использовался в эру .com. Он все еще остается самым большим хранилищем, которое используется в Google.

В 2000 году появился новый продукт под названием Subversion, который поддерживал не текстовые файлы, отслеживал изменения структуры каталогов, такие как переименования и перемещения. Его рабочей единицей была папка, а не отдельный файл. Вы могли изменить целое дерево каталогов и получить изменения для целого дерева. В 2004 году Microsoft создала Team Foundation Server, который заменил устаревшую систему Visual SourceSafe, которая изначально была клиент-серверной системой. TFS поставляется с подпиской MSDN, а это значит, что он довольно дорогой.

Также есть версия TFS Express, которую могут использовать до 5 пользователей. У TFS тесная интеграция с Visual Studio. Это означает, что вы можете вносить и получать изменения прямо в Visual Studio. Он поддерживает не только управление исходным кодом, но и отслеживание ошибок и рабочих элементов, а также функции для автоматизированного тестирования. Следующее поколение ПО контроля исходного кода - распределенный контроль. Системы распределенного контроля исходного кода отличаются тем, что в них нет центрального сервера, общего для всех. У каждого пользователя свое хранилище, и он может делиться изменениями с центральным сервером или с отдельными пользователями.

Распределенный контроль исходного кода возник из-за изменений в лицензии от компании BitKeeper. Ранее у них был продукт, который использовали Линус Торвальдс и группа разработки ядра Linux, который назывался Community Edition, и он был бесплатным. Но в 2005 году BitKeeper решили сделать всю линейку продуктов исключительно коммерческой, то есть за программу нужно было платить. Линус же хотел, чтобы все в Linux было бесплатным, и поэтому он создал программу под названием Git. Она широко используется в сочетании с GitHub - облачным сервисом в интернете, который предлагает бесплатный хостинг для проектов с открытым кодом, а также коммерческий хостинг для частного использования.

Конкурирующий продукт Mercurial также был создан в 2005 году в ответ на то же изменение BitKeeper, и он также широко используется в проектах с открытым исходным кодом. Это краткая история управления версиями с 1972 по 2012 год. Сейчас в значительной степени все используют одну из пяти систем - Perforce, Subversion или TFS, если нужна централизованная система, и Git или Mercurial, если распределенная. Теперь, когда мы рассмотрели историю, давайте подробнее рассмотрим терминологию, которую мы должны понимать, и принципы работы централизованных и распределенных систем.