<?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>Leeiio Chaos Made. &#187; Mercurial</title>
	<atom:link href="http://leeiio.me/tag/mercurial/feed/" rel="self" type="application/rss+xml" />
	<link>http://leeiio.me</link>
	<description>The site is redesigning,please be patient  :P</description>
	<lastBuildDate>Sun, 29 Jan 2012 16:40:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>同步你的 Mercurial(Hg) 和 Git 版本库</title>
		<link>http://leeiio.me/synchronizing-a-mercurial-repository-with-git/</link>
		<comments>http://leeiio.me/synchronizing-a-mercurial-repository-with-git/#comments</comments>
		<pubDate>Wed, 08 Sep 2010 13:59:41 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[設計資源]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Hg]]></category>
		<category><![CDATA[Hg-Git]]></category>
		<category><![CDATA[Mercurial]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=2141</guid>
		<description><![CDATA[我的Vim的配置文件之前都是托管在Bitbucket的，因为公司用的也是Hg，所以相对对于Hg使用更熟练一点。虽然Hg和Git都是分布式版本管理工具，但是Hg在使用上以及学习上确实简单不少，很容易上手了。但是还是有很多人是喜欢用Git的，所以我必须要把我的Vim的配置同时用Git来进行版本管理，然后push到著名的Github网站，这样Git使用者也可以很方便的watch以及pull我的最新配置(虽然目前还没有什么人watch&#8230;)。 之前的做法比较傻，为了让Git和Hg管理同一个目录，通常操作完Hg的push，然后再用Git进行commit然后push，虽然也是能达到版本库同步的目的，但是很繁琐，因为要分别用Hg和Git进行commit和push操作，有时候还会面临merge问题，实在不是一个好方法。 那肯定是有更好的方法咯？当然！有一个Hg的插件叫做Hg-Git正好满足了这样的需求。 什么是Hg-Git Hg-Git是Mercurial(Hg)的扩展插件，为Hg增加了从Git服务器pull和push到Git服务器的功能。这意味着你可以从Git的服务器上pull代码然后转变成Hg版本库来进行管理，同时意味着你可以同时把你的Hg版本库push到Git服务器。 安装Hg-Git 简单方式 在你的命令行终端里运行easy_install hg-git，然后查看你的~/.hgrc文件里是否有如下几行代码 &#91;extensions&#93; hgext.bookmarks = hggit = esay_install 是python 包管理工具，它的作用类似于Php中的pear，或者Ruby中的gem，或者Perl中的cpan，或者haskell 中的cabal。 手动方式 从Hg-Git托管在Github的代码库http://github.com/schacon/hg-git/zipball/master里下载然后放置到某个目录。当然前提是你安装了0.4.0或者更新版本的dulwich。你可以使用easy_install &#8216;dulwich>=0.4.0&#8242; 命令进行安装如果你安装了setuptools。接着打开你的~/.hgrc文件，复制并编辑如下配置 &#91;extensions&#93; hgext.bookmarks = hggit = &#91;path-to&#93;/hg-git/hggit 这样就安装好了Hg-Git扩展，这里的配置中bookmarks的配置并不是必须的，但是当在push的时候它会被转化成Git的heads。 用法 如果你想要用Hg clone一個Git版本库，只需使用hg clone [url]便可，例如 $ hg clone git+ssh://git@github.com:Leeiio/Vim.git push的命令也很简单 $ &#8230; <a href="http://leeiio.me/synchronizing-a-mercurial-repository-with-git/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.leeiio.me/blogimgs/2010/09/20100908_hg_git_sync.jpg" alt="同步你的 Mercurial(Hg) 和 Git 版本库" /><br />
我的Vim的配置文件之前都是托管在Bitbucket的，因为公司用的也是Hg，所以相对对于Hg使用更熟练一点。虽然Hg和Git都是分布式版本管理工具，但是Hg在使用上以及学习上确实简单不少，很容易上手了。但是还是有很多人是喜欢用Git的，所以我必须要把我的Vim的配置同时用Git来进行版本管理，然后push到著名的Github网站，这样Git使用者也可以很方便的watch以及pull我的最新配置(虽然目前还没有什么人watch&#8230;)。</p>
<p>之前的做法比较傻，为了让Git和Hg管理同一个目录，通常操作完Hg的push，然后再用Git进行commit然后push，虽然也是能达到版本库同步的目的，但是很繁琐，因为要分别用Hg和Git进行commit和push操作，有时候还会面临merge问题，实在不是一个好方法。<br />
<span id="more-2141"></span><br />
那肯定是有更好的方法咯？当然！有一个Hg的插件叫做<a href="http://hg-git.github.com/" rel="nofollow">Hg-Git</a>正好满足了这样的需求。</p>
<h2 class="part-title">什么是Hg-Git</h2>
<p>Hg-Git是Mercurial(Hg)的扩展插件，为Hg增加了从Git服务器pull和push到Git服务器的功能。这意味着你可以从Git的服务器上pull代码然后转变成Hg版本库来进行管理，同时意味着你可以同时把你的Hg版本库push到Git服务器。</p>
<h2 class="part-title">安装Hg-Git</h2>
<h4>简单方式</h4>
<p>在你的命令行终端里运行easy_install hg-git，然后查看你的~/.hgrc文件里是否有如下几行代码</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>extensions<span style="">&#93;</span></span>
hgext.bookmarks <span style="color: #000066; font-weight:bold;">=</span>
<span style="color: #000099;">hggit</span> <span style="color: #000066; font-weight:bold;">=</span></pre></div></div>

<p>esay_install 是python 包管理工具，它的作用类似于Php中的pear，或者Ruby中的gem，或者Perl中的cpan，或者haskell 中的cabal。</p>
<h4>手动方式</h4>
<p>从Hg-Git托管在Github的代码库http://github.com/schacon/hg-git/zipball/master里下载然后放置到某个目录。当然前提是你安装了0.4.0或者更新版本的dulwich。你可以使用easy_install &#8216;dulwich>=0.4.0&#8242; 命令进行安装如果你安装了setuptools。接着打开你的~/.hgrc文件，复制并编辑如下配置</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>extensions<span style="">&#93;</span></span>
hgext.bookmarks <span style="color: #000066; font-weight:bold;">=</span>
<span style="color: #000099;">hggit</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> <span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>path-to<span style="">&#93;</span></span>/hg-git/hggit</span></pre></div></div>

<p>这样就安装好了Hg-Git扩展，这里的配置中bookmarks的配置并不是必须的，但是当在push的时候它会被转化成Git的heads。</p>
<h2 class="part-title">用法</h2>
<p>如果你想要用Hg clone一個Git版本库，只需使用hg clone [url]便可，例如</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ hg clone <span style="color: #c20cb9; font-weight: bold;">git</span>+<span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:Leeiio<span style="color: #000000; font-weight: bold;">/</span>Vim.git</pre></div></div>

<p>push的命令也很简单</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ hg push <span style="color: #c20cb9; font-weight: bold;">git</span>+<span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:Leeiio<span style="color: #000000; font-weight: bold;">/</span>Vim.git</pre></div></div>

<p>如果不想每次输入这么长的git服务器地址，你可以打开.hg/hgrc文件，编辑如下</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;"><span style="color: #000066; font-weight:bold;"><span style="">&#91;</span>paths<span style="">&#93;</span></span>
<span style="color: #000099;">default</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> https://leeiio@bitbucket.org/leeiio/vim</span>
<span style="color: #000099;">git</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> git+ssh://git@github.com:Leeiio/Leeiio.git</span></pre></div></div>

<p>这样便可以直接使用如下命令来进行push操作了</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ hg push <span style="color: #c20cb9; font-weight: bold;">git</span></pre></div></div>

<p>更多使用方法参见 <a href="http://github.com/schacon/hg-git" rel="nofollow">http://github.com/schacon/hg-git</a></p>
<h2 class="part-title">同步目前已存在的Hg版本库到Git</h2>
<p>从bitbucket服务器clone一份Hg的版本到本地做示范用，如果你本地已经存在一份需要被转换以及同步的Hg版本库就略过此步骤，只要cd要你的Hg管理的项目目录即可。</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ hg clone https:<span style="color: #000000; font-weight: bold;">//</span>leeiio<span style="color: #000000; font-weight: bold;">@</span>bitbucket.org<span style="color: #000000; font-weight: bold;">/</span>leeiio<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">vim</span> vim-test
requesting all changes
adding changesets
adding manifests
adding <span style="color: #c20cb9; font-weight: bold;">file</span> changes
added <span style="color: #000000;">23</span> changesets with <span style="color: #000000;">418</span> changes to <span style="color: #000000;">239</span> files
updating to branch default
<span style="color: #000000;">239</span> files updated, <span style="color: #000000;">0</span> files merged, <span style="color: #000000;">0</span> files removed, <span style="color: #000000;">0</span> files unresolved
$ <span style="color: #7a0874; font-weight: bold;">cd</span> vim-test<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p>创建一个bookmark，然后push到Git服务器</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ hg bookmark <span style="color: #660033;">-r</span> default master
$ hg push <span style="color: #c20cb9; font-weight: bold;">git</span>+<span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:Leeiio<span style="color: #000000; font-weight: bold;">/</span>vim-test.git
pushing to <span style="color: #c20cb9; font-weight: bold;">git</span>+<span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:Leeiio<span style="color: #000000; font-weight: bold;">/</span>vim-test.git
importing Hg objects into Git
creating and sending data
<span style="color: #c20cb9; font-weight: bold;">git</span>::refs<span style="color: #000000; font-weight: bold;">/</span>heads<span style="color: #000000; font-weight: bold;">/</span>master =<span style="color: #000000; font-weight: bold;">&gt;</span> GIT:092e7cf3</pre></div></div>

<p>如果你想从Git服务器上pull最近的更新的话也可以直接是用Hg的pull命令</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ hg pull <span style="color: #c20cb9; font-weight: bold;">git</span>+<span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:Leeiio<span style="color: #000000; font-weight: bold;">/</span>vim-test.git
pulling from <span style="color: #c20cb9; font-weight: bold;">git</span>+<span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span><span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:Leeiio<span style="color: #000000; font-weight: bold;">/</span>vim-test.git
importing Hg objects into Git
Total <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>delta <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>, reused <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span>delta <span style="color: #000000;">0</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
importing Git objects into Hg
<span style="color: #7a0874; font-weight: bold;">&#40;</span>run <span style="color: #ff0000;">'hg update'</span> to get a working copy<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></div></div>

<p>是不是超级简单且强大的一个玩意？如果你也有这样的需求，那么就下载Hg-Git试试吧！</p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/synchronizing-a-mercurial-repository-with-git/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>在Google Code上用 Mercurial 取代 Subversion 管理你的项目</title>
		<link>http://leeiio.me/googlecode-converting-svn-to-hg/</link>
		<comments>http://leeiio.me/googlecode-converting-svn-to-hg/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 08:20:39 +0000</pubDate>
		<dc:creator>Leeiio</dc:creator>
				<category><![CDATA[設計資源]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[Hg]]></category>
		<category><![CDATA[Mercurial]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://leeiio.me/?p=1903</guid>
		<description><![CDATA[之前，我一直都是用的SVN作为我日常的版本控制工具，诸如代码啊文档啊之类的东西。至于CVS这么复古的版本控制工具更是没有机会去尝试。说到SVN控制版本的话，作为托管服务商比较好的就有google code，本人也一直在使用。最近，由于一些项目的原因，了解到了另外一个版本控制工具Hg，当然Hg不是它的原名，原名叫Mercurial，都是水银的意思，所以通常称呼为Hg。 与集中式版本控制工具SVN不同的是，Hg是一种分布式版本控制工具。除了Hg，还有大名鼎鼎的Git也是分布式版本控制工具。想要更具体的了解版本控制工具的，推荐阅读胡凯《为什么我们要放弃Subversion》， 风云《分 布式的版本控制工具》，猛禽《分 布式版本控制（一）》 《分 布式版本控制（二） 》，Sparkle《我 与Mercurial 系列等几篇文章》等。只是想了解Mercurial(Hg)的话，Mercurial官方wiki已经有很详尽的资料和帮助文档了。 接下来回到本文的正题。本文的起因是Google Code在早前除了支持SVN托管代码外，更支持了分布式版本控制Mercurial(Hg)来管理你托管在Google Code上的项目。至于Google为什么在这么多种的分布式版本控制工具中选择了Mercurial而不是Git，这里有一篇文章，推荐阅读一下《Git 與 Mercurial 的分析》，原文《Analysis of Git and Mercurial》。 下面，就教大家怎么让Google Code用Mercurial替代Subversion来管理你的项目。原文 http://code.google.com/p/support/wiki/ConvertingSvnToHg。 在Google Code里设置由Mercurial来管理项目 访问你已经存在的google code项目页面，选择 “Administer” 选项页,然后选择下级分类选项页 “Source”。 改变第一项Repository type为Mercurial。 参照下文介绍的“如何转换Google Code里Subversion的历史记录到Mercurial中”，导入你的代码到 Hg 代码库中 以同样的导入代码的方式，导入你的wiki到Hg wiki库中。确认你使用的subversion代码库的wiki路径(例如 http://projectname.googlecode.com/svn/wiki) &#8230; <a href="http://leeiio.me/googlecode-converting-svn-to-hg/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://imgs.leeiio.me/blogimgs/2010/03/20100312_googlecode-converting-svn-to-hg.png" alt="在Google Code上用 Mercurial 取代 Subversion 管理你的项目" /><br />
之前，我一直都是用的SVN作为我日常的版本控制工具，诸如代码啊文档啊之类的东西。至于<a rel="nofollow" href="http://zh.wikipedia.org/zh-cn/協作版本系統">CVS</a>这么复古的版本控制工具更是没有机会去尝试。说到SVN控制版本的话，作为托管服务商比较好的就有google code，本人也一直在使用。最近，由于一些项目的原因，了解到了另外一个版本控制工具Hg，当然Hg不是它的原名，原名叫<a rel="nofollow" href="http://mercurial.selenic.com/">Mercurial</a>，都是水银的意思，所以通常称呼为Hg。<br />
<span id="more-1903"></span><br />
与集中式版本控制工具SVN不同的是，Hg是一种分布式版本控制工具。除了Hg，还有大名鼎鼎的<a rel="nofollow" href="http://git-scm.com/">Git</a>也是分布式版本控制工具。想要更具体的了解版本控制工具的，推荐阅读胡凯《<a href="http://www.infoq.com/cn/articles/thoughtworks-practice-partiv" rel="nofollow">为什么我们要放弃Subversion</a>》，<br />
风云《<a href="http://blog.codingnow.com/2008/01/distributed_version_control.html" rel="nofollow">分 布式的版本控制工具</a>》，猛禽《<a href="http://blog.csdn.net/Raptor/archive/2008/02/29/2133797.aspx" rel="nofollow">分 布式版本控制（一）</a>》 《<a href="http://blog.csdn.net/Raptor/archive/2008/03/04/2145492.aspx" rel="nofollow">分 布式版本控制（二） </a>》，Sparkle《<a href="http://weavesky.com/2008/01/25/mercurial-and-me/" rel="nofollow">我 与Mercurial 系列等几篇文章</a>》等。只是想了解Mercurial(Hg)的话，<a href="http://mercurial.selenic.com/wiki/" rel="nofollow">Mercurial官方wiki</a>已经有很详尽的资料和帮助文档了。</p>
<p>接下来回到本文的正题。本文的起因是Google Code在早前除了支持SVN托管代码外，更支持了分布式版本控制Mercurial(Hg)来管理你托管在Google Code上的项目。至于Google为什么在这么多种的分布式版本控制工具中选择了Mercurial而不是Git，这里有一篇文章，推荐阅读一下<a rel="nofollow" href="http://blog.twpug.org/416" rel="nofollow">《Git 與 Mercurial 的分析》</a>，原文<a href="http://code.google.com/p/support/wiki/DVCSAnalysis" rel="nofollow">《Analysis of Git and Mercurial》</a>。</p>
<p><strong>下面，就教大家怎么让Google Code用Mercurial替代Subversion来管理你的项目。</strong>原文 http://code.google.com/p/support/wiki/ConvertingSvnToHg。</p>
<h2 class="part-title">在Google Code里设置由Mercurial来管理项目</h2>
<ol>
<li>访问你已经存在的google code项目页面，选择 “Administer” 选项页,然后选择下级分类选项页 “Source”。 </li>
<li>改变第一项Repository type为Mercurial。</li>
<li>参照下文介绍的“如何转换Google Code里Subversion的历史记录到Mercurial中”，导入你的代码到 Hg 代码库中 </li>
<li>以同样的导入代码的方式，导入你的wiki到Hg wiki库中。确认你使用的subversion代码库的wiki路径(例如 http://projectname.googlecode.com/svn/wiki) 以及 Hg 代码库的wiki路径(http://wiki.projectname.googlecode.com/hg/) </li>
</ol>
<p>在你切换你的项目使用Mercurial管理后，你的旧Subversion项目仍然可以访问，所以在你切换之前你不需要备份你的代码库。你的Subversion版本库将会保持访问: https://projectname.googlecode.com/svn/</p>
<h2 class="part-title">如何转换Google Code里Subversion的历史记录到Mercurial中</h2>
<p><strong>第一种方式：简要截取</strong><br />
如果你不在乎你原来项目的历史记录，那么你可以简单地从Subversion里的主干代码或者wiki中提取最新的代码然后放到你的Mercurial中。假设你googlecode里的 Mercurial代码库是空的，那么可以这样操作：</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"> $ hg clone https:<span style="color: #000000; font-weight: bold;">//</span>projectname.googlecode.com<span style="color: #000000; font-weight: bold;">/</span>hg hg-client
 $ <span style="color: #7a0874; font-weight: bold;">cd</span> hg-client
 $ <span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #660033;">--force</span> http:<span style="color: #000000; font-weight: bold;">//</span>projectname.googlecode.com<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>trunk .
 $ hg add .
 $ hg commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Initial import of source.&quot;</span>
 $ hg push</pre></div></div>

<p>接着转换你的wiki：</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"> $ hg clone https:<span style="color: #000000; font-weight: bold;">//</span>wiki.projectname.googlecode.com<span style="color: #000000; font-weight: bold;">/</span>hg hg-client-wiki
 $ <span style="color: #7a0874; font-weight: bold;">cd</span> hg-client-wiki
 $ <span style="color: #c20cb9; font-weight: bold;">svn</span> <span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #660033;">--force</span> http:<span style="color: #000000; font-weight: bold;">//</span>projectname.googlecode.com<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>wiki .
 $ hg add .
 $ hg commit <span style="color: #660033;">-m</span> <span style="color: #ff0000;">&quot;Initial import of wiki.&quot;</span>
 $ hg push</pre></div></div>

<p><strong>第二种方式：完整历史记录转换</strong><br />
如果你要迁移你整个的历史记录，整个过程可能要你更多的参与了。你将会需要先安装一些特殊的工具程序。<br />
<strong>安装工具</strong></p>
<ul>
<li>&#8216;hg convert&#8217;扩展模块。最新版本的Mercurial已经包含这个模块，请确保你的hg版本为1.1 或者 1.2 或者更高版本。 (可用&#8221;hg &#8211;version&#8221;命令查看) 然后在你的.hgrc里面添加如下代码启用该扩展模块:

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #009900;">&#91;</span>extensions<span style="color: #009900;">&#93;</span>
hgext.<span style="color: #202020;">convert</span><span style="color: #339933;">=</span></pre></div></div>

</li>
<li>Subversion的swig-python绑定。请确保您有最近的Subversion安装（1.5或1.6）。绝大部分的Subversion衍生版本都有与python的绑定，或者提供他们额外的二进制包。你可以运行如下代码检查你的svn &#8211; python的绑定是否正常：

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ python <span style="color: #660033;">-c</span> <span style="color: #ff0000;">&quot;import svn.core; print svn.core.SVN_VER_MINOR&quot;</span>
        <span style="color: #000000;">5</span></pre></div></div>

<p>如果失败，或返回的版本低于5，则肯定是不对的。如果你没有二进制软件包，你可以从Subversion自己的源代码树中建立：</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">svn</span> checkout http:<span style="color: #000000; font-weight: bold;">//</span>svn.collab.net<span style="color: #000000; font-weight: bold;">/</span>repos<span style="color: #000000; font-weight: bold;">/</span>svn<span style="color: #000000; font-weight: bold;">/</span>tags<span style="color: #000000; font-weight: bold;">/</span>1.6.0 <span style="color: #c20cb9; font-weight: bold;">svn</span>
$ <span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #c20cb9; font-weight: bold;">svn</span>
$ .<span style="color: #000000; font-weight: bold;">/</span>autogen.sh <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> .<span style="color: #000000; font-weight: bold;">/</span>configure
$ <span style="color: #c20cb9; font-weight: bold;">make</span>
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> <span style="color: #c20cb9; font-weight: bold;">install</span>
$ <span style="color: #c20cb9; font-weight: bold;">make</span> swig-py  <span style="color: #666666; font-style: italic;"># make sure you have swig 1.3 installed already</span>
$ <span style="color: #c20cb9; font-weight: bold;">make</span> check-swig-py
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">make</span> install-swig-py</pre></div></div>

<p>如果你在Ubuntu的Hardy版本，你可以在hardy-backports里找到1.5版的python-subversion: <a href="http://packages.ubuntu.com/hardy-backports/python-subversion" rel="nofollow">http://packages.ubuntu.com/hardy-backports/python-subversion</a><br />
这可能还需要安装backports里的libsvn1, subversion, mercurial-common, 和mercurial 包。
        </li>
</ul>
<p><strong>开始转换</strong><br />
现在我们开始转换&#8211; branches(分支), tags(标签)以及其他全部:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">mkdir</span> hg-client
$ hg convert http:<span style="color: #000000; font-weight: bold;">//</span>projectname.googlecode.com<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svn</span> hg-client</pre></div></div>

<p>一旦完成转换，你就可以push你最新的历史记录到你的Google Code项目中(前提是你有了一个空的Mercurial版本库):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> hg-client
$ hg push https:<span style="color: #000000; font-weight: bold;">//</span>projectname.googlecode.com<span style="color: #000000; font-weight: bold;">/</span>hg</pre></div></div>

<p>至此，大功告成。</p>
]]></content:encoded>
			<wfw:commentRss>http://leeiio.me/googlecode-converting-svn-to-hg/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>

