這幾天在netbeans中修改一個web項目時,出現了很大的問題,幸運地是netbeans內建有本地記錄(相當於本地的版本控制系統)。記得最
近subversion很火,並且netbeans中也內建了subversion,所以打算自己搭建一個subversion。
使用軟體:
用戶端:CollabNetSubversion-client-1.5.7-3.win32.exe
伺服器端:Setup-Subversion-1.5.1.en-us.msi
netbeans(6.x)
中的svn外掛程式:因為netbeans中的svn外掛程式是通過和用戶端程式互動來達到與svn伺服器互動的目的,因此svn用戶端還是必須安裝的。在
netbeans中找到工具--外掛程式,開啟“可用外掛程式”選項卡在搜尋了輸入svn,就能找到svn的外掛程式了。
安裝subversion server·。安裝路徑最好不要帶空格。安裝subversion用戶端,這些都沒什麼可說的。
安裝後在“開始--所有程式”菜單裡就會有這兩個程式目錄,裡面應該有份說明文檔,如果你用的是上面的這兩個軟體的話,說明文檔的內容是一致的,只是一
個是chm的,一個是pdf的。這份文檔的附錄A(Appendix A)是一份快速使用subversion的文檔,按照這裡面說的去做即可。
說實話,我搞這個東西用了兩天多的時間,看了很多份網上的向我這份的教程,可都沒成功,反而弄得我很亂,還是隨軟體的官方文檔可靠些,半天就搞定了。
另外還要參考第六章,Server Configuration中的svnserve,a Custom Server一節,裡面介紹了如何將subversion安裝為系統服務。
安裝subversion服務需要注意的
- binpath= XXX等參數的格式一定要注意,binpath=之間必須無空格,而= XXX之間必須有空格。
- 如果服務安裝成功,則一定會出現success,並且在服務中可以看到這個服務。
- 在
設定服務的過程中不可避免地出現一些錯誤,從而建立一些無效地服務,這些服務可以在命令列中通過命令:sc delete 服務名
來刪除。如果服務名有空格,則這個服務名必須用”“包起來。服務名是 sc create
XXX的這個名字,而不是displayname的值,displayname是在系統的服務工具裡顯示的名稱
- 可以在命令列中通過”net start 服務名” 命令來啟動這個服務。也可以通過“net stop 服務名”來關閉這個服務,要查看所有已經啟動的服務,使用“net start”命令。
我在netbeans遇到的一個問題
我在建立好並啟動subversion服務後,直接在netbeans中點擊一個項目選擇提交,在路徑正確的前提下,總是出現UUID
"String1" doesn't match expected UUID
"String2"。在網上查了下資料,應該是因為許可權問題,後來靜下心來一想,明白了。問題是這樣來的:我在subversion伺服器上設定了一個
repository,subversion給這個repository一個uuid,然後我在用戶端使用subversion試圖添加一個工程進去。這
就是問題所在,用戶端是不能往伺服器中添加工程的,它只能從伺服器中籤出工程,做出修改再提交。那個UUID應該就是為了防止用戶端往伺服器隨意添加工程
的。找到原因後,我使用“svn import”命令將我的工程添加進repository中(樣本命令:svn import
/tmp/myproject file:///var/svn/repos/myproject -m "initial
import")。在netbeans中將這個工程刪除,但不刪除源檔案。然後在工具列上找到“團隊合作”--“subversion”--“簽出”,將
這個工程簽出到netbeans中就行了。注意,簽出時路徑要使用相對路徑,相對於設定系統服務時-r的值。附:我將設定為系統服務所使用的bat檔案:sc create svnserver binpath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service -r D:/svnrepos" displayname= "subversion" depend= Tcpip start= auto<br />net start svnserver<br />pause