svn服務器安裝配置
1.安裝svn-1.3.0-setup.exe(可以在http://subversion.tigris.org/下載得到)
2.安裝成功后,在命令行輸入svnadmin create D:\svnhome\workflow,建立工程,svn自動會
在該目錄下建立若干文件
3.在該目錄下有password文件,在此文件中增加用戶和密碼格式如下
[users]
admin = 123
在svnserve.conf文件中增加
[general]
anon-access = read
auth-access = write
password-db = passwd
realm = svnhome
到這一步svn服務器已經配置完成了,下面是導入需要版本控制的工程
4.在命令行執行import命令
例如:D:\svnhome\workflow>svn import D:\eclipse\workspace\Workflow
file:///D:/svnhome\workflow -m "initial import"
回車后命令窗口顯示
新增 D:\eclipse\workspace\Workflow\.classpath
新增 D:\eclipse\workspace\Workflow\.project
新增 D:\eclipse\workspace\Workflow\src
新增 D:\eclipse\workspace\Workflow\src\com
新增 D:\eclipse\workspace\Workflow\src\com\bright
新增 D:\eclipse\workspace\Workflow\src\com\bright\sw
......
......
提交后的修訂版為 1。
說明工程引入svn控制成功
5.最后在命令行執行svnserve -d命令,啟動svn服務
FeedBack:
修改配置文件/home/svnroot/repository/conf/svnserve.conf
[general]
#匿名訪問的權限,可以是read,write,none,默認為read
anon-access = none
#認證用戶的權限,可以是read,write,none,默認為write
auth-access = write
#密碼數據庫的路徑,去掉前面的#
password-db = passwd
#用戶操作權限#
authz-db = authz
修改配置文件passwd
[users]
user = passwod
user1 = password1
修改配置文件authz
[test1:/]
user = rw
[test1:/doc]
user1 = rw
對于單個代碼倉庫
啟動命令 svnserve -d -r /home/svnroot/repository/test1 --listen-host 192.168.1.18
其中-d表示在后臺運行,-r指定服務器的根目錄,這樣訪問服務器時就可以直接用svn://服務器ip來訪問了。如果服務器有多ip的話--listen-host來指定監聽的ip地址。
我們可以在svn客戶端中通過svn://192.168.1.18來訪問svn服務器。
對于多個代碼倉庫,我們在啟動時也可以用-r選項來指定服務器根目錄,但訪問時需要寫上每個倉庫相對于svn根目錄的相對路徑。
比如,我們有兩個代碼倉庫/home/svnroot/repository/test1 和/home/svnroot/repository/test2,我們用svnserve -d -r /home/svnroot/repository --listen-host 192.168.1.18來啟動,那么在客戶端訪問時可以用svn://192.168.1.18/test1和svn://192.168.1.200/test2來分別訪問兩個項目
啟動完成以后,我們可以用ps aux|grep svnserv來查看是否存在svnserve進程。
開放服務器端口
SVN默認端口是3690,你需要在防火墻上開放這個端口。
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
/sbin/service iptables save
你也可以通過svnserve的--listen-port選項來指定一個已經開放的其他端口,不過這樣的話客戶端使用也必須加上端口,如svn://192.168.1.18:9999/。
下載最新版本subversion,我這里選擇svn-1.3.2-setup.exe
下載 "Subversion Windows Service" 軟件包
下載 TortoiseSVN shell integration utility
2.安裝Subversion 服務器
由于我下載的是setup.exe版本,安裝程序安裝后會自動設置系統變量.如果你下載的是zip版就需要手動設置系統變量.
setup.exe版直接安裝就可以了.安裝到D:\Program Files\Subversion
首先創建SVN儲存庫(repository)
svnadmin create F:\lava\svn\
repository創建完畢后會在目錄下生成若干個文件和文件夾,dav目錄是提供給Apache與mod_dav_svn使用的目錄,讓它們存儲內部 數據;db目錄就是所有版本控制的數據文件;hooks目錄放置hook腳本文件的目錄;locks用來放置Subversion文件庫鎖定數據的目錄, 用來追蹤存取文件庫的客戶端;format文件是一個文本文件,里面只放了一個整數,表示當前文件庫配置的版本號;
3.配置SVN服務器
打開/conf/目錄,打開svnserve.conf找到一下兩句:
# [general]
# password-db = passwd
去之每行開頭的#,其中第二行是指定身份驗證的文件名,即passwd文件
同樣打開passwd文件,將
# [users]
# harry = harryssecret
# sally = sallyssecret
這幾行的開頭#字符去掉,這是設置用戶,一行一個,存儲格式為“用戶名 = 密碼”,如可插入一行:admin = admin888,即為系統添加一個用戶名為admin,密碼為admin888的用戶
4.運行SVN服務器
運行SVN服務
在命令行執行
svnserve --daemon --root F:\lava\svn
服務啟動,--daemon可簡寫為-d,--root可簡寫為-r,可以建立一個批處理文件并放在windows啟動組中便于開機就運行SVN服務,或者在這個地址http://clanlib.org/~mbn/svnservice/下載那個svnservice.exe文件,拷貝到E:\svn\bin目錄下,再從命令行下執行:
svnservice -install --daemon --root "E:\svn\Repository"
sc config svnservice start= auto
net start svnservice
1 apache server 。下載地址:www.apache.org
這里我們選擇2.0版
2 subversion 服務器包。下載地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
這里我們選擇1.4.3版
3 Subversion 客戶端。下載地址:http://sourceforge.net/projects/tortoisesvn/
這里我們選擇1.4.3版
二 創建和配置存儲倉庫:
1 解壓subversion服務器服務器包到本地任何目錄,打開CMD 命令框,cd 目錄到 subversion root/bin。
使用命令svnadmin :
svnadmin create D:\repository\subversion\projectname
(D:\repository\subversion 存儲庫根目錄. Projectname 工程名 )
如果執行成功,上述命令會在D:\repository\subversion\projectname 中自動生成多個文件和文件夾。
2 安裝apache server,所有的配置按照安裝程序提供的默認選項即可。
默認的安裝文件根路徑一般為:系統盤:\Program Files\Apache Group\Apache2
修改apache server root/conf/httpd.conf 文件
A 將LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
之前的# 去掉
B 在LoadModule list 的最后加入
如下內容:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
將subversion root/bin目錄下的.dll 和 .so文件Copy到apache server root/modules文件夾下
C 在文件最后 加入如下信息
<Location /svn>
DAV svn
SVNParentPath d:\svn\repository
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
加入上述配置信息后
http根目錄:http://yourServer/svn/">http://yourServer/svn/
subversion本地存儲庫根目錄: d:\svn\repository
使用“passwd”文件中username/password(用戶名/密碼)列表訪問http://yourServer/svn/">http://yourServer/svn/
此passwd密碼文件位于apache server root目錄下
可以通過apache server root/bin 目錄下的htpasswd.exe 命令生成
命令使用方式:htpasswd -c passwd <username>
-c 參數表示重新創建密碼文件,如果不需重新創建passwd文件而只增加用戶,將-c參數去掉。
注意:密碼文件生成后,確保passwd文件位于apache server root目錄下,如果不在直接Copy過去
3 安裝Subversion 客戶端
安裝完成后,系統的右鍵菜單會多出Subversion的控制選項,
三引入控管源碼
在需要控管的源碼文件夾上點擊右鍵,在菜單中順序選擇 TortoiseSVN--》Import
彈出一個對話框,在對話框的上部URL of repository:框中輸入前面創建的存儲庫
Http URL 本例為:http://yourServer/svn/">http://yourServer/svn/projectname
然后點擊OK按鈕即可。
整個過程就這樣簡單的做完了,現在你就可以和你的團體合作開發而不必要再為修改沖突擔心了
首先是軟件的安裝,我們這里要用到兩個軟件,一個是服務器端軟件subversion,一個是客戶端TortoiseSVN。兩個都是免費軟件。下載的地址在網上有很多地方介紹,但對可憐的教育網或沒有上國際網的同胞來說,那是一個比較困難的事實。因為網上給出的地址絕大部分是軟件的官方網址,是國外網。而在國外,本人幾乎很難搜到順利下載的地址。直到利用迅雷搜索,才順利解決軟件下載問題。服務器端和客戶端版本理論上應該配套,但客戶端版本比服務器端新也是沒問題的。
服務器軟件可能是不需要安裝的,那就更好。客戶端應該是屬于安裝形式。如果不懂無需安裝的軟件要進行一系列煩瑣的命令配置,最好是下載那些安裝型的,這樣,它會在安裝過程中自動進行一些必須的配置。服務器端和客戶端安裝的順序無關緊要。
服務器應該安裝服務器和客戶端,客戶機只需要安裝客戶端。事實上,如果服務器機不安裝服務器端軟件也行,客戶端TortoiseSVN自帶有服務器,但是在本人使用的過程中,遠程客戶端不方便訪問,并且提交的速度慢得難以忍受。如果進行單機版本管理的話,無需安裝服務端,也沒有問題。
服務器端:服務器端軟件subversion是屬于命令行式的,沒有圖形化操作界面,這對于生手來說有點麻煩,不過所幸的是,我們只需記住一條命令即可。其余的都可以通過客戶端來控制。這條命令是svnserve -d -r 版本存放地址。在這之前,使用右鍵的方式,創建一個版本存放倉庫等等,進行一些必要的操作(這里不再說明,這完全是得用客戶端軟件進行的,網上有很多說明,搜索TortoiseSVN的使用方法就可以得到完整說明)。雖然利用客戶端軟件,但進行地卻服務器軟件的操作同樣的效果。不妨假設先在E盤創建文件夾:E:\svnServer。并在此文件夾創建一版本存放倉庫。此時開始-運行-cmd,在出現的窗口中,利用上面提到的命令svnserve -d -r e:\svnServer。這樣就啟動了版本服務器了。注意不能關閉些窗口,否則版本服務器也隨之關閉。如果你使用的不是安裝型的軟件,那么這條命令會報錯。因為沒有進行環境變量的設置。
客戶端:對客戶端的操作不準備多說,網上隨處可見。只是在checkout或commit ,update等操作的時候,在URL of repository(版本倉庫地址)中輸入格式為svn://服務器ip/文件夾名。如svn://245.38.100.245/che。這里che是建在服務器文件夾e:\svnServer\che\。因為e:\svnServer是一個總倉庫,里面可管理多個項目,每個項目存放一個不同的文件夾。至于用戶密碼管理等等,這些網上都有很多說明。可以自己去找找。
最后附上SVN在linux下的注意事項和常用的命令
發生沖突時:
svn revert 扔掉自己的修改,使用倉庫中的文件版本
如果保留自己的改動,丟掉其它人的改動,則:
cp number.txt.mine number.txt
svn resolved number.txt
如果想用另外方式修改一下用svn resolved number.txt
svn log [-r 16:24] clock.java [|more]查看日志
svn blame number.txt 顯示一個或多個文件的內容。對于每個文件的每一行,顯示改動了那行的最后版本以及作出改動的人。
svn diff [-r 27:26] number.txt 查看(版本27與版本26之間)的差異
svn merge -r 27:26 number.txt 移除版本27中對number.txt的改動
svn merge -r 27:26 . 撤銷版本27對當前目錄的所有改動,點表示當前目錄
svn status [--show-updates] 查看工作版本的狀態(與服務器對照)
當鎖住文件的用戶對文件進行提交后,文件即被解鎖
svn add number.txt , svn commit 添加文件
svn co 簽出文件co即為checkout
svn info number.txt查看文件number.txt信息
svn move 移動文件或重命名
創建分支(發布或修正BUG):
svn mkdir -m "msg" svn://ip/sesame/branches 可以同時創建多個目錄,用空格分開即可
svn copy -m "msg" svn://ip//sesame/trunks svn://ip/sesame/branches/RB-1.0
svn commit
訪問發布分支,從分支簽出即可。
簽出到當前目錄的rb1.0文件夾 svn co svn://ip/ rb1.0