如何快速建立Subversion伺服器,并且在項目中使用起來,這是大家最關心的問題,與CVS相比,Subversion有更多的選擇,也更加的容易,幾個指令就可以建立一套伺服器環境,可以使用起來,這裡配套有。
本文是使用Subversion最快速的教程,在最短的時間裡幫助您建立起一套可用的伺服器環境,隻需略加調整就可以應用到實際項目當中。
本教程分為以下幾個部門,不僅僅是快速入門,最後我們還有一些進階功能的說明,為了說明簡單,教程是在windows下使用的方式,以友善資源有限的項目使用,對于UNIX環境下,差別并不大。
軟體下載下傳
伺服器和用戶端安裝
建立版本庫(Repository)
配置使用者和權限
運作獨立伺服器
初始化導入
基本用戶端操作
1,軟體下載下傳
下載下傳Subversion伺服器程式。
到官方網站的下載下傳二進制安裝檔案,來到二進制包下載下傳部分,找到 Windows NT, 2000, XP and 2003部分,然後選擇" this directory ",這樣我們可以看到許多下載下傳的内容,目前可以下載下傳 svn-1.4.0-setup.exe 。
下載下傳Subversion的Windows用戶端TortoiseSVN。
TortoiseSVN是擴充Windows Shell的一套工具,可以看作Windows資料總管的插件,安裝之後Windows就可以識别Subversion的工作目錄。
官方網站是TortoiseSVN ,下載下傳方式和前面的svn伺服器類似,在Download頁面的我們可以選擇下載下傳的版本,目前的最高穩定版本的安裝檔案為。
2,伺服器和用戶端安裝
伺服器安裝,直接運作svn-1.4.0-setup.exe ,根據提示安裝即可,這樣我們就有了一套伺服器可以運作的環境。
安裝TortoiseSVN,同樣直接運作按照提示安裝即可,不過最後完成後會提示是否重新開機,其實重新開機隻是使svn工作拷貝在windows中的特殊樣式生效,與所有的實際功能無關,這裡為了立刻看到好的效果,還是重新啟動機器。
3,建立版本庫(Repository)
運作Subversion伺服器需要首先要建立一個版本庫(Repository),可以看作伺服器上存放資料的資料庫,在安裝了Subversion伺服器之後,可以直接運作,如:
svnadmin create E:\svndemo\repository
就會在目錄E:\svndemo\repository下建立一個版本庫。
我們也可以使用TortoiseSVN圖形化的完成這一步:
在目錄E:\svndemo\repository下"右鍵->TortoiseSVN->Create Repository here...“, 然後可以選擇版本庫模式, 這裡使用預設即可, 然後就建立了一系列目錄和檔案。
4,配置使用者和權限
來到E:\svndemo\repository\conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改為:
[general]
password-db = passwd 然後修改同目錄的passwd檔案,去掉下面三行的注釋:
# [users]
# harry = harryssecret
# sally = sallyssecret
最後變成:
[users]
harry = harryssecret
sally = sallyssecret
5,運作獨立伺服器
在任意目錄下運作:
svnserve -d -r E:\svndemo\repository 我們的伺服器程式就已經啟動了。注意不要關閉指令行視窗,關閉視窗也會把svnserve停止。
6,初始化導入
來到我們想要導入的項目根目錄,在這個例子裡是E:\svndemo\initproject,目錄下有一個readme.txt檔案:
右鍵->TortoiseSVN->Import...
URL of repository輸入“svn://localhost/”
ok
完成之後目錄沒有任何變化,如果沒有報錯,資料就已經全部導入到了我們剛才定義的版本庫中。
需要注意的是,這一步操作可以完全在另一台安裝了TortoiseSVN的主機上進行。例如運作svnserve的主機的IP是133.96.121.22,則URL部分輸入的内容就是“svn://133.96.121.22/”。
7,基本用戶端操作
取出版本庫到一個工作拷貝:
來到任意空目錄下,在本例中是E:\svndemo\wc1,運作右鍵->Checkout,在URL of repository中輸入svn://localhost/,這樣我們就得到了一份工作拷貝。
在工作拷貝中作出修改并送出:
打開readme.txt,作出修改,然後右鍵->Commit...,這樣我們就把修改送出到了版本庫,我們可以運作。
察看所作的修改:
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個檔案所有的送出。在版本1上右鍵->Compare with working copy,我們可以比較工作拷貝的檔案和版本1的差別。
最後,所有的内容都已經錄制為動畫檔案,大家可以參考。
關于本教程大家有什麼意見,可以在論壇裡讨論 。
其他相關檔案:
1,軟體下載下傳
SVN伺服器
官方:http://subversion.tigris.org/
本文以下載下傳svn-win32-1.6.1.zip 為例進行安裝
下載下傳Subversion的Windows用戶端TortoiseSVN。(如果習慣CMD指令方式,也可以不下載下傳)
官方:http://tortoisesvn.net/
2,伺服器和用戶端安裝
伺服器安裝,解壓下載下傳的svn-win32-1.6.1.zip到任意位置
安裝TortoiseSVN,按照提示安裝即可。(如果習慣CMD指令方式,也可以不安裝)
3,建立版本庫(Repository)
方法一:指令方式
用CMD進入svn-win32-1.6.1.zip解壓後的bin檔案夾執行
svnadmin create D:\svnRoot
就會在目錄D:\svnRoot下建立一個版本庫。
方法二:使用TortoiseSVN圖形化的完成這一步
在目錄D:\svnRoot上"右鍵->TortoiseSVN->Create Repository here “,就會将D:\svnRoot建立為一個版本庫
4,配置使用者和權限
來到D:\svnRoot\conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改為(即去掉前面的#):
[general]
password-db = passwd
然後修改同目錄的passwd檔案,去掉注釋:
# [users]
最後變成:
[users]
然後照:使用者名=密碼的形式建立使用者
5,運作獨立伺服器
安裝服務,在任意目錄下運作:
sc create subversion_service binpath= "C:\svn-win32-1.6.1\bin\svnserve.exe --service -r D:\svnRoot" displayname= "Subversion Repository" depend= Tcpip
其中subversion_service 為自定義的服名;C:\svn-win32-1.6.1為svn-win32-1.6.1.zip的解壓目錄;D:\svnRoot為版本庫檔案夾,可根據實際情況修改
之後可以在我的電腦上點右鍵->管理->服務裡找到Subversion Repository将其啟動并設定為“自動”
(附:如需删除服務請使用sc delete subversion_service)
6,初始化導入
方法一:指令方式
例如:C:\svn-win32-1.6.1\bin>svn import D:\AAA\Workflow file:///D:/svnRoot\workflow -m "initial import"
其中D:\AAA\Workflow為欲導入的檔案或檔案夾;file:///D:/svnRoot\workflow即為之前設定的版本庫位置
方法二:使用TortoiseSVN
如果是檔案夾:右鍵->TortoiseSVN->Import... URL of repository輸入“svn://localhost/”
然後寫上導入資訊,以便于以後檢視及操作ok
如果是檔案:可以在任意位置點右鍵->TortoiseSVN->Repo-brower,之後的操作相信大家都會
以上操作可以完全在另一台安裝了TortoiseSVN的主機上進行。例如運作svnserve的主機的IP是133.96.121.22,則URL部分輸入的内容就是“svn://133.96.121.22/”。
7,基本用戶端操作
取出版本庫到一個工作拷貝:
來到任意空目錄下,運作右鍵->Checkout,在URL of repository中輸入svn://localhost/,這樣我們就得到了一份工作拷貝。
在工作拷貝中作出修改并送出:
作出修改,然後右鍵->Commit...,這樣我們就把修改送出到了版本庫。
檢視所作的修改:
檔案上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個檔案所有的送出。在版本1上右鍵->Compare with working copy,我們可以比較工作拷貝的檔案和版本1的差別。
8,Subclipse(Eclipse用戶端插件)的下載下傳及安裝
請見
http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA