<?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>走走停停看看 &#187; 版本控制</title>
	<atom:link href="http://shawphy.com/category/%e7%89%88%e6%9c%ac%e6%8e%a7%e5%88%b6/feed" rel="self" type="application/rss+xml" />
	<link>http://shawphy.com</link>
	<description>关注HTML,CSS,JavaScript,jQuery等前端开发</description>
	<lastBuildDate>Thu, 09 Sep 2010 15:47:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>bitbucket和github的简单比较</title>
		<link>http://shawphy.com/2010/08/bitbucket-vs-github.html</link>
		<comments>http://shawphy.com/2010/08/bitbucket-vs-github.html#comments</comments>
		<pubDate>Fri, 27 Aug 2010 17:05:30 +0000</pubDate>
		<dc:creator>Shawphy</dc:creator>
				<category><![CDATA[版本控制]]></category>

		<guid isPermaLink="false">http://shawphy.com/?p=205</guid>
		<description><![CDATA[我本身比较偏爱Python，以及用Python所写的分布式版本控制工具 Hg 曾经的Git让我倍感挫折。 好在现如今已经有了 TortoiseHg 和 TortoiseGit 对于那些熟悉乌龟 svn 的人来说是个福音。 先前由于比较熟悉hg，所以一直用 Hg 界内流行的代码托管网站 bitbucket.org 最近又重新体验了一把(去年体验过，倍感受挫) Git 界流行的 github.com，感觉很是舒爽。 于是简单的对比了两个网站。 这两个网站有很重要的特点，是社区化。 你可以follow你所关注的人和项目。这点让人觉得很有趣。 虽然 Google Code 也已经支持 Hg 代码托管，然而显得严谨了， 所以我没使用过hg版，只用过svn，故不参与比较。 bitbucket 和 github 的比较 bitbucket.org github.com 免费仓库个数 无限 HTTPS推送 √ 便捷 我从没有成功过 &#8230; <a href="http://shawphy.com/2010/08/bitbucket-vs-github.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>我本身比较偏爱Python，以及用Python所写的分布式版本控制工具 Hg<br />
曾经的Git让我倍感挫折。<br />
好在现如今已经有了 <a href="http://tortoisehg.bitbucket.org/">TortoiseHg</a> 和 <a href="http://code.google.com/p/tortoisegit/">TortoiseGit</a><br />
对于那些熟悉乌龟 svn 的人来说是个福音。</p>
<p>先前由于比较熟悉hg，所以一直用 Hg 界内流行的代码托管网站 <a href="http://bitbucket.org/">bitbucket.org</a><br />
最近又重新体验了一把(去年体验过，倍感受挫) Git 界流行的 <a href="http://github.com/">github.com</a>，感觉很是舒爽。<br />
于是简单的对比了两个网站。<br />
这两个网站有很重要的特点，是社区化。<br />
你可以follow你所关注的人和项目。这点让人觉得很有趣。<br />
虽然 Google Code 也已经支持 Hg 代码托管，然而显得严谨了，<br />
所以我没使用过hg版，只用过svn，故不参与比较。</p>
<table>
<caption>bitbucket 和 github 的比较</caption>
<thead>
<tr>
<td></td>
<td>bitbucket.org</td>
<td>github.com</td>
</tr>
</thead>
<tbody>
<tr>
<th>免费仓库个数</th>
<td style="text-align:center;" colspan="2">无限</td>
</tr>
<tr>
<th>HTTPS推送</th>
<td>√ 便捷</td>
<td>我从没有成功过 *</td>
</tr>
<tr>
<th>免费套餐容量</th>
<td>√ 1GB</td>
<td>0.3GB</td>
</tr>
<tr>
<th>私有仓库</th>
<td>√ 免费1个</td>
<td>没有</td>
</tr>
<tr>
<th>最便宜套餐</th>
<td>√ $5/month</td>
<td>$7/month</td>
</tr>
<tr>
<th>二级域名个人主页 **</th>
<td>√ 即时完成</td>
<td>等待10分钟</td>
</tr>
<tr>
<th>域名长度</th>
<td>较长</td>
<td>√ 较短</td>
</tr>
<tr>
<th>域名记忆难度</th>
<td>较困难</td>
<td>√ 较简单</td>
</tr>
<tr>
<th>代码片段工具</th>
<td>无</td>
<td>√ <a href="http://gist.github.com/">Gist</a></td>
</tr>
<tr>
<th>界面语言</th>
<td>只有英语</td>
<td>√ 有简体中文</td>
</tr>
<tr>
<th>界面美观度 ***</th>
<td>一般</td>
<td>√ 美观</td>
</tr>
<tr>
<th>中文社区活跃度</th>
<td style="text-align:center;" colspan="2">未知</td>
</tr>
</tbody>
</table>
<p>* github貌似是支持https推送的，但我总是失败，只能导入key后通过ssh提交。<br />
** 你只需要在各自的仓库中建立一个名为 username.bitbucket.org 或 username.github.com 的代码仓库即可<br />
*** 美观度什么的个人观点，请勿拍砖</p>
<p>两个网站真是平分秋色，各有各的好。<br />
bitbucket 的硬实力更棒，而 github 的软实力更强。<br />
具体用哪个呢，自己分析下自己的需求吧。</p>
<p>欢迎留言，好更新或完善一些比较的条目。</p>
]]></content:encoded>
			<wfw:commentRss>http://shawphy.com/2010/08/bitbucket-vs-github.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>让服务器自动从Hg版本库中下载代码</title>
		<link>http://shawphy.com/2010/02/update-code-from-hg-repository-in-web-host.html</link>
		<comments>http://shawphy.com/2010/02/update-code-from-hg-repository-in-web-host.html#comments</comments>
		<pubDate>Fri, 12 Feb 2010 18:58:19 +0000</pubDate>
		<dc:creator>Shawphy</dc:creator>
				<category><![CDATA[版本控制]]></category>

		<guid isPermaLink="false">http://shawphy.com/?p=180</guid>
		<description><![CDATA[每次写完代码，提交到版本库，测试可以执行不会冲突，推到远端代码仓库。之后要发布的话，还要通过FTP上传到服务器上，FTP速度又不很理想，严重影响工作效率。 有没有解决之道？有！ 直接让服务器从代码仓库中下载代码不就行了么？代码仓库中已经包含最新代码了，让服务器从代码仓库的服务器远程下载代码，方便快捷全自动！ 而且，现在用的是hg，而不是svn。svn有个问题，提交的代码可能是未完成的半成品导致程序无法执行。而hg的好处是半成品可以提交在本地，阶段性成果完成后再往远端代码仓库中提交。 下面就以使用BitBucket为例，其他服务大同小异。 编译 hg 首先需要在服务器端编译一份 hg ,编译起来还是很方便的，直接从官网下载一份源码，解压缩后make &#38;&#38; make install 一下就行了。他源码包里的README里就这么写的。 Mercurial/Hg 下载地址 第一次clone 第一次使用需要先clone一份代码仓库到本地，以后就可以简单的使用pull命令获取更新了。 所以第一次使用需要 hg clone &#60;你的仓库地址&#62; 仓库地址可以在 BitBucket里的项目里找到。 编写 PHP 然后在服务器端写一个文件up.php，放在需要更新的目录下面， 如下代码： passthru(&#34;/&#60; hg命令行工具的绝对地址&#62;/hg pull -u https://&#60;你的用户名&#62;:&#60;你的密码&#62;@&#60;你的代码仓库地址&#62;&#34;); 以我的空间为例，就是： passthru(&#34;/home/shawphy/bin/hg pull -u https://shawphy:******@bitbucket.org/shawphy/test/&#34;); 其中最关键的一步是要把密码也写在URL里，否则的话就得用popen()函数来处理密码交互了，比较麻烦。 这样，只要访问这个php文件，就能更新这个网站了。 &#8230; <a href="http://shawphy.com/2010/02/update-code-from-hg-repository-in-web-host.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>每次写完代码，提交到版本库，测试可以执行不会冲突，推到远端代码仓库。之后要发布的话，还要通过FTP上传到服务器上，FTP速度又不很理想，严重影响工作效率。</p>
<p>有没有解决之道？有！</p>
<p>直接让服务器从代码仓库中下载代码不就行了么？代码仓库中已经包含最新代码了，让服务器从代码仓库的服务器远程下载代码，方便快捷全自动！</p>
<p>而且，现在用的是hg，而不是svn。svn有个问题，提交的代码可能是未完成的半成品导致程序无法执行。而hg的好处是半成品可以提交在本地，阶段性成果完成后再往远端代码仓库中提交。</p>
<p>下面就以使用<a href="http://bitbucket.org/">BitBucket</a>为例，其他服务大同小异。</p>
<h3>编译 hg</h3>
<p>首先需要在服务器端编译一份 hg ,编译起来还是很方便的，直接从官网下载一份源码，解压缩后make &amp;&amp; make install 一下就行了。他源码包里的README里就这么写的。</p>
<p><a href="http://mercurial.selenic.com/downloads/">Mercurial/Hg 下载地址</a></p>
<h3>第一次clone</h3>
<p>第一次使用需要先clone一份代码仓库到本地，以后就可以简单的使用pull命令获取更新了。<br />
所以第一次使用需要 hg clone &lt;你的仓库地址&gt;<br />
仓库地址可以在 BitBucket里的项目里找到。</p>
<h3>编写 PHP</h3>
<p>然后在服务器端写一个文件up.php，放在需要更新的目录下面， 如下代码：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">passthru(&quot;/&lt; hg命令行工具的绝对地址&gt;/hg pull -u https://&lt;你的用户名&gt;:&lt;你的密码&gt;@&lt;你的代码仓库地址&gt;&quot;);</li></ol></div>
<p>以我的空间为例，就是：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">passthru(&quot;/home/shawphy/bin/hg pull -u https://shawphy:******@bitbucket.org/shawphy/test/&quot;);</li></ol></div>
<p>其中最关键的一步是要把密码也写在URL里，否则的话就得用popen()函数来处理密码交互了，比较麻烦。</p>
<p>这样，只要访问这个php文件，就能更新这个网站了。</p>
<h3>配置Hook</h3>
<p>然后，只需要在 BitBucket 项目管理中，Admin标签里，右边Additional options/settings面板下找到Services，点进去。然后添加一个POST服务，URL地址就填写你那个PHP文件的地址就可以了。</p>
<p>这样就能实现往代码仓库中提交代码后，网站服务器自动下载并更新代码了。</p>
<h3>其他</h3>
<p>如果要自己搭建的服务器上配置的话，参考 <a href="http://mercurial.selenic.com/wiki/Hook">Hg 官方Wiki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://shawphy.com/2010/02/update-code-from-hg-repository-in-web-host.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
