SCM

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Source Code Management, SCM (другая расшифровка SCM: Software Configuration Management; фактически Software Configuration Management является более общим понятием, в которое Source Code Management входит как часть) — совокупность подходов и механизмов, использующихся для управления исходным кодом программного обеспечения. Различают централизованные (centralized) и распределённые (distributed, DVCS, Distributed Version Control Systems) системы управления исходным кодом[1]

Содержание

[править] Основные отличия между централизованными и распределёнными VCS

  • В DVCS нет центрального репозитория, у каждого участника свой собственный.
  • В VCS обмен изменениями построен по клиент-серверному принципу, а в DVCS по принципу peer-to-peer.
  • В DVCS разделены публикация и создание снапшотов (не обязательно публиковать что-то, для того чтобы сохранить результаты своей работы и в случае чего к ним вернуться).
  • В DVCS есть возможность работать в отключённом состоянии, в VCS нужно быть на связи с репозиторием, если нужно сохранить изменения.

[править] Некоторые факты

  • одной из первых распределённых систем контроля версий была TeamWare, разработанная в начале 90х Sun Microsystems[2]
  • в начале 2000 Грайдон Хоаре (Graydon Hoare) начал разработку новой распределённой системы управления версиями, Monotone, в которой было реализовано множество новых амбициозных идей (например, использование хэшей в качестве идентификаторов)

[править] Дополнительная информация

  • Better SCM Initiative: Comparison Version Control System Comparison (англ.) — сравнение большого количества различных SCM
  • A Visual Guide to Version Control (англ.) — небольшое введение в централизованные системы управления исходным кодом
  • Intro to Distributed Version Control (Illustrated) (англ.) — небольшое введение в распределённые системы управления исходным кодом
  • Linus Torvalds on GIT and SCM (англ.) — Линус Торвальдс рассказывает, почему Subversion (и иже с ними) — зло, а чуваки рассказывают где Линус ошибается
  • Distributed Version Control Systems — Why and How, Ian Caltworthy, Canonical — о преимуществах и недостатках (главным образом, преимуществах) распределённых систем управления исходным кодом + небольшое введение в Bazaar
  • High-level Best Practices in Software Configuration Management (англ.) — введение в централизованные системы управления исходным кодом
  • Version Control Blog (англ.) — блог, посвящённый различным системам управления кодом (только, похоже, что этот блог уже не ведётся)
  • Understanding Version-Control Systems, Eric Raymond (англ.) (в процессе написания) — обзор этапов развития систем управления исходным кодом, сравнение этих систем, примеры работы с ними

[править] Примечания

  1. Кроме терминов SCM и VCS существует ещё несколько, обозначающих приблизительно одинаковые понятия.
    • Software configuration management (SCM) или configuration management;
    • Source code management;
    • Source code control или source control;
    • Version control (VCS).
  2. http://hgbook.red-bean.com/read/how-did-we-get-here.html A short history of revision control
Источник — «http://xgu.ru/wiki/SCM»