<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=DVCS</id>
		<title>DVCS - История изменений</title>
		<link rel="self" type="application/atom+xml" href="https://lib.custis.ru/index.php?action=history&amp;feed=atom&amp;title=DVCS"/>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=DVCS&amp;action=history"/>
		<updated>2026-04-30T15:55:17Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.26.4</generator>

	<entry>
		<id>https://lib.custis.ru/index.php?title=DVCS&amp;diff=23350&amp;oldid=prev</id>
		<title>VitaliyFilippov: /* Mercurial */</title>
		<link rel="alternate" type="text/html" href="https://lib.custis.ru/index.php?title=DVCS&amp;diff=23350&amp;oldid=prev"/>
				<updated>2011-03-02T13:04:59Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Mercurial&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''DVCS''' — распределённые системы контроля версий (Distributed/Decentralized Version Control System). Вместо «распределённых» можно также использовать термин «децентрализованные», а вместо «системы контроля версий» — «системы управления версиями» (СУВ).&lt;br /&gt;
&lt;br /&gt;
== Отличительные особенности ==&lt;br /&gt;
&lt;br /&gt;
Основная идея — вместо необходимости наличия центрального репозитория, хранящего историю изменений (как, например, в [[CVS]] и [[Subversion]]), копия репозитория содержится в каждой рабочей копии, и поэтому разработчики могут обмениваться изменениями напрямую.&lt;br /&gt;
&lt;br /&gt;
В связи с этим сразу возникает необходимость удобной поддержки '''слияний''', так как потенциально возникает сильное ветвление, и с ним нужно что-то делать. Это удобство успешно предоставляется существующими системами, в отличие от, например, [[Subversion]]'а (являющегося централизованной СУВ), в которой ветвиться достаточно просто и удобно, а вот сливать изменения — тяжело.&lt;br /&gt;
&lt;br /&gt;
Первое отличие, замечаемое при переходе на DVCS с централизованных систем — команды «update» и «commit» извлекают/фиксируют изменения не из центрального репозитория, а из локального, и появляется ещё две команды — «pull» и «push», предназначенные для приёма/передачи изменений из удалённых репозиториев.&lt;br /&gt;
&lt;br /&gt;
Ещё одно важное отличие — DVCS понимают репозиторий как «цельный проект», и при управлении версиями не делят его на отдельные файлы и каталоги — то есть, если кто-то сделал изменение в другом файле параллельно с вами — ваша правка всё равно создаст отдельную ветку, и их придётся объединять. Хотя объединение, конечно, пройдёт полностью автоматически и безболезненно. Поэтому обычно не рекомендуется поддерживать несколько проектов в одном DVCS-репозитории.&lt;br /&gt;
&lt;br /&gt;
По сути, никто не мешает использовать DVCS в «централизованном стиле», имея сервер и постоянно синхронизируя локальный репозиторий с ним, но при этом всё равно возможен и прямой обмен историей между разными разработчиками.&lt;br /&gt;
&lt;br /&gt;
Интересный факт: все три наиболее популярные DVCS ('''Git''', '''Mercurial''' и '''Bazaar''') поддерживают работу с Subversion-репозиториями, причём делают это быстрее, чем сам клиент Subversion, и быстрее всех работает Bazaar.&lt;br /&gt;
&lt;br /&gt;
== Известные DVCS ==&lt;br /&gt;
&lt;br /&gt;
Ниже перечислены наиболее известные на данный момент свободные DVCS.&lt;br /&gt;
&lt;br /&gt;
Самые популярные и активно развиваемые сейчас — в первую очередь, '''Git''', '''Mercurial''' и '''Bazaar''', их активно догоняющий.&lt;br /&gt;
&lt;br /&gt;
GNU Arch не развивается, хотя поддерживается.&lt;br /&gt;
&lt;br /&gt;
=== [http://git-scm.com/ Git] ===&lt;br /&gt;
&lt;br /&gt;
* Домашняя страница: http://git-scm.com/.&lt;br /&gt;
* Автор: Linus Torvalds.&lt;br /&gt;
* Создана в 2005-ом году.&lt;br /&gt;
* «Snapshot-based», то есть, хранит полные версии, а не изменения между ними.&lt;br /&gt;
* Консольная команда «git».&lt;br /&gt;
&lt;br /&gt;
Интересные факты:&lt;br /&gt;
&lt;br /&gt;
* С 2005-го же года используется в разработке [http://www.kernel.org/ ядра Linux].&lt;br /&gt;
* Представляет собой набор утилит, написанных на C, [[Perl]]'е, и [[wikipedia:Shell script|шелл-скриптов]] (bash), использует Linux-специфичные вещи в целях оптимизации. В связи со всем этим под Windows чувствует себя хуже Mercurial’а и Bazaar’а.&lt;br /&gt;
* Наиболее быстрая и эффективная в терминах использования дискового пространства.&lt;br /&gt;
&lt;br /&gt;
=== [http://mercurial.selenic.com/ Mercurial] ===&lt;br /&gt;
&lt;br /&gt;
* Домашняя страница: http://mercurial.selenic.com/&lt;br /&gt;
* Первый автор: Matt Mackall.&lt;br /&gt;
* Создана в 2005-ом году (первый релиз 19.04.2005).&lt;br /&gt;
* Написана на языке [[Python]].&lt;br /&gt;
* «Changeset-based», то есть, хранит патчи (изменения между версиями).&lt;br /&gt;
* Консольная команда «hg».&lt;br /&gt;
&lt;br /&gt;
Интересные факты:&lt;br /&gt;
&lt;br /&gt;
* Наиболее совместима с [[Subversion]] по синтаксису команд, также (субъективное мнение) имеет наиболее дружелюбный интерфейс.&lt;br /&gt;
* Примерно эквивалентна по доступной функциональности Git’у, но гораздо дружелюбнее и проще последнего.&lt;br /&gt;
* Менее эффективна в терминах использования дискового пространства, чем Git и Bazaar.&lt;br /&gt;
&lt;br /&gt;
=== [http://bazaar.canonical.com/ Bazaar] ===&lt;br /&gt;
&lt;br /&gt;
* Домашняя страница: http://bazaar.canonical.com/&lt;br /&gt;
* Первый автор: Martin Pool.&lt;br /&gt;
* Создана в 2007-ом году (первый релиз 14.12.2007).&lt;br /&gt;
* Написана на языке [[Python]].&lt;br /&gt;
* «Snapshot-based», то есть, как и Git, хранит полные версии.&lt;br /&gt;
* Консольная команда «bzr».&lt;br /&gt;
&lt;br /&gt;
Интересные факты:&lt;br /&gt;
&lt;br /&gt;
* Спонсируется компанией [http://www.canonical.com/ Canonical] (занимаются Ubuntu).&lt;br /&gt;
* Точное название Bazaar-NG (Next Generation), предыдущий Bazaar был форком '''GNU Arch''', а ныне называется Baz. Поэтому Bazaar-NG также имеет унаследованные от Arch черты, например, а) у них '''всегда''' один «head» (ревизия, не имеющая наследников) и б) в одном репозитории '''всегда''' одна ветка, и хотя в новых версиях Bazaar есть возможность создать «shared repository» для хранения в нём множества веток, по удобству это больше похоже на Subversion, чем на Git или Mercurial.&lt;br /&gt;
* Умеет делать checkout’ы (то есть рабочие копии без репозитория), а не только клоны, включающие в себя всю историю.&lt;br /&gt;
&lt;br /&gt;
=== [http://darcs.net/ Darcs] ===&lt;br /&gt;
&lt;br /&gt;
* Домашняя страница: http://darcs.net/&lt;br /&gt;
* Первый автор: David Roundy.&lt;br /&gt;
* Создана в 2002-ом году, первый публичный релиз в 2003-ем.&lt;br /&gt;
* «Changeset-based», хранит патчи.&lt;br /&gt;
* Консольная команда «darcs».&lt;br /&gt;
&lt;br /&gt;
Интересные факты:&lt;br /&gt;
&lt;br /&gt;
* Написана на функциональном языке [[rupedia:Haskell|Haskell]].&lt;br /&gt;
* Основана на математической «теории патчей», созданной автором.&lt;br /&gt;
&lt;br /&gt;
=== [http://monotone.ca Monotone] ===&lt;br /&gt;
&lt;br /&gt;
* Домашняя страница: http://monotone.ca&lt;br /&gt;
* Создана в 2003-ем году.&lt;br /&gt;
* «Changeset-based», хранит патчи.&lt;br /&gt;
* Консольная команда «mtn».&lt;br /&gt;
&lt;br /&gt;
Интересные факты:&lt;br /&gt;
&lt;br /&gt;
* Модель хранения называется «гибридной», хотя на самом деле хранятся изменения, а полные ревизии, хотя и тоже хранятся, строятся из них.&lt;br /&gt;
* Репозиторий представляет собой один цельный файл.&lt;br /&gt;
* Разработка фокусируется в первую очередь на целостности данных, а не на скорости. В Monotone активно используется криптография для идентификации пользователей и ревизий.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnu.org/software/gnu-arch/ GNU Arch] ===&lt;br /&gt;
&lt;br /&gt;
* Домашняя страница: http://www.gnu.org/software/gnu-arch/&lt;br /&gt;
* Первый автор: Tom Lord.&lt;br /&gt;
* Смесь C и шелл-скриптов.&lt;br /&gt;
* Создана в 2001-ом году.&lt;br /&gt;
* «Changeset-based», хранит патчи.&lt;br /&gt;
&lt;br /&gt;
Интересные факты:&lt;br /&gt;
&lt;br /&gt;
* Консольная команда «tla» (Tom Lord’s Arch).&lt;br /&gt;
* От Archа унаследован Bazaar вместе с несколькими своими идеями, активно защищаемыми его сторонниками.&lt;br /&gt;
&lt;br /&gt;
= Ссылки =&lt;br /&gt;
&lt;br /&gt;
* [[wikipedia:Distributed revision control]]&lt;br /&gt;
* [[wikipedia:Comparison of revision control software]]&lt;br /&gt;
* [[lib:DVCS_vs_SVN|DVCS vs SVN]]&lt;br /&gt;
* [[DVCS YAC|Ещё одно сравнение популярных DVCS]]&lt;br /&gt;
&lt;br /&gt;
{{replicate-from-custiswiki-to-lib}}&lt;/div&gt;</summary>
		<author><name>VitaliyFilippov</name></author>	</entry>

	</feed>