2011-12-30 43 views
1

我正在嘗試在我的linux服務器上設置一些git存儲庫,以便與一些在Java項目上工作的朋友共享。我聞了聞周圍一點點,發現gitolite應該是一個很好的管理層,所以看着自己的文檔後,我決定遵循本教程:我可以在Windows的非默認端口上使用gitolite存儲庫嗎?

http://sites.google.com/site/senawario/home/gitolite-tutorial

一切順利,直到第6步。在那裏,語法用於存儲庫路徑不工作,因爲服務器上的sshd沒有監聽默認端口,並且該語法不像非默認端口,所以經過一些更多的研究後,我很快發現git支持ssh://等。唯一的問題是它需要將完整的存儲庫路徑包含在URL中。

當我到達第7步並且管理庫無法推送時,我發現gitolite不喜歡完整路徑。我被故障排除部分建議創建主機別名,像這樣:

http://sitaramc.github.com/gitolite/sshhostaliases.html

這理應允許我使用hostalias:reponame作爲路徑。儘管要求每個用戶都這樣做,但我們採用了這種方法,但只是發現它根本不起作用。我們的用戶正在運行windows和msysgit。

總結:

  • 服務器的sshd的偵聽非默認端口上;這是不能改變的。
  • gitolite似乎需要相對路徑。相對路徑僅在默認端口或主機別名上可用。
  • 我們的用戶正在運行的Windows 7(不可更改)和msysgit(可改變,如果有什麼更好的呢?)。我們的設置似乎不喜歡主機別名。

有沒有解決方案,或者我們必須放棄gitolite並找到其他東西?

回答

0

看看是否編輯~/.ssh/config(來自msysgit)適用於每個用戶。添加類似以下的~/.ssh/config文件:

Host gitserver 
Port 9999 

文件~/.ssh/config是可選的,使用SSH,如果它的存在。另外,~/.ssh目錄不能被其他人讀取(chmod 700 ~/.ssh)。

當使用gitolite訪問git repo serverd時,實際上使用的是ssh transport。可以肯定的是SSH(和間接的git)使用文件~/.ssh/config你可以嘗試以下方法診斷:

$ ssh -v gitserver 

,與debug1:前綴會告訴你開始,如果SSH使用~/.ssh/config文件中的前幾行 - 它會向您顯示它使用的配置文件的完整路徑。

+0

就寫在這個問題上,我害怕msysgit忽略了文件的內容。該文件並不存在在第一個地方,只有目錄,所以我甚至不知道我使用msysgit正確的文件,但。 – Protected 2012-01-01 14:09:01

+0

它不顯示任何配置文件路徑。它確實表明它正在連接到配置文件中包含的正確的服務器主機名,但是它忽略了端口並嘗試了22.非常奇怪。 – Protected 2012-01-01 20:00:44

相關問題