Windows下Git服務器搭建及使用過程中的一些問題


      最近發現團隊的代碼版本管理比較混亂,甚至是根本就沒有版本管理的意識,一個項目的源碼有時候找個2、3次才找到正確的版本。以前我對這塊沒做什么特別的要求,只要是大家自己用的順手,VSS、SVN、TFS都無所謂。考慮到離線工作和以后的非微軟開發環境,於是打算用Git來規范統一團隊內的版本管理。說到Git,其實GitHub是不錯的選擇,只不過我們的源碼和開發文檔與運營商的不少系統都有或多或少的關聯,將其放置於互聯網上的風險度還是比較高的;基於此,我還是選擇搭建自己的Git服務器,將代碼、文檔、版本信息等存放在自己的內網服務器上,那是最好不過的了。
   

  我們的內網Web服務器基本都是Windows Server系統,查了一些資料,真心覺得在Win系統下搭Git服務器的配置步驟很坑爹。。。直到看到Dudu的 用開源ASP.NET MVC 程序 Bonobo Git Server 搭建 Git 服務器 ,豁然開朗。恩,這下有戲了,就用它了。這個開源的解決方案現在是V1.1版,已經加入了中文資源文件。

  我用的是一台Windows Server 2003,IIS 6 + WebDAV + ASP.Net MVC 3。基本上只要按照部署ASP.NET MVC站點的步驟模式一路走下來,就不會有什么大問題。具體的安裝步驟和Git客戶端的使用介紹就不多說了,Dudu已經寫的很詳細了,網上也有大把的TortoiseGit使用教程。我這里只記錄下我在配置和使用過程中遇到的一些問題。站點部署完了之后,注意需要給App_Data文件夾賦予寫權限,因為SQLite數據庫文件、站點的全局配置信息以及錯誤日志都在這個文件夾下。Bonobo.Git.Server站點能正常運行之后,我們就可以通過Git客戶端像使用GitHub一樣clone、commit、pull、merge、push等操作自己的版本庫了。

  在這個過程中,遇到的最大問題是本地版本庫無法提交到Git服務器。代碼提交到本地沒什么問題,但是當Push到服務端的時候,總是提示:fatal: authentication failed:



  心想肯定是哪里配置或者設置不對,因為當把版本庫勾選中"匿名"的時候,是可以不用輸入用戶名和密碼而能夠正確提交到服務端的,但這樣一來就無法有效的通過權限和用戶名來管理和查看版本信息了。最后終於找到解決方法:在IIS中,把目錄安然性 -> 編輯-> 身份驗證方法 -> 集成Windows身份驗證  去掉,整個上傳過程就暢通無阻了;如果不做這樣設置的話,我們則需要把每個在Git服務端站點中添加的用戶也設置成Window系統的用戶(http://forum.chodounsky.net/viewtopic.php?f=11&t=92)。



  在登錄后的服務端網站中,瀏覽上傳的文件時,會報404錯誤;在本地開發環境中,瀏覽及下載文件都很正常。這種情況,我們只要知道它定義的后綴名就很好解決了。Bonobo.Git.Server中瀏覽文件、下載文件分別定義的是.browse、.download后綴名,於是在 IIS的 主目錄 -> 配置 -> 添加 對應的擴展名就可以了:



  在使用過程中,我還發現如果版本庫的名稱中包含中文或者小數點時,會有問題(暫未測試其它特殊字符)。如果包含中文,提交到服務端時會失敗;如果包含小數點,連打開這個庫的信息頁面都會404。。。這些小問題也很好處理,我們可以把包含中文的Git庫位置自動轉換成HTML編碼,可以在新增和修改版本庫時自動替換小數點或者其它特殊字符等等



  好了,我們終於可以像使用GitHub一樣,使用我們自己的Git服務器Bonobo.Git.Server了!

  團隊內測試試運行了2周,運行情況還比較穩定。

  大家在使用過程中有什么好的方法和問題也可以一起分享討論下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM