天天看點

版本管理軟體VisualSVN、TortoiseSvn、AnkhSvn 後記

前些天我寫了幾篇關于VisualSVN 、TortoiseSVN、AnkhSvn這幾個軟體配置管理的文章,但是當時沒有做後續的介紹了。

然後昨天我再看一下我自己寫的文章發現有些地方錯誤,還有一些要補充的地方,是以今晚想把這些内容補上,以免自己日後忘記了

下面說一下要補充的内容

如果不選擇Use secure connection ,Server Port那裡,預設端口有80/81/8080三個;如果選中最後面的CheckBox,則表示使用安全連接配接【https協定】,端口隻有433/8433二個可用。

預設是選用的。(Server Port那裡,我選擇的是端口80,沒有勾選Use secure connection,本人覺得沒有必要使用secure connection)至于授權Authentication,

預設選擇 VisualSVN Server自帶的使用者和使用者組。

實際上應該勾選Use secure connection,如果不這樣做的話你寫的代碼有可能被人偷取,由于當時本人想事情太輕浮了(不好意思各位),因為回家了,不能回公司測試,

是以在家裡放置了VisualSvn Server,在網吧使用TortoiseSVN。然後勾選 Use secure connection ,端口是8443,我使用TortoiseSVN下載下傳代碼的時候 ,TortoiseSVN提示我需要憑據,

然後我點選 确定,然後 提示我輸入VisualSvn Server上的使用者名跟密碼,我輸入了,其中需要憑據的那個對話框有兩個要求是符合的,估計是沒有證書的關系。輸入了使用者名、密碼後就開始下載下傳代碼了。

我估計由于沒有證書的關系,是以就算下載下傳成功了,可以使用VisualSvn Server來進行項目的版本管理了,但是傳輸的資料應該不是加密的,希望懂的人能給我提示怎麽安裝證書。

對于這個問題由于本人在網吧沒有截圖,而今晚在家裡試驗的時候TortoiseSVN報錯,真的很抱歉

版本管理軟體VisualSVN、TortoiseSvn、AnkhSvn 後記

,然後你修改為公網的域名:https://joe.xicp.net:8443/svn/GPOS (joe是我的計算機名),那麼你原來在VS裡面的項目跟原來已經簽出的文檔

就要全部重新下載下傳了,比如你下載下傳的代碼的項目檔案夾在 GPOS檔案夾裡面 路徑:D:\GPOS,那麼你就要删除了這個檔案夾裡面的所有東西,重新

在VS裡面選擇新的URL,重新下載下傳到D:\GPOS 裡面,原來的文檔也是,在TortoiseSVN裡選擇新的URL,并建立檔案夾重新下載下傳到建立的檔案夾

裡面

版本管理軟體VisualSVN、TortoiseSvn、AnkhSvn 後記

最後附上今天我測試VisualSvn Server 的一些資料 

測試環境:網吧(安裝了TortoiseSVN) 家裡(安裝了VisualSvn Server 、VS2008、AnkhSvn)

網絡:網吧帶寬:8M  家裡帶寬:4M

整個公司項目檔案夾的大小是大約160MB

(1)使用了15分鐘下載下傳完公司的項目的源代碼 包括bin檔案夾 resharper檔案夾(我們使用了 resharper這個VS2008的代碼提示工具插件,是以在項目檔案夾下會有 resharper這個檔案夾)

(2)在網吧裡更新了代碼檔案,在家裡立刻update一下就可以看到在網吧裡的修改

(3)下載下傳完成後TortoiseSVN提示一共下載下傳了40多50M的檔案,這個需要請教一下高手,整個公司項目檔案夾的大小是大約160MB,為什麽TortoiseSVN會提示一共下載下傳了40多50M的檔案

最最後,謝謝大家看完我的文章,衷心的感謝。

(如果還有什麼不對,歡迎大家拍磚)

 說錯了,整個公司項目檔案夾的大小是大約99MB,上傳整個公司項目檔案夾到visual svn server需要使用8分鐘

