Pages

Sunday, September 16, 2007

hg 筆記

因為我在考慮把一些 HOME 裡的設定檔 (甚至是系統的) 丟進 hg 控管,所以做了一個小實驗瞭解一下 hg 的能力

Support:

  • copy/rename/mv file control
  • soft (symbolic) link control
Not support:
  • file permission control
  • folder control
  • owner/group control
  • partial repo
不過關於 file permission 的部份,我在 debian 上測試是會納入控管的,用 hgk 可以看到 permission 變更的記錄,但回到 slackware 卻看不到這些東西。這部份的機制還要再實驗看看...但仔細一想似乎也合理,畢竟有些東西不能跨平台,萬一在 Linux 上的 commit 將這些東西記錄進去,到了 Windows 上 clone 出來不曉得會發生什麼事。萬一真的支援了這些特性,可能也代表在跨平台的能力上要打點折扣了。

會想到 partial repo 是因為在 cvs 上可以很方便 checkout 某一個子目錄出來,結果發現 hg 沒辦法只 clone 某一個子目錄,大概是因為 hg 的 .hg 目錄只放在 repo 的根目錄,而不像 cvs/svn 那樣每個子目錄都會放一個。

另外 hg 似乎沒有方便查到目前工作版本的指令。有時候 up 回到之前的版本,在 st 的輸出中看不到東西,只能用 parent 指令看到是哪一個 changeset (也許原設計就是這個指令,是我觀念還沒轉換過來@@)。不過比起 cvs/svn 的 st 輸出,hg 的真的精簡過頭了,有點不太習慣。

剛剛想試一下 git 是不是支援 file permission 的控管,不過玩了一下還是有很大的挫折感,相較之下 hg 果然好學多了。我搞了好久才有辦法 commit (原來有變更都要先 add,或在 commit 時加上 -a);然後到現在還不曉得要怎麼回到之前的特定版本,查了一些 tutorial 都跟天書一樣 (是我比較笨嗎XD)。也許會再找個時間來研究一下 git 的使用。

最後再記錄一個 hg 的好東西,剛剛找到一個很不錯的 cheatsheet。畫的很漂亮,但應該只有對於初學者的幫助大一點,希望對於新加入的水銀黨員有幫助。


This article was originally posted on this site.

No comments:

Post a Comment