<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Outsourcing stories &#187; mercurial</title>
	<atom:link href="http://alexlebedev.com/blog/category/mercurial/feed/" rel="self" type="application/rss+xml" />
	<link>http://alexlebedev.com/blog</link>
	<description>Alexander Lebedev writes about software development and outsourcing</description>
	<lastBuildDate>Tue, 28 Dec 2010 13:15:13 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Python переходит на Mercurial</title>
		<link>http://alexlebedev.com/blog/python-switches-to-mercruial/</link>
		<comments>http://alexlebedev.com/blog/python-switches-to-mercruial/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 04:15:27 +0000</pubDate>
		<dc:creator>Alex Lebedev</dc:creator>
				<category><![CDATA[mercurial]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[новости]]></category>

		<guid isPermaLink="false">http://alexlebedev.com/blog/python-switches-to-mercruial/</guid>
		<description><![CDATA[Гвидо ван Россум окончательно выбрал Mercurial в качестве системы контроля исходного кода для разработки Python.  Оригинал новости

Что ж, как я писал в комментариях про git, можно ожидать существенного расширения экосистемы mercurial за счет связанных с python проектов.  Скорее всего, эффект будет не меньший, чем от перехода Ruby on Rails на git.  Теперь [...]]]></description>
			<content:encoded><![CDATA[<p>Гвидо ван Россум окончательно выбрал Mercurial в качестве системы контроля исходного кода для разработки Python.  <a href="http://mail.python.org/pipermail/python-dev/2009-March/087931.html">Оригинал новости</a></p>

<p>Что ж, как я писал в комментариях про git, можно ожидать существенного расширения экосистемы mercurial за счет связанных с python проектов.  Скорее всего, эффект будет не меньший, чем от перехода Ruby on Rails на git.  Теперь надо внимательно следить за Django, SQL Alchemy и pygtk &#8212; многое зависит от того, на что перейдут они.</p>
]]></content:encoded>
			<wfw:commentRss>http://alexlebedev.com/blog/python-switches-to-mercruial/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mercurial, полет нормальный</title>
		<link>http://alexlebedev.com/blog/mercurial-flying-fine/</link>
		<comments>http://alexlebedev.com/blog/mercurial-flying-fine/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 11:09:12 +0000</pubDate>
		<dc:creator>Alex Lebedev</dc:creator>
				<category><![CDATA[mercurial]]></category>
		<category><![CDATA[инструменты]]></category>

		<guid isPermaLink="false">http://alexlebedev.com/blog/mercurial-flying-fine/</guid>
		<description><![CDATA[Не так давно я обосновывал, что git лучше, чем Mercurial.  К сожалению, невозможность увязать LDAP-авторизацию иначе, чем через WebDAV, поставила крест на использовании git.  WebDAV оказался непригоден для транзакционных операций с большим числом файлов, репозиторий постоянно приходил в некорректное состояние.  Примерно через неделю разборок с WebDAV нам надоело жрать этот кактус и было решено использовать Mercurial.

Прошел почти месяц и уже можно твердо сказать, что решение было удачным.]]></description>
			<content:encoded><![CDATA[<p>Не так давно я <a href="http://alexlebedev.com/blog/git-or-mercurial/">обосновывал</a>, что git лучше, чем Mercurial.  К сожалению, невозможность увязать LDAP-авторизацию иначе, чем через WebDAV, поставила крест на использовании git.  WebDAV оказался непригоден для транзакционных операций с большим числом файлов, репозиторий постоянно приходил в некорректное состояние.  Примерно через неделю разборок с WebDAV нам надоело жрать этот кактус и было решено использовать Mercurial.</p>

<p>Прошел почти месяц и уже можно твердо сказать, что решение было удачным.</p>

<h2>Приятности</h2>

<ol>
<li><p>По сравнению с SVN лучше практически все: отличная скорость, удобная работа с бранчами.</p></li>
<li><p>Никаких проблем интеграции с Trac, все сделано на аналогичном SVN&#8217;у уровне</p></li>
<li><p>Для одновременной работы с SVN и Mercurial существует отличная утилита <a href="">hgsvn</a>.  Мы ее использовали при импорте истории из SVN, все прошло гладко.  В моем домашнем репозитории, правда, возникли мелкие проблемы с распознаванием кодировок, до решения которых пока не дошли руки.</p></li>
<li><p>Для Windows существует достаточно приятный TortoiseHg.  Лично мне удобнее работать с клиентом командной строки, зато Tortoise обеспечивает удобный интерфейс для просмотра логов.  На *nix визуальный показ лога входит в ядро Mercurial и вызывается командой <code>hg view</code>.</p></li>
<li><p>Mercurial действительно оказался значительно проще в изучении, чем git.</p></li>
</ol>

<h2>Потенциальные проблемы</h2>

<p>Основная проблемная область при переходе c SVN на Mercurial &#8212; работа с бранчами и все что с ней связано.  Это очень мощная и полезная функциональность, но при неаккуратном использовании может получиться вот такая лапша:</p>

<p><img id="image114" src="http://alexlebedev.com/blog/wp-content/uploads/2009/01/branches.png" alt="Mercurial branch spaghetti" /></p>

<p>На картинке вы видите последствия одного коммита в неправильный бранч и последовавший процесс исправления этих последствий.</p>

<p>Настоятельно рекомендую перед миграцией на Mercurial хотя бы одному члену команды внимательно прочитать документацию.  Проблемы в первое время обязательно будут возникать, и кто-то должен уметь их решать.  Если вы раньше не работали с распределенными системами контроля версий, то интуиция в решении этих проблем не поможет, нужно будет четкое понимание того, что происходит внутри.</p>

<p>Мелочи, на которые стоит обратить внимание:</p>

<ul>
<li><p><code>hg push</code> требует флага <code>-f</code> при создании новой &#8220;головы&#8221;, даже если вы работаете в рамках давно существующего бранча.</p></li>
<li><p>После мержа все изменения в рабочей копии должны быть закоммичены в рамках одной транзакции.  В ряде ситуаций это бывает очень неудобным.  Всегда коммитьте все локальные изменения перед мержем!</p></li>
</ul>

<h2>Материалы</h2>

<ul>
<li><p><a href="http://www.selenic.com/mercurial/">Официальный сайт Mercurial</a></p></li>
<li><p><a href="http://tortoisehg.sourceforge.net/">TortoiseHg</a> &#8212; интеграция Mercurial в &#8220;Проводник&#8221; Windows</p></li>
<li><p><a href="http://tortoisehg.sourceforge.net/">hgsvn</a> &#8212; утилита для одновременной работы с Mercurial и SVN</p></li>
<li><p><a href="http://ww2.samhart.com/book/export/html/49">Converting from Subversion to Mercurial</a> &#8212; отличное руководство по переносу репозитория из SVN в Mercurial</p></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://alexlebedev.com/blog/mercurial-flying-fine/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Мысли вслух: Git или Mercurial</title>
		<link>http://alexlebedev.com/blog/git-or-mercurial/</link>
		<comments>http://alexlebedev.com/blog/git-or-mercurial/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 05:26:16 +0000</pubDate>
		<dc:creator>Alex Lebedev</dc:creator>
				<category><![CDATA[git]]></category>
		<category><![CDATA[mercurial]]></category>
		<category><![CDATA[инструменты]]></category>

		<guid isPermaLink="false">http://alexlebedev.com/blog/git-or-mercurial/</guid>
		<description><![CDATA[Выбираем систему распределенного контроля версий (DVCS).

В целом надо сказать, что git и Mercurial считаются двумя лучшими представителями распределенных систем контроля версий.  Оба достаточно хороши и отлично решат наши задачи так что практическая разница между ними невелика.

Плюсы Git:
...]]></description>
			<content:encoded><![CDATA[<p>Выбираем систему распределенного контроля версий (DVCS).</p>

<p>В целом надо сказать, что git и Mercurial считаются двумя лучшими представителями распределенных систем контроля версий.  Оба достаточно хороши и отлично решат наши задачи так что практическая разница между ними невелика.</p>

<p>Плюсы Git:</p>

<ol>
<li><p><a href="http://whygitisbetterthanx.com/#cheap-local-branching">Локальные бранчи</a>.  Это очень полезная возможность.</p></li>
<li><p>Большая популярность по сравнению с Mercurial.  По моим впечатлениям материалов по git в сети в 3-4 раза больше, вероятно, количество пользователей находится в похожей пропорции.</p></li>
<li><p>Легкость переноса open-source вещей на GitHub.  Для Mercurial, насколько я знаю, нет ничего подобного.</p></li>
<li><p>git-svn может быть большим плюсом если нам понадобится интеграция с svn.  Можно, например, работать поверх svn-репозитория заказчика, выкладывая туда только стабильные изменения &#8212; это будет значительно проще, чем вести параллельные бранчи в SVN.</p></li>
</ol>

<p>Плюсы Mercurial:</p>

<ol>
<li><p>Легче для понимания и изучения, судя по большинству источников.</p></li>
<li><p>Исторически лучше поддерживает Windows, меньше проблем с настройкой.</p></li>
</ol>

<p>Меня больше привлекает git, его уникальные преимущества заметно перевешивают недостаки, а статус самой популярной DVCS позволяет полагать, что и развиваться он будет быстрее конкурентов.</p>

<h2>Материалы по теме</h2>

<ul>
<li><a href="http://whygitisbetterthanx.com/">Why git is better than X</a></li>
<li><a href="http://www.dribin.org/dave/blog/archives/2007/12/30/why_mercurial/">Why I chose Mercurial</a></li>
<li><a href="http://plasmasturm.org/log/487/">Why I chose Git</a></li>
<li><a href="http://www.simplicidade.org/notes/archives/2007/12/git_vs_mercuria_1.html">Git vs Mercurial</a></li>
<li><a href="http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/">Git vs. Mercurial: Please Relax</a></li>
<li><a href="http://changelog.complete.org/archives/689-revisiting-git-and-mercurial">Revisiting Git and Mercurial</a></li>
<li><a href="http://importantshock.wordpress.com/2008/08/07/git-vs-mercurial/">Git vs. Mercurial: Please Relax</a></li>
<li><a href="http://stackoverflow.com/questions/77485/what-are-the-relative-strengths-and-weaknesses-of-git-mercurial-and-bazaar">What are the relative strengths and weaknesses of Git, Mercurial, and Bazaar?</a></li>
<li><a href="http://texagon.blogspot.com/2008/02/use-mercurial-you-git.html">Use Mercurial, you Git!</a></li>
<li><a href="http://weblog.masukomi.org/2008/02/07/a-rebuttal-to-use-mercurial-you-git">A rebuttal to &#8220;Use Mercurial You Git&#8221;</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://alexlebedev.com/blog/git-or-mercurial/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