注意:整個公司項目檔案夾跟visual svn server都在同一台電腦上

還有最後一點忘記說了,導入了項目檔案夾之後,就可以把那個項目檔案夾删除了,伺服器上隻儲存經過svn編碼過的代碼

隻能使用svn軟體才能打開的,如果要備份整個項目檔案夾,那就要在用戶端把自己的項目檔案夾上傳到伺服器的代碼備份的

檔案夾裡

如果所有的開發人員的代碼都丢失,然後伺服器裡的代碼備份的檔案夾裡沒有備份代碼,隻能使用VS或者TortoiseSvn來下載下傳

visual svn server上的代碼了

我估計項目代碼會儲存在db檔案夾裡面,然後svn軟體自己解碼出來

版本管理軟體VisualSVN、TortoiseSvn、AnkhSvn 後記

 說一下今天2012-11-16日的問題:

visual svn sever在公司伺服器上竟然裝不起來

在Windows2003 上安裝visual svn sever不能啟動svn服務安裝失敗

visual svn sever版本是2.1.4

Windows2003 standard SP1 32位

網上說要安裝一個更新檔

windowsinstaller-kb893803-v2-x86.exe

但是我下載下傳下來安裝的時候說:目前環境的版本比我這個更新檔要新不用安裝

在Windows事件檢視器裡

VisualSVN Server 服務因 1 (0x1) 服務性錯誤而停止。

在服務清單裡,自己手動啟動也失敗,服務已經設定為自動啟動

--------------------------------------------------------------------------------------------------

作業系統打了SP2更新檔還是不行

最後我把svn服務的啟動帳戶設定為本地帳戶就可以了

版本管理軟體VisualSVN、TortoiseSvn、AnkhSvn 後記

在visual svn server的網站上找到這句話

VisualSVN Server stores all repositories (and any related data) in a single folder on the local disk (C:\Repositories by default). This article describes how to configure VisualSVN Server to store repositories on a network share.

Configuring required access permissions

 Required access permissions for the repositories folder stored on a local disk are configured automatically by VisualSVN Server during the installation. If repositories are stored on a network share, you should configure access permissions manually

By default, built-in system Network Service account is used to run VisualSVN Server service. This account has minimum privileges on the local computer and acts as the computer on the network, so you should simply grant access to the computer where VisualSVN Server is installed.

這句話大概是說,如果你把代碼倉庫放在本機Repositories,那麼不需要network service帳戶來啟動svn服務,如果Repositories代碼倉庫放在區域網路裡的其他

機器上,就需要network service帳戶來啟動svn服務,因為network service帳戶才有通路網絡檔案的權限

幸虧代碼倉庫是放在本機,否則用不上了!!!

項目終于做完了,總結一下使用SVN的感受,感覺SVN沒有VSS好,本來以為可以合并代碼解決沖突的,但是我們的項目是winform項目,在一個窗體的

designer檔案裡的代碼是VS自動生成的,有幾次發生過designer檔案裡的代碼沖突,因為兩個人同時編輯一個窗體,A程式員删除了窗體中的一個控件

B程式員沒有删除窗體中的任何一個控件,那麼當代碼合并的時候問題就來了,有幾次發生了XX控件調用了begininit()方法而沒有endinit(),本以為

随便加一個endinit()方法就可以了,但是試過這種方法不行,endinit()方法不能随便添加,endinit()的添加是有規律的,而且VS的添加的begininit()

和begininit()不是 XX控件.begininit  XX控件.endinit() 而是

每次遇到designer檔案裡的代碼沖突都是災難,我們都要重新把前一日備份代碼放回到項目裡,然後然後删除SVN項目裡的代碼庫,又重建立代碼庫

然後重新導入代碼,雖然SVN也提供了像VSS的 “鎖” 的功能,但是需要手動在檔案上按右鍵,加鎖,不像VSS,一開始所有檔案都已經加鎖

希望大家使用過的,分享一下SVN的重要地方和使用方法