發表文章

目前顯示的是 9月, 2012的文章

TortoiseHG 的中文

目前 TortoiseHG 已經有中文翻譯了,雖然翻得不是很好,也還沒有完全翻譯完畢,不過,常用的功能都已經有中文了 若各位有更好的中譯,可以建議給我,謝謝

Mercurial 的 MQ extension

大家都知道 git 有 staging area. 的確是,在台灣玩git的人真的是比較多. mercurial 則是有MQ extension 來實現同樣的功能. MQ =  Mercurial Queues ,他的根本意義是,在work copy 跟 repo 之間,實作一個queue 的概念. 有了這個queue 的實作,使用者可以把它當作staging area 來使用,也可以把它當作 patch manage 來使用 , 當然用法不只如此,一旦知道了使用方法後,他的通用性可以讓使用者自由發揮創意. 我很喜歡進行小步進的開發,有可能一個小功能我會再切分更細的工作元素.可是我不希望repo的 log 上滿滿的都是瑣碎的提交,我希望提交的內容是一個完整的功能,或是一個完整的演算法實作,或是一個完美的 bug resolv 方案,因此我的需求就是將一整個串的小修改紀錄變成"一個 "提交. git 的 local branch 可以很方便的做到這樣.我只要開出一個新分支,改個幾行就commit , 等到功能測試完成,我用Squashed merge 模式 來 merge 到主幹.這樣主幹只會有一個commit 紀錄. 可是其實我還是對mercurial 有愛.如果能在mercurial 下做事,自然是盡量在mercurial 下做.如果我沒有 MQ , 我必須clone 兩份 mercurial repo ,一分作小步進的commit , 等到完成後,用diff 輸出所有的差異,commit 到另一份 repo ,接著 push / pull 到主幹 幹! 真是麻煩. 所以我想到可以用MQ來幫我做. 首先,要啟動 MQ ,請修改 repo 下的.hg/hgrc or ~/mercurial.ini [extensions] mq = 這樣就可以了. 有了 MQ 後要怎麼做? 作業概念上是依照以下順序. 新建一個queue --> 修改檔案內容 --> 把變動送進 queue ---> 修改檔案內容 --> 把變動送進 queue ---> 修改檔案內容 --> 把變動送進 queue ---> .......---> 完成,把queue 的內容送進r...