2011年5月5日 星期四

git 學習(二) tortoiseGit 設定和中文遇到的問題

混亂的日子,還得得作點筆記下點東西…

當初同事對我說,他用的 GNOME 和 KDE 桌面工具,都沒有一個很好支援 subversion 軟體,不曉得是因為他不熟悉版本管理的思考原則,還是真有其它的問題(subversion 是 linux 上的版本管理工具,照道理來說應該不會很難用才是)。總之那開啟我研究 git 之路。

在 windows 裡我是用 tortoiseSvn 和 Eclipse 的 Subclipse 外掛來進行資料管理,所以在試著改成 git 的時候,選擇了 tortoiseGit 作為 Client,不過一開始就遇到問題。原來我的那個同事,一開始就使用 gitosis 這套外掛在 git 上,可以進行權限管理的套件。讓我怎麼也無法順利抓回測試的資料庫,研究 gitosis 未果,才先回到更根本的 git 開始,在查找另一個問題,誤打誤撞找到 tortoiseGit 的設定方式。

gitosis 是一個能管理 git 存取權限的外掛,目前還沒完全了解它的運作原理,只知道它是建立一個叫作 gitosis 的使用者(有些是叫 git),所有的連線都用這個帳號要求資料,但是要求的同時, gitosis 會向要求方取得一個金鑰,和自己本身金鑰庫中比對,確定來要求的是哪一位使用者,再去權限設定表中查詢,判斷有沒有權限。

換一種方式描述, gitosis 權限的設定,是依靠公私鑰的分別存取而來。原來和同事建立好公私鑰,確定放對位置卻總是無法驗證正功。後來才找到這麼一篇文章,看情境應該是沒有經過 tortoiseGit 附的 puttygen 軟體處理過,產生金鑰的方式,在 Windows 和 Linux 上理論上不會有差異。這個部分就留待之後再測試,因為遇上了另一個麻煩的問題。

中文是我的母語,同事之間也都是以中文溝通,所以中文的檔案名稱是無法避免的。當測試用 Git 主機能夠被連結、認證後,接下來測試的就是中文檔名。那關係到 git  能否成為一個管理公司文件的工具,能否把像是企劃書、工作記錄等存下來的地方。滿顯然這部分讓我失望了, git 不像 subversion 要求資料都以 utf8 字元編碼傳遞,導致在 windows 下的中文檔名在 linux 變成亂碼,而 Linux 下的中文檔名無法在  Windows 下取出。

對此得小小報怨一下,沒有想到號稱支援 utf8 文字的 Windows ,結果還是使用當地字元編碼的方式在記錄資料,才會造成 BIG 5 編碼的問題。雖然在同樣的作業系統正常,但是我仍然偏向使用 utf8 編碼來記錄,至少未來面對其它語系系統的時候才不會有無法抓取檔案的問題。

現階段還沒有找到任何說明的文章,看到的大多是解決送交(commit)時候的中文註解顯示問題,還需要花時間研究資料,或等待 tortoiseGit 的改版才能解決。

2 則留言:

  1. 就我目前找到有兩種解法:
    1.更改設定檔,請參考以下文章:
    Git 系列之二:Windows 下 Git 客户端的选择,及 msysGit 各种中文问题的解决-转载
    http://www.cnblogs.com/baizx/archive/2010/08/09/1796120.html

    2.對岸網友修改的版本:
    让Windows下Git和TortoiseGit支持中文文件名/UTF-8
    http://www.cnblogs.com/tinyfish/archive/2011/01/17/1909463.html

    回覆刪除
  2. 謝謝你的回應,其實這兩個網站都有找到過,但是最近忙著把論文提要需要的前三章生出來(因為我想不開,回頭去當學生,在職班),忙昏了沒在這裡分享。

    不得不承認,既使是寫程式的人也是有惰性,要推一個純文字的版本管理模式,我認為會很吃力。但是 patch 的版本不見得總是能跟著最新的官方版。
    反正還不急著在短時間內轉換,就先等看看論壇上的抱怨,會不會讓那些開發者願意加上轉換語系的功能上去。(很早被開發過,不過被其中一個開發者覺得沒必要,被否決了)

    回覆刪除