軟體版本控制SVN伺服器搭建

來源:互聯網
上載者:User
什麼是Subversion?

Subversion 是一個自由/開源的版本控制系統。也就是說,在Subversion管理下,檔案和目錄可以超越時空。Subversion將檔案存放在中心版本庫裡。這個版本庫很像一個普通的檔案伺服器,不同的是,它可以記錄每一次檔案和目錄的修改情況。於是我們就可以籍此將資料回複到以前的版本,並可以查看資料的更改細節。正因為如此,許多人將版本控制系統當作一種神奇的“時間機器”。

Subversion 的版本庫可以通過網路訪問,從而使使用者可以在不同的電腦上進行操作。從某種程度上來說,允許使用者在各自的空間裡修改和管理同一組資料可以促進團隊協作。因為修改不再是單線進行(單線進行也就是必須一個一個進行),開發進度會進展迅速。此外,由於所有的工作都已版本化,也就不必擔心由於錯誤的更改而影響軟體品質—如果出現不正確的更改,只要撤銷那一次更改操作即可。

某些版本控制系統本身也是軟體組態管理(SCM)系統,這種系統經過精巧的設計,專門用來管理原始碼樹,並且具備許多與軟體開發有關的特性—比如,對程式設計語言的支援,或者提供者構建工具。不過Subversion並不是這樣的系統。它是一個通用系統,可以管理任何類型的檔案集。對你來說,這些檔案這可能是來源程式—而對別人,則可能是一個貨物清單或者是數字電影。

 

一、擷取資源
(1)CollabNetSubversion-server-1.6.6-4.win32.exe SVN 伺服器端
http://subversion.tigris.org/
(2)TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi SVN 的用戶端
http://tortoisesvn.tigris.org/
(3)LanguagePack_1.6.6.17493-win32-zh_CN.msi 中文簡體的語言套件 (能看英文的話就不用下)
伺服器和程式下載 : http://subversion.tigris.org/getting.html#binary-packages  

Windows常用用戶端TortoiseSVN:http://tortoisesvn.net/downloads

AnkhSVN(Visual Studio外掛程式):http://ankhsvn.open.collab.net/

Subclipse(Eclipse外掛程式):http://subclipse.tigris.org/

SCPlugin(Mac OS x用戶端):http://scplugin.tigris.org/

 

二、安裝
上面的 1 、 2 、 3 均為直接安裝即可,注意在安裝完1再安裝3的時候要重啟一下,然後將4 解壓到1 中安裝目錄下的 bin 目錄中。至此安裝完畢

三、配置
沒什麼好特別配置的。基本上安裝好了就可以使用,使用方式是用 32的用戶端工具選擇一個空的檔案夾右鍵 ---- à在此建立檔案庫。選擇預設的格式後確定,一個 SVN 的倉庫檔案就建立完畢。然後轉到項目或者你想加入版本控制的檔案或者檔案夾上面,點右鍵選擇匯入,在彈出的對話方塊裡面輸入倉庫地址,執行匯入完畢後一個完整的檔案版本誕生了。
注意:在匯入時2中的用戶端預設是匯入當前檔案夾的子檔案夾,所以如果你想將目前的目錄也匯入的話,請將他放入一個檔案夾內再執行匯入操作。
然後是倉庫的配置:轉到倉庫目錄的 conf 中,尋找 svnserve.conf 檔案並將其中的
[general]
anon-access = read
auth-access = write
password-db = passwd
realm = My First Repository
前面的 # 號去掉,然後去掉他前面的空格。儲存。
這裡的意思是: anon-access 指匿名訪問的許可權,可以是read,write,none,預設為read,這個建議配為none
auth-access 指認證使用者的許可權,可以是read,write,none,預設為write
password-db 指密碼資料庫的路徑,去掉前面的,存的是認證使用者的使用者名稱和密碼,username=passwd
然後是修改 passwd 檔案
1. 去掉 [users] 前面的 #, 否則 svn 只能以匿名使用者登入,用戶端不會出現登入視窗,除非你的 anon 不為 none, 否則將返回一個錯誤。
2. 添加使用者名稱和密碼 username=password

四、啟動 SVN 伺服器
1:對於單個代碼倉庫
啟動命令 svnserve -d -r 檔案夾路徑 --listen-host 192.168.100.200
其中 -d 表示在後台運行, -r 指定伺服器的根目錄,這樣訪問伺服器時就可以直接用 svn:// 伺服器 ip 來訪問了。如果伺服器有多 ip 的話 --listen-host 來指定監聽的 ip 地址 . 我們可以在 svn 用戶端中通過 svn://192.168.100.200 來訪問 svn 伺服器
2:對於多個代碼倉庫
我們在啟動時也可以用 -r 選項來指定伺服器根目錄 , 但訪問時需要寫上每個倉庫相對於 svn 根目錄的相對路徑 . 比如 , 我們有兩個代碼倉庫 /home/repoa 和 /home/repob, 我們用 svnserve -d -r /home --listen-host 192.168.100.200 來啟動 , 那麼在用戶端訪問時可以用 svn://192.168.100.200/repoa 和 svn://192.168.1.200/repob 來分別訪問兩個項目啟動完成以後 , 我們可以用 ps aux|grep svnserv 來查看是否存在 svnserve 進程.

 

 

3:建立成為系統服務

sc create svnserve binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/" --service --root D:/服務根目錄" displayname= "Subversion Repository" depend= Tcpip start= auto

五、開放伺服器連接埠
svn 預設連接埠是 3690 ,你需要在防火牆上開放這個連接埠。也可以通過 svnserve 的 --listen-port 選項來指定一個已經開放的其他連接埠 , 不過這樣的話用戶端使用也必須家上連接埠 , 如 svn://192.168.100.200:9999/.......

六:初始化匯入
來到我們想要匯入的項目根目錄,比如說E:/svndemo/initproject:
1. 右鍵->TortoiseSVN->Import…
2. URL of repository輸入”svn://localhost/trunk” 如果不是本機localhost改為IP,trunk是你定的版本服務類別目錄
3. ok
完成之後目錄沒有任何變化,如果沒有報錯,資料就已經全部匯入到了我們剛才定義的版本庫中。

基本用戶端操作
1:取出版本庫到一個工作拷貝:
來到任意空目錄下,如E:/svndemo/wc1,運行右鍵->Checkout,在URL of repository中輸入svn://localhost/trunk,這樣我們就得到了一份工作拷貝。
2:提交用戶端修改到版本庫中:
來到你的工作目錄,運行右鍵-〉SVN Commit則你的改動更新到伺服器上,為了再出現問題時能快速的找到問題,建議大家提交時在log中寫上注釋。為防止大家同時對一個資源進行修改,大家在提交的時候可以對要修改的檔案加鎖,提交欄的左下方打勾。
3:更新版本庫中的修改到用戶端
來到你的工作目錄,運行右鍵-〉SVN Update則將版本庫中的改動更新到你的工作目錄中。這時可能會出現一些問題,比如版本庫中的改動可能會與你的改動合并或者發生衝突,當發生衝突時,則用戶端不更新,你需要手動選擇使用哪個版本。其他的情況不必考慮。
4:其他的一些常用操作
有更多的功能在右鍵-〉 TortoiseSVN中,如果看的懂的話基本會用的,常用的有show log查看日誌;Check for modifactions查看版本庫改動;resolved選擇在衝突後你要的版本;Update to revision 選擇要更新到哪個版本,至於add,delete,merge等就是字面意思。

 

使用視頻教程:http://www.subversion.org.cn/media/all.swf

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.