1、下載最新版本的svn伺服器 比如 Setup-Subversion-1.6.15.msi 地址: <!--檔案下載http://download.csdn.net/source/3311549
-->(有的時候在windows2003中不能開啟也可以用VisualSVN-Server-2.1.3.msi這個介面花的svn服務地址http://download.csdn.net/source/3311669
)
2、下載最新版本的svn 用戶端 比如TortoiseSVN-1.6.12.20536-win32-svn-1.6.15.msi 地址: http://download.csdn.net/source/3311621
(相對應的漢化包LanguagePack_1.6.12.20536-win32-zh_CN.msi 地址: http://download.csdn.net/source/3311559
)
3、在磁碟上建立一個空檔案夾 如d:/repository
4、在repository檔案夾下建多個空的子檔案夾 如果group1,group2,group3.....以便將來進行分組。
5、
一、準備工作
1、擷取 Subversion 伺服器程式
到官方網站(http://subversion.tigris.org/)下載最新的伺服器安裝程式。目前最新的是1.5版本,具體
在:http://subversion.tigris.org/servlets
/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91
2、擷取 TortoiseSVN 用戶端程式
從官方網站 http://tortoisesvn.net/downloads 擷取最新的 TortoiseSVN 。TortoiseSVN
是一個用戶端程式,用來與 subvers 伺服器端通訊。Subversion 內建一個用戶端程式 svn.exe ,但 TortoiseSVN
更好操作,提高效率。
二、安裝伺服器端和用戶端
安裝 Subversion(以下簡稱SVN)的伺服器端和用戶端。下載下來的伺服器端是個 zip 壓縮包,直接解壓縮即可,比如我解壓到 E:/subversion 。用戶端安裝檔案是個 exe 可執行檔,直接運行按提示安裝即可,用戶端安裝完成後提示重啟。
三、建立版本庫(Repository)
運行Subversion伺服器需要首先要建立一個版本庫(Repository)。版本庫可以看作是伺服器上集中存放和管理資料的地方。
開始建立版本庫。首先建立 d:/repository 空檔案夾作為所有版本庫的根目錄。然後,進入命令列並切換到subversion的bin目錄。輸入如下命令:
svnadmin create d:/repository/group1
此命令在 E:/svn 下建立一個版本庫 group1 group1 下面會自動產生一些檔案夾和檔案。
我們也可以使用 TortoiseSVN 圖形化的完成這一步:
先建立空目錄 d:/repository/group1 ,注意一定是要空的。然後在 group1
檔案夾上“右鍵->TortoiseSVN->Create Repository
here...”,然後可以選擇版本庫模式,這裡使用預設的FSFS即可,然後就建立了一系列檔案夾和檔案,同命令列建立的一樣。
四、運行獨立伺服器
此時 subversion 服務還沒有開始,只是通過它的命令建立了版本庫。繼續在剛才的命令視窗輸入:
d:/>svnserve -d -r d:/repository
五、配置使用者和許可權
1、用文字編輯器開啟d:/repository/group1/conf目錄,修改svnserve.conf:
1)修改server.conf
將:
# password-db = passwd
改為:
password-db = passwd
將:
#anon-access = read
改為:
anon-access = none
2)修改passwd檔案
去掉前面的 # 注釋符,注意前面不能有空格。
將:
[users]
# harry = harryssecret
# sally = sallyssecret
改為:
[users]
lisi = lisi(這是管理員自己設定的使用者名稱和密碼)
zhangsan=zhangsan(這是管理員自己設定的使用者名稱和密碼)
3)修改authz檔案
將:
[groups]
# harry_and_sally = harry,sally
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
改為:
[/]
lisi = rw(設定lisi使用者的許可權為在這個組中對group1資料庫是可讀可寫的)
zhangsan=rw(設定zhangsan使用者的許可權為在這個組中對group1資料庫是可讀可寫的
* =
2、用文字編輯器開啟d:/repository/conf目錄,修改svnserve.conf:
將:
# password-db = passwd
改為:
password-db = passwd
將:
#anon-access = read
改為:
anon-access = none
將:
[users]
# harry = harryssecret
# sally = sallyssecret
改為:
[users]
admin=admin
lisi = lisi(這是group1組裡設定的使用者名稱和密碼)
zhangsan=zhangsan(這是group1組裡設定的使用者名稱和密碼)
1)修改server.conf
將:
# password-db = passwd
改為:
password-db = passwd
將:
#anon-access = read
改為:
anon-access = none
2)修改passwd檔案
去掉前面的 # 注釋符,注意前面不能有空格。
將:
[users]
# harry = harryssecret
# sally = sallyssecret
改為:
[users]
admin=admin
lisi = lisi(這是group1組裡設定的使用者名稱和密碼)
zhangsan=zhangsan(這是group1組裡設定的使用者名稱和密碼)
3)修改authz檔案
將:
[groups]
# harry_and_sally = harry,sally
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
改為:
[groups]
group_admin=admin
group1=lisi,zhangsan
[/]
@group_admin=rw
*=
[/group1]
@group1=rw
* =
3.如何需那兩個或兩個以上的分組,須進行第一,第二步的操作.
六、初始化匯入
下面就是將我們的資料(項目)匯入到這個版本庫,以後就由版本庫管理我們的資料。我們的任何改動都回被版本庫記錄下來,甚至我們自己丟失、改錯資料時版本庫也能幫我們找回資料。
比如,我在 d:/wwwroot 下有個 guestbook 檔案夾,裡面存放的是我編寫的留言簿程式。在此檔案夾上“右鍵 ->
TortoiseSVN -> Import...” ,在彈出對話方塊的“URL of
repository”輸入“svn://localhost/group1”。在“Import message”輸入“匯入整個留言簿”作為注釋。
點 OK 後要求輸入帳號。我們在使用者名稱和密碼處都輸入 lisi 。完成後 guestbook 中的內容全部匯入到了 svn://localhost/group1/guestbook 。
我們看到在 d:/repository/group1 沒有任何變化,連個 guestbook
檔案夾都沒有建立,唯一的變化就是d:/repository/group1容量變大了。實際上我們源guestbook中的內容已經匯入 repos1
版本庫了,源 guestbook 檔案夾可以刪除了。
需要注意的是,這一步操作可以完全在另一台安裝了 TortoiseSVN 的客戶機上進行。例如運行svnserve的主機的IP是133.96.121.22,則URL部分輸入的內容就是“svn://133.96.121.22/group1” 。
七、基本操作流程
1、取出(check out)
取出版本庫到一個工作拷貝:
來到任意空目錄下,比如在f分區建立一個空檔案夾 f:/work 。“右鍵 -> SVN Checkout”。在“URL of
repository”中輸入“svn://localhost/svn/repos1/guestbook”,這樣我們就得到了一份
guestbook 中內容的工作拷貝。
2、存入(check in)/提交(commit)
在工作拷貝中作出修改並提交:
在 guestbook 工作拷貝中隨便開啟一個檔案,作出修改,然後“右鍵 -> SVN Commit... ”。這樣我們就把修改提交到了版本庫,版本庫根據情況儲存我們提交的資料。
在修改過的檔案上“右鍵 -> TortoiseSVN -> Show Log” ,可以看到對這個檔案所有的提交。在不同的
revision 條目上“右鍵 -> Compare with working copy”,我們可以比較工作拷貝的檔案和所選
revision 版本的區別。