<?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>The WebDevil &#187; git</title>
	<atom:link href="http://dmitry.shaposhnik.name/category/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://dmitry.shaposhnik.name</link>
	<description>Enjoy development</description>
	<lastBuildDate>Mon, 24 May 2010 01:29:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>git, gitosis, tailor, and bzr</title>
		<link>http://dmitry.shaposhnik.name/2008/12/09/git-gitosis-tailor-and-bzr/</link>
		<comments>http://dmitry.shaposhnik.name/2008/12/09/git-gitosis-tailor-and-bzr/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 22:45:15 +0000</pubDate>
		<dc:creator>dm</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bzr]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[tutorials]]></category>

		<guid isPermaLink="false">http://dmitry.shaposhnik.name/?p=248</guid>
		<description><![CDATA[git
До общения с Oleganza я не видел у git каких-либо ярких преимуществ перед bzr.
И, наверное, не увидел бы, если бы не Олег. 
Первое что было самым необычным &#8211; git полностью децентрализованый. И привычный svn-like workflow тут не работает. Надо было привыкать к branch-style.
Второе &#8211; это то, что команды с теми же названиями что и у [...]]]></description>
			<content:encoded><![CDATA[<h2>git</h2>
<p>До общения с Oleganza я не видел у <a href="http://git.or.cz">git</a> каких-либо ярких преимуществ перед <a href="http://bazaar-vcs.org">bzr</a>.<br />
И, наверное, не увидел бы, если бы не Олег. </p>
<p>Первое что было самым необычным &#8211; git полностью децентрализованый. И привычный svn-like workflow тут не работает. Надо было привыкать к branch-style.</p>
<p>Второе &#8211; это то, что команды с теми же названиями что и у svn имеют другой смысл.</p>
<p>Жутко понравилось что ветки git держит в себе, то есть не надо плодить по 3-4 папки для разных фичей.</p>
<h2>gitosis</h2>
<p>Также я задумался о совместной работе. <a href="http://github.com">github</a> &#8211; это, конечно, хорошо, но у меня уже есть <a href="http://redmine.org">багтракер</a> понимающий git. Отчего бы не попробовать git на своем сервере?</p>
<p>Был заведен юзерь git без пароля</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> adduser <span style="color: #660033;">--shell</span> <span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">sh</span> <span style="color: #660033;">--gecos</span> <span style="color: #ff0000;">'git version control'</span> <span style="color: #660033;">--disabled-password</span> <span style="color: #660033;">--home</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">git</span> <span style="color: #c20cb9; font-weight: bold;">git</span></div></div>
<p>поставлен gitosis</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> gitosis</div></div>
<p>сделаны небольшие правки его сорсов (дело в том, что по умолчанию gitosis создает репо с маской 0750, мне же надо было с 0755 &#8211; чтоб www-data мог его читать):<br />
правим</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>lib<span style="color: #000000; font-weight: bold;">/</span>python-support<span style="color: #000000; font-weight: bold;">/</span>python2.5<span style="color: #000000; font-weight: bold;">/</span>gitosis-<span style="color: #000000;">0.2</span>-py2.5.egg<span style="color: #000000; font-weight: bold;">/</span>gitosis<span style="color: #000000; font-weight: bold;">/</span>repository.py</div></div>
<p>и заменяем 0750 на 0755.</p>
<p>Подробнее описано в <a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way">блоге разработчика gitosis</a>.</p>
<h2>tailor and bzr</h2>
<p>Когда все взлетело с git, решил попробовать отконвертировать при помощи утилиты <a href="http://progetti.arstecnica.it/tailor">tailor</a> старые репо из bzr в git.<br />
Конфиг получился примерно такой (замечания приветствуются):</p>
<div class="codecolorer-container ini default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="ini codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>DEFAULT<span style="">&#93;</span></span><br />
<span style="color: #000099;">verbose</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> True</span><br />
<br />
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>project<span style="">&#93;</span></span><br />
<span style="color: #000099;">target</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> git:target</span><br />
<span style="color: #000099;">start-revision</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> INITIAL</span><br />
<span style="color: #000099;">root-directory</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /home/dm/tmp/bzr2git</span><br />
<span style="color: #000099;">state-file</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> tailor.state</span><br />
<span style="color: #000099;">source</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> bzr:source</span><br />
<span style="color: #000099;">subdir</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> bzr2git.tmp</span><br />
<br />
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>bzr:source<span style="">&#93;</span></span><br />
<span style="color: #000099;">repository</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /home/dm/bzr/BZR_PROJECT_HERE</span><br />
<br />
<span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>git:target<span style="">&#93;</span></span><br />
<span style="color: #000099;">repository</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> /home/dm/tmp/bzr2git/tmp/.git</span></div></div>
<p>и после запуска</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">tailor bzr2git.conf</div></div>
<p>в /home/dm/tmp/bzr2git/bzr2git.tmp появляется вполне живой git-репозитарий. Его я уже стягивал к себе и вливал в gitosis от себя.</p>
<h2>Примечание</h2>
<p>git не отслеживает пустые папки, и в процессе конвертации теряются &#8220;log&#8221;, &#8220;tmp&#8221;, etc&#8230; Чтоб отслеживал достаточно</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #c20cb9; font-weight: bold;">mkdir</span> log<br />
<span style="color: #c20cb9; font-weight: bold;">touch</span> log<span style="color: #000000; font-weight: bold;">/</span>.empty</div></div>
]]></content:encoded>
			<wfw:commentRss>http://dmitry.shaposhnik.name/2008/12/09/git-gitosis-tailor-and-bzr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
