前些天我寫了幾篇關於VisualSVN 、TortoiseSVN、AnkhSvn這幾個軟體組態管理的文章,但是當時沒有做後續的介紹了。
然後昨天我再看一下我自己寫的文章發現有些地方錯誤,還有一些要補充的地方,所以今晚想把這些內容補上,以免自己日後忘記了
我之前寫的文章的地址:VisualSVN 、TortoiseSVN、AnkhSvn軟體組態管理
下面說一下要補充的內容
1、當時我在 系列三VisualSvn Server 裡說
“
如果不選擇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報錯,真的很抱歉
2、補充 :在 系列五AnkhSvn裡面漏了說的,如果你修改了VisualSvn Server裡面的URL,比如你原來的URL是https://joe:8443/svn/GPOS/
,然後你修改為公網的網域名稱:https://joe.xicp.net:8443/svn/GPOS (joe是我的電腦名稱),那麼你原來在VS裡面的項目跟原來已經簽出的文檔
就要全部重新下載了,比如你下載的代碼的專案檔夾在 GPOS檔案夾裡面 路徑:D:\GPOS,那麼你就要刪除了這個檔案夾裡面的所有東西,重新
在VS裡面選擇新的URL,重新下載到D:\GPOS 裡面,原來的文檔也是,在TortoiseSVN裡選擇新的URL,並建立檔案夾重新下載到建立的檔案夾
裡面
最後附上今天我測試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軟體自己解碼出來
說一下今天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服務的啟動帳戶設定為本地帳戶就可以了
在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帳戶才有訪問網路檔案的許可權
幸虧代碼倉庫是放在本機,否則用不上了!!!
文章地址:http://www.visualsvn.com/support/topic/00022/
項目終於做完了,總結一下使用SVN的感受,感覺SVN沒有VSS好,本來以為可以合并代碼解決衝突的,但是我們的項目是winform項目,在一個表單的
designer檔案裡的代碼是VS自動產生的,有幾次發生過designer檔案裡的代碼衝突,因為兩個人同時編輯一個表單,A程式員刪除了表單中的一個控制項
B程式員沒有刪除表單中的任何一個控制項,那麼當代碼合并的時候問題就來了,有幾次發生了XX控制項調用了begininit()方法而沒有endinit(),本以為
隨便加一個endinit()方法就可以了,但是試過這種方法不行,endinit()方法不能隨便添加,endinit()的添加是有規律的,而且VS的添加的begininit()
和begininit()不是 XX控制項.begininit XX控制項.endinit() 而是
1 ((System.ComponentModel.ISupportInitialize)(this.superTab_SerList)).BeginInit();2 ((System.ComponentModel.ISupportInitialize)(this.superTab_SerList)).EndInit();
每次遇到designer檔案裡的代碼衝突都是災難,我們都要重新把前一日備份代碼放回到項目裡,然後然後刪除SVN項目裡的程式碼程式庫,又重建立程式碼程式庫
然後重新匯入代碼,雖然SVN也提供了像VSS的 “鎖” 的功能,但是需要手動在檔案上按右鍵,加鎖,不像VSS,一開始所有檔案都已經加鎖
希望大家使用過的,分享一下SVN的重要地方和使用方法