我的情形,是要管理http server (tomcat server) 的程式碼
但我們已經有個issue tracker的web介面,所以不能另外再架redmine之類的project管控軟體 (而且我們的RD只有三隻,實在不想自找麻煩)
-------------
這幾天用ubuntu架好git + gitosis + gitweb後,已經可以透過windows的git extension來存取設定好的git project
git = scm的主體
gitosis = 透過其它git user產生的ssh-key來設定每個git repository存取的權限 (簡單的說就是,讓git server不必對每個git user都開帳號,透過ssh-key的private和public key來認證,並透過gitosis.conf來設定每個git user的對gitosis管理的git project的存取權限,我是透過這種方式,在windows上用git extension產生ssh-key,上傳到git server,設定好權限後,就可以在windows上存取remote private git repository了)
gitweb = git內建的web介面,但看起來只能設定顯示與不顯示,無法設定每個人的讀取權限,對private git repository很不實用,因為很多檔案都有資料庫的存取帳號和密碼
目前有幾點希望大家能給點意見
1. git web interface的選擇 (private 使用)
引用:
git只是個資料夾,如果能透過http圖形介面看到誰改了什麼,現在的分支,而且能直接點進去看程式和修改的地方,會比較直觀…
比方說git extension的這張圖,點選能進去看每個commit所修改的檔案清單,再點檔案則能看到修改的內容,如果這麼漂亮的介面能用web interface就好了…
在
GIT WIKI我每個都google一下,但很多都找不到範例介面,不然就是看起來都很像gitweb,實在很難找到一個漂亮又直觀web圖形介面,而且又能設定讀取權限(最好能和gitosis結合),希望大家能推薦
2. git repository 和 http server的同步問題
引用:
用git來管理http server上的程式碼時,如果git server和http server位於不同主機,就必須要能同步兩台主機的狀態
對同步的功能我試想了一下,有幾個解法,但都不是很滿意
一、使用git hook,自定義post-update script,再透過ftp更新http server (難度極高… 根本是自找麻煩)
二、使用rsync (還可以接受,但看來還是要用git hook,每次push都要git archive解開到git server某個web資料夾,再讓rsync同步這個資料夾和遠端的http server)
三、直接在http server執行git pull或 git sync (還可以接受,但project蠻大的,是否有其它side effect,比方說更新所需時間)
四、每天定期關閉http server,再做同步… (變成1天只能sync 1次)
如有其它解法,希望能給點意見
3.git repository內含git repository的問題
引用:
程式碼一龐大起來,勢必要再細分為子git repository,並設定權限…看起來就是submodule!?
大致上看了這一篇,git已經很不直觀了,還看到這鬼東西,…
Git Submodule 的認識與正確使用!
這部份我還不瞭解,還要再看書確定需求和做法才行,如果有經驗者能指點方向更好…
一
[zoho 在 2011-6-6 09:38 AM 作了最後編輯]