<?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>J. S. Liang&#039;s Blog</title>
	<atom:link href="http://jsliang.twgogo.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://jsliang.twgogo.org</link>
	<description></description>
	<lastBuildDate>Tue, 27 Mar 2012 02:38:33 +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>[Ubuntu] 使用Mercurial套件Hg-Git將Git repository轉成Hg repository</title>
		<link>http://jsliang.twgogo.org/2012/03/23/hg-git/</link>
		<comments>http://jsliang.twgogo.org/2012/03/23/hg-git/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 07:53:37 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Mercurial Hg]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3446</guid>
		<description><![CDATA[我最開始是用Git管理程式碼，一直到後來修課以及做碩論研究時才開始用Hg，現在Hg用得也算習慣了。 在Windows環境下，我會指令和GUI搭配使用。 現有的GUI套件我覺得TortoiseGit和TortoiseHg都很好操作。 一直到最近比較常在Ubuntu上工作，發現TortoiseGit對Ubuntu支援不好，但我也不太想另外學習一套Git GUI工具，索性來把一些常在用的Git repository轉成Hg repository。 於是找到了Hg-Git這個Mercurial套件來進行轉換工作，以下筆記安裝步驟和使用方法。 安裝 為了方便我選用easy_install安裝。 首先要安裝easy_install。 安裝前需確認一下現在機器上的Python版本。執行以下指令： python --version 便可得知我的機器上的Python版本是2.7。 接著到Python的setuptools套件網頁找到對應的egg檔，下載並執行： wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea sudo sh setuptools-0.6c11-py2.7.egg rm setuptools-0.6c11-py2.7.egg 如此便安裝完easy_install了。 此外，安裝Hg-Git需要C編譯器以及Python.h： sudo apt-get install gcc python-dev 前面步驟都完成後，便可用easy_install安裝Hg-Git： sudo easy_install hg-git 安裝後，在~/.hgrc的extension區塊加上以下兩行： [extensions] hgext.bookmarks = hggit = &#8230; <a href="http://jsliang.twgogo.org/2012/03/23/hg-git/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>我最開始是用Git管理程式碼，一直到後來修課以及做碩論研究時才開始用Hg，現在Hg用得也算習慣了。</p>
<p>在Windows環境下，我會指令和GUI搭配使用。<br />
現有的GUI套件我覺得TortoiseGit和TortoiseHg都很好操作。<br />
一直到最近比較常在Ubuntu上工作，發現TortoiseGit對Ubuntu支援不好，但我也不太想另外學習一套Git GUI工具，索性來把一些常在用的Git repository轉成Hg repository。</p>
<p>於是找到了<a href="http://hg-git.github.com/" target="_blank">Hg-Git</a>這個Mercurial套件來進行轉換工作，以下筆記安裝步驟和使用方法。</p>
<p><span id="more-3446"></span></p>
<h1>安裝</h1>
<p>為了方便我選用easy_install安裝。</p>
<p>首先要安裝easy_install。<br />
安裝前需確認一下現在機器上的Python版本。執行以下指令：</p>
<pre class="brush:shell">python --version</pre>
<p>便可得知我的機器上的Python版本是2.7。<br />
接著到Python的<a href="http://pypi.python.org/pypi/setuptools" target="_blank">setuptools</a>套件網頁找到對應的egg檔，下載並執行：</p>
<pre>wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea
sudo sh setuptools-0.6c11-py2.7.egg
rm setuptools-0.6c11-py2.7.egg</pre>
<p>如此便安裝完easy_install了。</p>
<p>此外，安裝Hg-Git需要C編譯器以及Python.h：</p>
<pre class="brush:shell">sudo apt-get install gcc python-dev</pre>
<p>前面步驟都完成後，便可用easy_install安裝Hg-Git：</p>
<pre class="brush:shell">sudo easy_install hg-git</pre>
<p>安裝後，在~/.hgrc的extension區塊加上以下兩行：</p>
<pre class="brush:plain">[extensions]
hgext.bookmarks =
hggit =</pre>
<p>到此Hg-Git即安裝設定完成。</p>
<h1>使用</h1>
<p>我個人目前都把repository放在<a href="https://bitbucket.org/" target="_blank">bitbucket</a>上。<br />
因為bitbucket同時支援Git和Hg，並且可以有private repository，非常方便。</p>
<p>之前我是用Git管理我的碩論，現在我想改成用Hg操作。<br />
根據Hg-Git的教學，想要用Hg複製Git repository，只要執行</p>
<pre class="brush:shell">hg clone &lt;source: git repository&gt;</pre>
<p>即可。於是我照做了：</p>
<pre class="brush:shell">hg clone https://jsliang@bitbucket.org/jsliang/jenny_paper.git</pre>
<p>結果得到這個訊息：</p>
<pre>abort: HTTP Error 404: NOT FOUND</pre>
<p>推測是因為指令中Git repository的來源不是透過git通訊協定，所以造成這個錯誤。<br />
所以目前我想到的比較蠢的做法，是先用Git複製到本地端，再用Hg複製：</p>
<pre class="brush:shell">git clone https://jsliang@bitbucket.org/jsliang/jenny_paper.git jenny_paper_git
hg clone jenny_paper_git jenny_paper_hg</pre>
<p>如果有更漂亮的做法也煩請指教，感謝～:D</p>
<p>使用Hg-Git還可以從Hg repository對Git repository進行push/pull，其他妙用請參考<a href="http://hg-git.github.com/" target="_blank">Hg-Git官方網頁</a>。</p>
<h1>資料來源</h1>
<p><a href="http://hg-git.github.com/" target="_blank">the Hg-Git mercurial plugin</a></p>
<p>Related posts:</p><ol>
<li><a href='http://jsliang.twgogo.org/2012/02/03/installing-mercurial-and-tortoisehg-on-ubuntu-10-04/' rel='bookmark' title='在Ubuntu 10.04上安裝Mercurial及TortoiseHg (GUI)'>在Ubuntu 10.04上安裝Mercurial及TortoiseHg (GUI)</a></li>
<li><a href='http://jsliang.twgogo.org/2010/12/03/ubuntu-adding-an-administrator-sudoer-user/' rel='bookmark' title='[Ubuntu] Adding an administrator &amp; sudoer user'>[Ubuntu] Adding an administrator &amp; sudoer user</a></li>
<li><a href='http://jsliang.twgogo.org/2011/04/18/sheetaholics-v1-1/' rel='bookmark' title='Sheetaholics 筆記內頁產生器 V1.1'>Sheetaholics 筆記內頁產生器 V1.1</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/03/23/hg-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu 11.04在系統列顯示gcin圖示</title>
		<link>http://jsliang.twgogo.org/2012/03/23/ubuntu-11-04-systray-gcin-ico/</link>
		<comments>http://jsliang.twgogo.org/2012/03/23/ubuntu-11-04-systray-gcin-ico/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 05:23:54 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3439</guid>
		<description><![CDATA[昨晚很lag地將我的Ubuntu從10.10升級到11.04了。果然就像xatier說的，介面配置改好多，一時不太習慣。 尤其gcin的圖示以往會出現在右上角的系統列，現在沒有了，變得難以判斷目前是在哪個輸入法。在有中文輸入需求的情況下很困擾。 筆記一下找到的解法。 首先執行： gsettings get com.canonical.Unity.Panel systray-whitelist 可看到目前的systray-whitelist，預設大概會是長這樣： ['JavaEmbeddedFrame', 'Wine', 'Skype'] 重設這個whitelist，加上gcin： gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'gcin']" 以上執行完成後，重新登入即可看到gcin的圖示出現在右上角的系統列了。 Related posts: [Ubuntu] Adding an administrator &#38; sudoer user]]></description>
			<content:encoded><![CDATA[<p>昨晚很lag地將我的Ubuntu從10.10升級到11.04了。果然就像xatier說的，介面配置改好多，一時不太習慣。<br />
尤其gcin的圖示以往會出現在右上角的系統列，現在沒有了，變得難以判斷目前是在哪個輸入法。在有中文輸入需求的情況下很困擾。</p>
<p>筆記一下找到的解法。</p>
<p>首先執行：</p>
<pre class="brush:shell">gsettings get com.canonical.Unity.Panel systray-whitelist</pre>
<p>可看到目前的systray-whitelist，預設大概會是長這樣：</p>
<pre>['JavaEmbeddedFrame', 'Wine', 'Skype']</pre>
<p>重設這個whitelist，加上gcin：</p>
<pre class="brush:shell">gsettings set com.canonical.Unity.Panel systray-whitelist "['JavaEmbeddedFrame', 'Wine', 'Skype', 'gcin']"</pre>
<p>以上執行完成後，重新登入即可看到gcin的圖示出現在右上角的系統列了。</p>
<p>Related posts:</p><ol>
<li><a href='http://jsliang.twgogo.org/2010/12/03/ubuntu-adding-an-administrator-sudoer-user/' rel='bookmark' title='[Ubuntu] Adding an administrator &amp; sudoer user'>[Ubuntu] Adding an administrator &amp; sudoer user</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/03/23/ubuntu-11-04-systray-gcin-ico/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>以後會懷念的生活</title>
		<link>http://jsliang.twgogo.org/2012/03/23/%e4%bb%a5%e5%be%8c%e6%9c%83%e6%87%b7%e5%bf%b5%e7%9a%84%e7%94%9f%e6%b4%bb/</link>
		<comments>http://jsliang.twgogo.org/2012/03/23/%e4%bb%a5%e5%be%8c%e6%9c%83%e6%87%b7%e5%bf%b5%e7%9a%84%e7%94%9f%e6%b4%bb/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 16:27:10 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[心情]]></category>
		<category><![CDATA[NCTU]]></category>
		<category><![CDATA[NTHU]]></category>
		<category><![CDATA[Olympus]]></category>
		<category><![CDATA[Olympus XZ-1]]></category>
		<category><![CDATA[XZ-1]]></category>
		<category><![CDATA[新竹]]></category>
		<category><![CDATA[照片]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3415</guid>
		<description><![CDATA[午後坐在咖啡廳的窗邊，斜射的陽光透過輕薄的窗簾灑在手中的書頁上，另一隻手拿起香醇的咖啡啜飲……的這種浪漫畫面幾乎沒出現在我的學校生活裡。 要舉出最貼近上面所描述的場景，那就是在這裡了： 雖然大一就知道清大有水木漫畫屋，不過真正想到可以來這裡放鬆是認識阿達之後的事。:P 這個學期，每經過一回殺死一堆腦細胞的論文寫作奮戰後，我總會到清大的水木漫畫屋充電。 最近尤其愛挑靠近櫃台的面牆單人座，點一杯飲料和一片披薩，抽一集《侍酒師》窩在沙發裡看。 雖然《侍酒師》嚴格說來是由各種老梗的熱血、友情、親情、愛情單元劇所組成，有不少朋友嫌劇情略顯平淡，但裡面各個短篇非常適合現在的我。 葡萄酒從葡萄的種植、採收到釀造的過程中充滿各種變數，相較之下我寫的論文難度真的低很多，實在沒資格每天在那邊焦慮。 （說是這麼說，看完漫畫回到實驗室，我還是無法不瞪著Texmaker的畫面發牢騷……Orz） 看完漫畫後，偶爾會再往下走到清夜的有茶氏買飲料。 然後再穿過清大走回交大繼續奮鬥……:P 正值論文難產期，總是哀聲嘆氣，希望能拿到電影The Click裡的遙控器，直接快轉到論文寫完的那一天。 但是近來走在校園，我漸漸感覺到，以後我一定會懷念這樣的日子的。 不是單純的漫畫屋、飲料店的問題，而是學生時代的生活方式。 嚷著想要快點寫完論文、快點畢業、快點去工作賺錢的同時，卻又很矛盾地對交大和清大的校園以及附近的清夜感到不捨。 台北的朋友多半覺得清交處在一個什麼都沒有的鬼地方，疑惑我為什麼在這裡待了四年後又選擇繼續留兩年？ 我也說不出理由，只知道我不覺得清交週邊很無聊、我就是喜歡這個環境。 雖然總是在哀嚎論文還沒寫完很焦慮，但我知道自己現在的生活是很快樂的。 要好好活在當下，享受最後這幾個月啊～:-) Related posts: 沒有同理心的安慰不如不說]]></description>
			<content:encoded><![CDATA[<p>午後坐在咖啡廳的窗邊，斜射的陽光透過輕薄的窗簾灑在手中的書頁上，另一隻手拿起香醇的咖啡啜飲……的這種浪漫畫面幾乎沒出現在我的學校生活裡。</p>
<p>要舉出最貼近上面所描述的場景，那就是在這裡了：<br />
<img class="alignnone" src="https://lh5.googleusercontent.com/-uUX6MmCUNYQ/T2tPgi6PQqI/AAAAAAAB5n0/oMrn_a97ry0/s500/P3228668.JPG" alt="" width="500" height="310" /></p>
<p><span id="more-3415"></span></p>
<p>雖然大一就知道清大有水木漫畫屋，不過真正想到可以來這裡放鬆是認識阿達之後的事。:P<br />
這個學期，每經過一回殺死一堆腦細胞的論文寫作奮戰後，我總會到清大的水木漫畫屋充電。<br />
<img class="alignnone" src="https://lh3.googleusercontent.com/-sKBtNCDrUk8/T0RnncZ9iJI/AAAAAAAB3oM/b4x0D51skU8/s500/P2178564.JPG" alt="" width="500" height="333" /><br />
最近尤其愛挑靠近櫃台的面牆單人座，點一杯飲料和一片披薩，抽一集《侍酒師》窩在沙發裡看。<br />
雖然《侍酒師》嚴格說來是由各種老梗的熱血、友情、親情、愛情單元劇所組成，有不少朋友嫌劇情略顯平淡，但裡面各個短篇非常適合現在的我。<br />
葡萄酒從葡萄的種植、採收到釀造的過程中充滿各種變數，相較之下我寫的論文難度真的低很多，實在沒資格每天在那邊焦慮。<br />
（說是這麼說，看完漫畫回到實驗室，我還是無法不瞪著Texmaker的畫面發牢騷……Orz）</p>
<p>看完漫畫後，偶爾會再往下走到清夜的有茶氏買飲料。<br />
<img class="alignnone" src="https://lh5.googleusercontent.com/-isLrs4bYic0/T2tPjb_YzHI/AAAAAAAB5m4/xuYddpr80bA/s500/P3228676.JPG" alt="" width="500" height="375" /><br />
然後再穿過清大走回交大繼續奮鬥……:P</p>
<p>正值論文難產期，總是哀聲嘆氣，希望能拿到電影The Click裡的遙控器，直接快轉到論文寫完的那一天。<br />
但是近來走在校園，我漸漸感覺到，以後我一定會懷念這樣的日子的。<br />
不是單純的漫畫屋、飲料店的問題，而是學生時代的生活方式。</p>
<p><img class="alignnone" src="https://lh6.googleusercontent.com/-byPqy0mU3jg/T2tPiYkRt1I/AAAAAAAB5ng/hEH2nog2qv0/s500/P3228675.JPG" alt="" width="500" height="309" /></p>
<p>嚷著想要快點寫完論文、快點畢業、快點去工作賺錢的同時，卻又很矛盾地對交大和清大的校園以及附近的清夜感到不捨。<br />
台北的朋友多半覺得清交處在一個什麼都沒有的鬼地方，疑惑我為什麼在這裡待了四年後又選擇繼續留兩年？<br />
我也說不出理由，只知道我不覺得清交週邊很無聊、我就是喜歡這個環境。</p>
<p>雖然總是在哀嚎論文還沒寫完很焦慮，但我知道自己現在的生活是很快樂的。<br />
要好好活在當下，享受最後這幾個月啊～:-)</p>
<p>Related posts:</p><ol>
<li><a href='http://jsliang.twgogo.org/2012/03/20/%e6%b2%92%e6%9c%89%e5%90%8c%e7%90%86%e5%bf%83%e7%9a%84%e5%ae%89%e6%85%b0%e4%b8%8d%e5%a6%82%e4%b8%8d%e8%aa%aa/' rel='bookmark' title='沒有同理心的安慰不如不說'>沒有同理心的安慰不如不說</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/03/23/%e4%bb%a5%e5%be%8c%e6%9c%83%e6%87%b7%e5%bf%b5%e7%9a%84%e7%94%9f%e6%b4%bb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>沒有同理心的安慰不如不說</title>
		<link>http://jsliang.twgogo.org/2012/03/20/%e6%b2%92%e6%9c%89%e5%90%8c%e7%90%86%e5%bf%83%e7%9a%84%e5%ae%89%e6%85%b0%e4%b8%8d%e5%a6%82%e4%b8%8d%e8%aa%aa/</link>
		<comments>http://jsliang.twgogo.org/2012/03/20/%e6%b2%92%e6%9c%89%e5%90%8c%e7%90%86%e5%bf%83%e7%9a%84%e5%ae%89%e6%85%b0%e4%b8%8d%e5%a6%82%e4%b8%8d%e8%aa%aa/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 16:22:31 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[心情]]></category>
		<category><![CDATA[NCTU]]></category>
		<category><![CDATA[Olympus]]></category>
		<category><![CDATA[Olympus XZ-1]]></category>
		<category><![CDATA[XZ-1]]></category>
		<category><![CDATA[新竹]]></category>
		<category><![CDATA[照片]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3392</guid>
		<description><![CDATA[很多時候，雖然心裡知道對方是好意，卻仍覺得某些建議或是安慰的話語，最好對方一開始就不要說出口。 若無法說到心坎，聽起來反而像是在激怒人的風涼話。 很想大喊「不想聽」、「不好笑」，但因為知道對方沒有惡意，只能硬忍在心裡不講出來。 轉念一想，真的要趁我現在年輕時多嘗試、多犯錯、多摔倒、多接受挫折，並且多記下這些不如意時的心痛。 這樣未來遇到親朋好友低潮時，比較知道如何去同理對方的心情，也比較知道該怎樣講話不會讓對方覺得是在傷口上灑鹽。 色溫轉冷的傍晚，在交大女二舍的中庭看到盞燈。 看著黃色的燈光把木板地都照暖了，覺得好溫馨。 期許我在經歷挫折後不要輕易洩氣，而是鍛練成能像這盞燈一樣帶給其他人溫暖的人。 No related posts.]]></description>
			<content:encoded><![CDATA[<p>很多時候，雖然心裡知道對方是好意，卻仍覺得某些建議或是安慰的話語，最好對方一開始就不要說出口。<br />
若無法說到心坎，聽起來反而像是在激怒人的風涼話。<br />
很想大喊「不想聽」、「不好笑」，但因為知道對方沒有惡意，只能硬忍在心裡不講出來。</p>
<p>轉念一想，真的要趁我現在年輕時多嘗試、多犯錯、多摔倒、多接受挫折，並且多記下這些不如意時的心痛。<br />
這樣未來遇到親朋好友低潮時，比較知道如何去同理對方的心情，也比較知道該怎樣講話不會讓對方覺得是在傷口上灑鹽。</p>
<p><img class="alignnone" src="https://lh5.googleusercontent.com/-81em18qZ088/T2dNvDOdNEI/AAAAAAAB5QQ/eOi6PkjvKCk/s500/P3198666.JPG" alt="" width="500" height="375" /><br />
色溫轉冷的傍晚，在交大女二舍的中庭看到盞燈。<br />
看著黃色的燈光把木板地都照暖了，覺得好溫馨。<br />
期許我在經歷挫折後不要輕易洩氣，而是鍛練成能像這盞燈一樣帶給其他人溫暖的人。</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/03/20/%e6%b2%92%e6%9c%89%e5%90%8c%e7%90%86%e5%bf%83%e7%9a%84%e5%ae%89%e6%85%b0%e4%b8%8d%e5%a6%82%e4%b8%8d%e8%aa%aa/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>愛上土風舞</title>
		<link>http://jsliang.twgogo.org/2012/03/13/fell-in-love-with-folkdance/</link>
		<comments>http://jsliang.twgogo.org/2012/03/13/fell-in-love-with-folkdance/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 17:02:23 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[土風舞]]></category>
		<category><![CDATA[心情]]></category>
		<category><![CDATA[Canon]]></category>
		<category><![CDATA[Canon EOS 500D]]></category>
		<category><![CDATA[EOS 500D]]></category>
		<category><![CDATA[NCTU]]></category>
		<category><![CDATA[照片]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3335</guid>
		<description><![CDATA[或許是因為最後一年當學生了吧，最近突然能夠理解「去社團放鬆」是怎樣的樂趣了。 交大虹韻世界民族舞蹈社常態社課（攝於2010年10月5日） 不知道對於有天份的人而言，跳舞是怎麼回事？ 對我而言是個非常需要腦力與記憶力的活動。 要記住全身上下每個部位在每一拍甚至是半拍時，該呈現什麼樣的姿勢，同時確實控制全身的肌肉去做到，真的好難好難啊。 雖然從大二開始參加舞蹈社團，但我一直覺得很難真正從舞蹈中獲得樂趣，只是靠一種美好的嚮往支撐著。 我參加的舞蹈課程多半是花好幾週的時間學一支舞，學完一支舞課程也差不多結束了。 在這種狀況下，幾乎每次上課都在學新舞序，重點總是放在「如何把下個動作做好」、「有沒有做到位」。 但我很少能夠真的把情緒融入，久而久變得是為了能上場表演而練習，並不是真的打從心底有共鳴。 這樣以教一支舞為主軸的課程還有另個壞處：結束後之後除了上台表演外，基本上想不太到什麼場合可以拿出來跳了。這點數度令我感到挫折。 因為沒什麼舞蹈細胞，我不太可能像舞蹈電影裡的主角們，能夠音樂一下便即興舞蹈起來。沒有事先編好舞碼，我就完全沒概念下一步該怎麼辦。 第一個讓我覺得跳舞很開心的環境就是在土風舞圈了。 成千上萬支舞，各種難度都有，新人也有其生存空間。 學會了一支舞，以後有無數次的機會可以在全台各地的世舞社社課以及聯歡跳到。 完全解決了我「不會編舞」以及「學會以後很難找到機會跳」的疑慮。 一直到最近，我更發現自己在土風舞社團社課時，終於可以擺脫「我跳得不好，感覺很糗，好害怕做下一個動作」的心理壓力，真正樂在其中。 之前上舞蹈課程時，我常常因為「還有一個舞步我不會」而緊張；而如今在土風舞的環境，我總因為「有一個舞步我會」而開心。 每週社課可以學到新的舞，剩下的時間則是跳其他各種學過的及沒學過的舞，也可以點自己喜歡的舞來跳。 這樣的安排同時有充電及放鬆的效果，超棒的啊～:P 雖然我現在大都還是跳得亂七八糟，實在是新生們的壞榜樣……不過到目前為止，最能夠讓我純粹自己跳開心、同時又和大家同樂的舞蹈社團，似乎就是土風舞了哪。:D 註：據說為了避免錯誤聯想，現在土風舞社通常都不會直接叫「土風舞」，而是以「世界民族舞蹈」（簡稱「世舞」）稱呼。不過本質上是一樣的。 Related posts: 20100120 交大光復校區隨拍]]></description>
			<content:encoded><![CDATA[<p>或許是因為最後一年當學生了吧，最近突然能夠理解「去社團放鬆」是怎樣的樂趣了。</p>
<p><a href="https://picasaweb.google.com/103268673393726667616/20101005#5524610352682435714" target="_blank"><img class="alignnone" src="https://lh5.googleusercontent.com/-vzyH1-HX3zA/TKtb2FoVBII/AAAAAAABNP4/1aI-OMDd1vw/s500/IMG_1125.JPG" alt="" width="500" height="333" /></a><br />
交大虹韻世界民族舞蹈社常態社課（攝於2010年10月5日）</p>
<p>不知道對於有天份的人而言，跳舞是怎麼回事？<br />
對我而言是個非常需要腦力與記憶力的活動。<br />
要記住全身上下每個部位在每一拍甚至是半拍時，該呈現什麼樣的姿勢，同時確實控制全身的肌肉去做到，真的好難好難啊。</p>
<p><span id="more-3335"></span></p>
<p>雖然從大二開始參加舞蹈社團，但我一直覺得很難真正從舞蹈中獲得樂趣，只是靠一種美好的嚮往支撐著。<br />
我參加的舞蹈課程多半是花好幾週的時間學一支舞，學完一支舞課程也差不多結束了。<br />
在這種狀況下，幾乎每次上課都在學新舞序，重點總是放在「如何把下個動作做好」、「有沒有做到位」。<br />
但我很少能夠真的把情緒融入，久而久變得是為了能上場表演而練習，並不是真的打從心底有共鳴。</p>
<p>這樣以教一支舞為主軸的課程還有另個壞處：結束後之後除了上台表演外，基本上想不太到什麼場合可以拿出來跳了。這點數度令我感到挫折。<br />
因為沒什麼舞蹈細胞，我不太可能像舞蹈電影裡的主角們，能夠音樂一下便即興舞蹈起來。沒有事先編好舞碼，我就完全沒概念下一步該怎麼辦。</p>
<p>第一個讓我覺得跳舞很開心的環境就是在土風舞圈了。<br />
成千上萬支舞，各種難度都有，新人也有其生存空間。<br />
學會了一支舞，以後有無數次的機會可以在全台各地的世舞社社課以及聯歡跳到。<br />
完全解決了我「不會編舞」以及「學會以後很難找到機會跳」的疑慮。</p>
<p>一直到最近，我更發現自己在土風舞社團社課時，終於可以擺脫「我跳得不好，感覺很糗，好害怕做下一個動作」的心理壓力，真正樂在其中。<br />
之前上舞蹈課程時，我常常因為「還有一個舞步我不會」而緊張；而如今在土風舞的環境，我總因為「有一個舞步我會」而開心。</p>
<p>每週社課可以學到新的舞，剩下的時間則是跳其他各種學過的及沒學過的舞，也可以點自己喜歡的舞來跳。<br />
這樣的安排同時有充電及放鬆的效果，超棒的啊～:P<br />
雖然我現在大都還是跳得亂七八糟，實在是新生們的壞榜樣……不過到目前為止，最能夠讓我純粹自己跳開心、同時又和大家同樂的舞蹈社團，似乎就是土風舞了哪。:D</p>
<p>註：據說為了避免錯誤聯想，現在土風舞社通常都不會直接叫「土風舞」，而是以「世界民族舞蹈」（簡稱「世舞」）稱呼。不過本質上是一樣的。</p>
<p>Related posts:</p><ol>
<li><a href='http://jsliang.twgogo.org/2010/01/20/20100120-%e4%ba%a4%e5%a4%a7%e5%85%89%e5%be%a9%e6%a0%a1%e5%8d%80%e9%9a%a8%e6%8b%8d/' rel='bookmark' title='20100120 交大光復校區隨拍'>20100120 交大光復校區隨拍</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/03/13/fell-in-love-with-folkdance/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[Git] 檢視log時，commit日期以當地時區表示</title>
		<link>http://jsliang.twgogo.org/2012/03/10/git-log-commit-date-local-time-zone/</link>
		<comments>http://jsliang.twgogo.org/2012/03/10/git-log-commit-date-local-time-zone/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 02:40:27 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3354</guid>
		<description><![CDATA[在Linux執行git log指令時，看到的commit日期可能會是ISO 8601格式： Date: 2012-02-22 04:46:00 +0000 以台灣時區而言，必須再加上8小時才是台灣時間。 我心算很弱，實在不想算……Orz 想使用台灣時區檢視Git的commit log，首先要設定系統的當地時間。 之後下git log指令時，加上--date=local參數即可： git log --date=local 可看到日期格式變成： Date:   Wed Feb 22 12:46:00 2012 不想每次都下參數的話，可以設定Git直接使用當地時區顯示commit log： git config --global log.date=local Related posts: [Linux] 設定時區 (Time Zone) Mercurial (Hg)的named branch與bookmark]]></description>
			<content:encoded><![CDATA[<p>在Linux執行<code>git log</code>指令時，看到的commit日期可能會是ISO 8601格式：<br />
<code>Date:   2012-02-22 04:46:00 +0000</code></p>
<p>以台灣時區而言，必須再加上8小時才是台灣時間。<br />
我心算很弱，實在不想算……Orz</p>
<p>想使用台灣時區檢視Git的commit log，首先要<a title="[Linux] 設定時區 (Time Zone)" href="http://jsliang.twgogo.org/2012/03/10/linux-time-zone/">設定系統的當地時間</a>。</p>
<p>之後下<code>git log</code>指令時，加上<code>--date=local</code>參數即可：</p>
<pre class="brush:shell">git log --date=local</pre>
<p>可看到日期格式變成：<br />
<code>Date:   Wed Feb 22 12:46:00 2012</code></p>
<p>不想每次都下參數的話，可以設定Git直接使用當地時區顯示commit log：</p>
<pre class="brush:shell">git config --global log.date=local</pre>
<p>Related posts:</p><ol>
<li><a href='http://jsliang.twgogo.org/2012/03/10/linux-time-zone/' rel='bookmark' title='[Linux] 設定時區 (Time Zone)'>[Linux] 設定時區 (Time Zone)</a></li>
<li><a href='http://jsliang.twgogo.org/2012/02/17/mercurial-hg-named-branch-bookmark/' rel='bookmark' title='Mercurial (Hg)的named branch與bookmark'>Mercurial (Hg)的named branch與bookmark</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/03/10/git-log-commit-date-local-time-zone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Linux] 設定時區 (Time Zone)</title>
		<link>http://jsliang.twgogo.org/2012/03/10/linux-time-zone/</link>
		<comments>http://jsliang.twgogo.org/2012/03/10/linux-time-zone/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 02:29:04 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3344</guid>
		<description><![CDATA[我的AWS是買美國的EC2 Instance，預設時區不是台灣的時區，管理上稍有不便。 我心算很弱，如果每次檢視檔案的最後修改日期時還得換算，簡直會要了我的命。 以下為切換系統時區的指令，留個筆記。 執行 sudo dpkg-reconfigure tzdata Geographic area選Asia，Time zone選Taipei，接著訊息列便會出現如下訊息供確認時區已更改成功： Current default time zone: 'Asia/Taipei' Local time is now: Sat Mar 10 10:20:26 CST 2012. Universal Time is now: Sat Mar 10 02:20:26 UTC 2012. CST (Central Standard Time) &#8230; <a href="http://jsliang.twgogo.org/2012/03/10/linux-time-zone/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>我的AWS是買美國的EC2 Instance，預設時區不是台灣的時區，管理上稍有不便。<br />
我心算很弱，如果每次檢視檔案的最後修改日期時還得換算，簡直會要了我的命。<br />
以下為切換系統時區的指令，留個筆記。</p>
<p>執行</p>
<pre class="brush:shell">sudo dpkg-reconfigure tzdata</pre>
<p>Geographic area選Asia，Time zone選Taipei，接著訊息列便會出現如下訊息供確認時區已更改成功：</p>
<pre class="brush:plain">Current default time zone: 'Asia/Taipei'
Local time is now: Sat Mar 10 10:20:26 CST 2012.
Universal Time is now: Sat Mar 10 02:20:26 UTC 2012.</pre>
<p>CST (Central Standard Time) 意指當地標準時間。<br />
台灣的CST時間為GMT+8 (GMT: Greenwich Mean Time)。</p>
<p>&nbsp;</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/03/10/linux-time-zone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>XZ-1原廠鏡頭蓋LC-63A</title>
		<link>http://jsliang.twgogo.org/2012/02/24/xz-1-lc-63a/</link>
		<comments>http://jsliang.twgogo.org/2012/02/24/xz-1-lc-63a/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 16:37:00 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[攝影]]></category>
		<category><![CDATA[Olympus]]></category>
		<category><![CDATA[Olympus XZ-1]]></category>
		<category><![CDATA[XZ-1]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3321</guid>
		<description><![CDATA[如果情人間有七年之癢的話，那我和我最近的幾台相機大概是一年之癢吧。 Canon 500D差不多在入手一年後售出，一年前買的Olympus XZ-1最近也很少拿出來使用。 就在幾乎要陷入與XZ-1的倦怠期之際，阿達送了我這個好物：XZ-1原廠鏡頭蓋LC-63A，令我重拾了對XZ-1的熱情！ BEFORE AFTER 換上這個自動鏡頭蓋之後，在光線充足的情況下幾乎可以單手操作相機。 只是積習一時難改，我還是會忍不住頻頻用另一隻手確認鏡頭蓋是否有蓋上。 最近又開始喜歡拿XZ-1出來拍照了。 沒想到僅僅是省去了鏡頭安危的顧慮，在操作體驗上能夠帶來這麼大的差異啊～ No related posts.]]></description>
			<content:encoded><![CDATA[<p>如果情人間有七年之癢的話，那我和我最近的幾台相機大概是一年之癢吧。<br />
Canon 500D差不多在入手一年後售出，一年前買的Olympus XZ-1最近也很少拿出來使用。</p>
<p>就在幾乎要陷入與XZ-1的倦怠期之際，阿達送了我這個好物：<a href="http://www.olympus.co.uk/consumer/198_accessory_lc-63a_25167.htm" target="_blank">XZ-1原廠鏡頭蓋LC-63A</a>，令我重拾了對XZ-1的熱情！</p>
<p>BEFORE<br />
<img class="alignnone" src="http://lh5.ggpht.com/_ME8C7LMeIC8/TUUdC2nUu7I/AAAAAAABSjg/6Qx13cyjUHM/s250/IMGP0982.JPG" alt="" width="250" height="188" /><img class="alignnone" src="http://lh6.ggpht.com/_ME8C7LMeIC8/TUUdEo7SJaI/AAAAAAABSjg/R7pNVNZdUDA/s250/IMGP0983.JPG" alt="" width="250" height="188" /></p>
<p>AFTER<br />
<img class="alignnone" src="https://lh3.googleusercontent.com/-9H7SlMr7YlI/TzuBIHaXfZI/AAAAAAAB3es/mNYZMPRifFU/s250/IMAG0167.jpg" alt="" width="250" height="147" /><img class="alignnone" src="https://lh5.googleusercontent.com/-rtwDZhCrZjA/TzuBFu2XDWI/AAAAAAAB3ek/cViGxL2PE3I/s250/IMAG0166.jpg" alt="" width="250" height="147" /></p>
<p>換上這個自動鏡頭蓋之後，在光線充足的情況下幾乎可以單手操作相機。<br />
只是積習一時難改，我還是會忍不住頻頻用另一隻手確認鏡頭蓋是否有蓋上。</p>
<p>最近又開始喜歡拿XZ-1出來拍照了。<br />
沒想到僅僅是省去了鏡頭安危的顧慮，在操作體驗上能夠帶來這麼大的差異啊～</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/02/24/xz-1-lc-63a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>想大哭一場．交大隨拍</title>
		<link>http://jsliang.twgogo.org/2012/02/22/wanna-cry/</link>
		<comments>http://jsliang.twgogo.org/2012/02/22/wanna-cry/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 04:42:36 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[心情]]></category>
		<category><![CDATA[攝影]]></category>
		<category><![CDATA[Olympus]]></category>
		<category><![CDATA[Olympus XZ-1]]></category>
		<category><![CDATA[XZ-1]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3282</guid>
		<description><![CDATA[最近或許因為死線效應，研究做起來很有幹勁，新知識也學得很開心。 同時卻又很矛盾地感覺到有股鬱悶卡在胸口，不知道如何發洩。 想試著哭一哭把情緒釋放掉，但沒有哭點。 連自己都不知道怎麼回事的情緒，也就不知道找誰聊。畢竟…… 「我的情緒好低落。」 「怎麼了？發生什麼事了？」 「不知道，就覺得好悶。」 這樣對方是要怎麼接下去？徒然浪費別人的時間罷了。 昨晚帶著相機在校園裡亂晃，拍了些照片，一時間覺得心情有比較好點。 （XZ-1夜拍的雜訊好明顯啊，不過我知道它盡力了……:P） 1. 八舍附近 2. 七八舍後面的腳踏車棚 3. 管理一館附近的人行道 4. 管理一館靠竹湖的大門外 不喜歡這種不乾不脆、不上不下的感覺。 莫名其妙的低落，無法解釋的低潮。 真希望能大哭一場。 No related posts.]]></description>
			<content:encoded><![CDATA[<p>最近或許因為死線效應，研究做起來很有幹勁，新知識也學得很開心。</p>
<p>同時卻又很矛盾地感覺到有股鬱悶卡在胸口，不知道如何發洩。<br />
想試著哭一哭把情緒釋放掉，但沒有哭點。</p>
<p>連自己都不知道怎麼回事的情緒，也就不知道找誰聊。畢竟……<br />
「我的情緒好低落。」<br />
「怎麼了？發生什麼事了？」<br />
「不知道，就覺得好悶。」<br />
這樣對方是要怎麼接下去？徒然浪費別人的時間罷了。</p>
<p><span id="more-3282"></span></p>
<p>昨晚帶著相機在校園裡亂晃，拍了些照片，一時間覺得心情有比較好點。<br />
（XZ-1夜拍的雜訊好明顯啊，不過我知道它盡力了……:P）</p>
<p>1. 八舍附近<br />
<img class="alignnone" src="https://lh6.googleusercontent.com/-w1WjWWndU-k/T0RooOMBpII/AAAAAAAB3sc/ZkU-NVec4_o/s683/P2218566.JPG" alt="" width="500" height="683" /></p>
<p>2. 七八舍後面的腳踏車棚<br />
<img class="alignnone" src="https://lh4.googleusercontent.com/-nm6PSffolFc/T0RnpyaoniI/AAAAAAAB3qU/8KCUCdNspHc/s500/P2218570.JPG" alt="" width="500" height="281" /></p>
<p>3. 管理一館附近的人行道<br />
<img class="alignnone" src="https://lh6.googleusercontent.com/-A7mEhakpk0U/T0RnrIaRUsI/AAAAAAAB3oc/LzQkQ_KBqZ4/s500/P2218571.JPG" alt="" width="500" height="375" /></p>
<p>4. 管理一館靠竹湖的大門外<br />
<img class="alignnone" src="https://lh3.googleusercontent.com/-AqwVUdQe47U/T0RnsoQAbOI/AAAAAAAB3qY/TDfeicbe3_s/s500/P2218576.JPG" alt="" width="500" height="500" /></p>
<p>不喜歡這種不乾不脆、不上不下的感覺。<br />
莫名其妙的低落，無法解釋的低潮。</p>
<p>真希望能大哭一場。</p>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/02/22/wanna-cry/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mercurial (Hg)的named branch與bookmark</title>
		<link>http://jsliang.twgogo.org/2012/02/17/mercurial-hg-named-branch-bookmark/</link>
		<comments>http://jsliang.twgogo.org/2012/02/17/mercurial-hg-named-branch-bookmark/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 11:40:14 +0000</pubDate>
		<dc:creator>jsliang</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[Mercurial Hg]]></category>

		<guid isPermaLink="false">http://jsliang.twgogo.org/?p=3237</guid>
		<description><![CDATA[同時用Mercurial和Git，在branch的使用上感到很錯亂，昨天研究了一下，今天在此做個小小的筆記。 如果有理解錯誤之處，也麻煩朋友們協助指正，感激不盡。 Named Branch Mercurial的named branch的指令操作和Git差不多，但差別在於： Mercurial的branch資訊是存在每個commit資料裡，並且預設無法修改 Git的branch資訊與commit資料是分開的，branch比較像是一種特殊的tag 以下面的範例為例： # 產生一個新的hg repository，命名為hg_namedbranches mkdir hg_namedbranches cd hg_namedbranches hg init # Rev 0: 隨便新增一個檔案並commit touch a hg add a hg commit -m "Commit 1" # Rev 1: 把a更名為b並commit hg mv a b &#8230; <a href="http://jsliang.twgogo.org/2012/02/17/mercurial-hg-named-branch-bookmark/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>同時用Mercurial和Git，在branch的使用上感到很錯亂，昨天研究了一下，今天在此做個小小的筆記。<br />
如果有理解錯誤之處，也麻煩朋友們協助指正，感激不盡。</p>
<p><span id="more-3237"></span></p>
<h1>Named Branch</h1>
<p>Mercurial的named branch的指令操作和Git差不多，但差別在於：</p>
<ul>
<li>Mercurial的branch資訊是存在每個commit資料裡，並且預設無法修改</li>
<li>Git的branch資訊與commit資料是分開的，branch比較像是一種特殊的tag</li>
</ul>
<p>以下面的範例為例：</p>
<pre class="brush:shell"># 產生一個新的hg repository，命名為hg_namedbranches
mkdir hg_namedbranches
cd hg_namedbranches
hg init

# Rev 0: 隨便新增一個檔案並commit
touch a
hg add a
hg commit -m "Commit 1"

# Rev 1: 把a更名為b並commit
hg mv a b
hg commit -m "Commit 2"

# 產生一個新的named branch: branch_a
hg branch branch_a

# 執行完上一行後，
# 接下來的commit預設會屬於branch_a

# Rev 2: 把b更名為c並commmit
hg mv b c
hg commit -m "Commit 3"

# 切換回default
hg checkout default

# 執行完上一行後，
# 接下來的commit預設會屬於default

# Rev 3: 把b更名為c並commmit
hg mv b c
hg commit -m "Commit 4"

# 又切換到branch_a
hg checkout branch_a

# Rev 4:　把c更名為d並commmit
hg mv c d
hg commit -m "Commit 5"

# 又切換回default
# （我切過去囉～我切回來囉～我又切過去囉～打我啊笨蛋XD）
hg checkout default

# Rev 5:把c更名為d並commmit
hg mv c d
hg commit -m "Commit 6"

# Rev 6: 把branch_a合併到default裡
hg merge branch_a
hg commit -m "Merged branch_a into default"</pre>
<p>以下則是原汁原味的 <code>hg glog</code> 指令輸出，請留意在changeset 2和changeset 4多了「branch: branch_a」的資訊（分別在第41和第23列），其他沒有寫branch資訊的commits都屬於default：</p>
<pre class="brush:plain">$ hg glog
@    changeset:   6:18c4a0a6c2a5
|\   tag:         tip
| |  parent:      5:8ae302d0274e
| |  parent:      4:7db29c6ff518
| |  user:        Jui-Shan Liang
| |  date:        Fri Feb 17 18:15:24 2012 +0800
| |  description:
| |  Merged branch_a into default
| |
| |
| o  changeset:   5:8ae302d0274e
| |  parent:      3:299a2c162bec
| |  user:        Jui-Shan Liang
| |  date:        Fri Feb 17 17:56:05 2012 +0800
| |  files:       c d
| |  description:
| |  Commit 6
| |
| |
o |  changeset:   4:7db29c6ff518
| |  branch:      branch_a
| |  parent:      2:f13800e28216
| |  user:        Jui-Shan Liang
| |  date:        Fri Feb 17 17:54:06 2012 +0800
| |  files:       c d
| |  description:
| |  Commit 5
| |
| |
| o  changeset:   3:299a2c162bec
| |  parent:      1:41d5768d0c7b
| |  user:        Jui-Shan Liang
| |  date:        Fri Feb 17 17:53:18 2012 +0800
| |  files:       b c
| |  description:
| |  Commit 4
| |
| |
o |  changeset:   2:f13800e28216
|/   branch:      branch_a
|    user:        Jui-Shan Liang
|    date:        Fri Feb 17 17:51:47 2012 +0800
|    files:       b c
|    description:
|    Commit 3
|
|
o  changeset:   1:41d5768d0c7b
|  user:        Jui-Shan Liang
|  date:        Fri Feb 17 17:51:19 2012 +0800
|  files:       a b
|  description:
|  Commit 2
|
|
o  changeset:   0:c2a56cd56f9e
   user:        Jui-Shan Liang
   date:        Fri Feb 17 17:51:10 2012 +0800
   files:       a
   description:</pre>
<p>不過坦白說，我個人不太喜歡named branch把branch資訊放在commit資訊裡的設計。因為一旦commit了，除非另外再安裝extension來修改紀錄，否則branch名稱永遠和這個commit綁在一起，不能再改了。這對於我這種常常一開始不太動腦，暫且取個「haha」、「hehe」、「kerker」名稱的人而言，實在是很不方便啊……</p>
<p>所以我個人比較偏好接下來要介紹的bookmarks。</p>
<h1>Bookmark</h1>
<p>Mercurial的bookmark概念就和Git很像了，可以想像成是一種永遠指到目前分支最頂端的commit的tag。也因此bookmark和commit資料是分開儲存的。</p>
<p>以下面的範例為例（流程與前一個範例類似）：</p>
<pre class="brush:shell"># 產生一個新的hg repository，命名為hg_bookmarks
mkdir hg_bookmarks
cd hg_bookmarks/
hg init

# Rev 0: 隨便新增一個檔案並commit
touch a
hg add a
hg commit -m "Commit 1"

# Rev 1: 把a更名為b並commit
hg mv a b
hg commit -m "Commit 2"

# 產生一個新的bookmark: bookmark_a
hg bookmark bookmark_a

# 執行完上一行後，
# 接下來的commit預設會屬於bookmark_a

# Rev 2: 把b更名為c並commmit
hg mv b c
hg commit -m "Commit 3"</pre>
<p>此時查看 <code>hg log</code> 的輸出，可看到bookmark_a位於changeset 2（第2列）：</p>
<pre class="brush:plain">@  changeset:   2:52fdeae8530d
|  bookmark:    bookmark_a
|  tag:         tip
|  user:        Jui-Shan Liang
|  date:        Fri Feb 17 19:26:00 2012 +0800
|  files:       b c
|  description:
|  Commit 3
|
|
o  changeset:   1:5faadcf70474
|  user:        Jui-Shan Liang
|  date:        Fri Feb 17 19:05:54 2012 +0800
|  files:       a b
|  description:
|  Commit 2
|
|
o  changeset:   0:8dac0c2cc522
   user:        Jui-Shan Liang
   date:        Fri Feb 17 19:05:31 2012 +0800
   files:       a
   description:
   Commit 1</pre>
<p>接下來我們繼續增加其他commits：</p>
<pre class="brush:shell"># 切換回Rev 1
hg checkout 1

# Rev 3: 把b更名為c並commmit
hg mv b c
hg commit -m "Commit 4"

# 又切換到bookmark_a
hg checkout bookmark_a

# Rev 4: 把c更名為d並commmit
hg mv c d
hg commit -m "Commit 5"</pre>
<p>再次查看 <code>hg glog</code> 指令輸出，請留意現在bookmark_a從changeset 2移到changeset 4了（第2列）：</p>
<pre class="brush:plain">$ hg glog
@  changeset:   4:a5f1605ca48d
|  bookmark:    bookmark_a
|  tag:         tip
|  parent:      2:52fdeae8530d
|  user:        Jui-Shan Liang
|  date:        Fri Feb 17 19:29:41 2012 +0800
|  files:       c d
|  description:
|  Commit 5
|
|
| o  changeset:   3:b145b474b716
| |  parent:      1:5faadcf70474
| |  user:        Jui-Shan Liang
| |  date:        Fri Feb 17 19:29:40 2012 +0800
| |  files:       b c
| |  description:
| |  Commit 4
| |
| |
o |  changeset:   2:52fdeae8530d
|/   user:        Jui-Shan Liang
|    date:        Fri Feb 17 19:26:00 2012 +0800
|    files:       b c
|    description:
|    Commit 3
|
|
o  changeset:   1:5faadcf70474
|  user:        Jui-Shan Liang
|  date:        Fri Feb 17 19:05:54 2012 +0800
|  files:       a b
|  description:
|  Commit 2
|
|
o  changeset:   0:8dac0c2cc522
   user:        Jui-Shan Liang
   date:        Fri Feb 17 19:05:31 2012 +0800
   files:       a
   description:
   Commit 1</pre>
<p>至於合併的語法也是一樣簡單，直接 <code>hg merge bookmark_a</code> 即可：</p>
<pre class="brush:shell"># 切換回Rev 3
hg checkout 3

# Rev 5: 把c更名為d並commmit
hg mv c d
hg commit -m "Commit 6"

# Rev 6: 把bookmark_a合併進來
hg merge bookmark_a
hg commit -m "Merged bookmark_a"</pre>
<p>最後的 <code>hg glog</code> 結果：</p>
<pre class="brush:plain">$ hg glog
@    changeset:   6:d6d3eadd4561
|\   tag:         tip
| |  parent:      5:1c90ee449df4
| |  parent:      4:6adcb17867d0
| |  user:        Jui-Shan Liang &lt;jsliang.tw@gmail.com&gt;
| |  date:        Fri Feb 17 19:09:14 2012 +0800
| |  description:
| |  Merged bookmark_a
| |
| |
| o  changeset:   5:1c90ee449df4
| |  parent:      3:e2f3ecc5ba78
| |  user:        Jui-Shan Liang &lt;jsliang.tw@gmail.com&gt;
| |  date:        Fri Feb 17 19:08:42 2012 +0800
| |  files:       c d
| |  description:
| |  Commit 6
| |
| |
o |  changeset:   4:6adcb17867d0
| |  bookmark:    bookmark_a
| |  parent:      2:c621f0befcbb
| |  user:        Jui-Shan Liang &lt;jsliang.tw@gmail.com&gt;
| |  date:        Fri Feb 17 19:08:04 2012 +0800
| |  files:       c d
| |  description:
| |  Commit 5
| |
| |
| o  changeset:   3:e2f3ecc5ba78
| |  parent:      1:5faadcf70474
| |  user:        Jui-Shan Liang &lt;jsliang.tw@gmail.com&gt;
| |  date:        Fri Feb 17 19:07:43 2012 +0800
| |  files:       b c
| |  description:
| |  Commit 4
| |
| |
o |  changeset:   2:c621f0befcbb
|/   user:        Jui-Shan Liang &lt;jsliang.tw@gmail.com&gt;
|    date:        Fri Feb 17 19:06:37 2012 +0800
|    files:       b c
|    description:
|    Commit 3
|
|
o  changeset:   1:5faadcf70474
|  user:        Jui-Shan Liang &lt;jsliang.tw@gmail.com&gt;
|  date:        Fri Feb 17 19:05:54 2012 +0800
|  files:       a b
|  description:
|  Commit 2
|
|
o  changeset:   0:8dac0c2cc522
   user:        Jui-Shan Liang &lt;jsliang.tw@gmail.com&gt;
   date:        Fri Feb 17 19:05:31 2012 +0800
   files:       a
   description:
   Commit 1</pre>
<h1>結論</h1>
<p>我想習慣Git的人應該會比較容易接受bookmark吧。</p>
<p>我看到的一個支持named branch的論點是「查看logs的時候，能夠看到每個commit屬於哪支branch會比較清楚」。<br />
但我的經驗尚淺，還沒體會到這項好處，所以目前我個人也是比較喜歡bookmark。</p>
<h1>參考資料</h1>
<ul>
<li><a href="http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/" target="_blank">A Guide to Branching in Mercurial</a> by steve losh</li>
<li>官方wiki：<br />
<a href="http://mercurial.selenic.com/wiki/NamedBranches" target="_blank">http://mercurial.selenic.com/wiki/NamedBranches</a><br />
<a href="http://mercurial.selenic.com/wiki/BookmarksExtension" target="_blank">http://mercurial.selenic.com/wiki/BookmarksExtension</a></li>
</ul>
<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://jsliang.twgogo.org/2012/02/17/mercurial-hg-named-branch-bookmark/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

