1. 怎樣搭建本地svn伺服器環境
1、通常的SVN伺服器是搭建在Linux等系統下,例如用Apache+SVN配置,Linux下的SVN性能會非常好,但配置有些繁瑣,如果SVN伺服器只有自己使用,那麼可以直接把SVN伺服器搭建在個人Windows環境下使用。
2、目前較為簡單的方案是VisualSVN Server。該SVN伺服器是免費的,支持Windows NT, 2000, XP and 2003等環境,安裝非常簡單。
3、安裝的時候可以選擇SVN走http協議還是https協議,http協議速度快一些,而https協議安全性好。兩者均可以從瀏覽器直接訪問SVN項目。
4、安裝完成後打開,可以看到一個微軟的MMS管理界面,在裡面可以輕松添加設置項目。用戶許可權可以使用Windows的用戶,也可以單獨新建用戶。如果原先有一個SVN數據,則可以在界面上導入原有的SVN數據。
2. 如何在windows上安裝部署設置SVN伺服器
一、准備工作
1、SVN伺服器:解壓縮包,可以從官方網站下載最新版本。
2、SVN客戶端:TortoiseSVN,即常說的小烏龜,是一個客戶端程序,用來與伺服器端通訊。
二、安裝伺服器和客戶端程序
1、SVN伺服器:直接解壓縮到某個文件夾下即可。示例路徑:c:\svn\
備註:如果下載的是msi程序,直接運行按提示安裝即可。
2、SVN客戶端:直接運行按提示安裝即可。示例路徑:C:\Program
Files\Subversion
三、建立版本庫(Repository):示例路徑:e:\svnroot。建立版本庫有兩種方法:
方法一,建立空目錄e:\svnroot\repos1,進入repos1文件夾,在空白處點擊右鍵,選擇「TortoiseSVN->Create
Repositoryhere...」,
方法二,建立空目錄e:\svnroot\repos2,進入DOS命令行,輸入如下命令:
svnadmincreate
e:\svnroot\repos2
四、運行SVN伺服器,啟動服務。啟動服務有兩種方法:
方法一,臨時啟動服務,在DOS下輸入如下命令:
svnserve
-d
-r
e:\svnroot\repos1
--listen-host
ip地址
--listen-port=埠號
說明:「listen-host」和「listen-port」可選。默認埠是3690,如果埠已經被佔用,可以通過選項listen-port指定埠號。
注意:請不要關閉命令行窗口,關閉窗口會把
svn服務就停止了。
方法二,啟動SVN服務為後台運行程序:
sc
create
svnserve
binPath=
"c:\svn\bin\svnserve.exe
--service
-r
e:\svnroot\repos1"
displayname=
"Subversion"
depend=Tcpip
start=
auto
說明一:
(1)sc是windows自帶的服務配置程序。svnserve是服務的名稱,可根據需求取名。
(2)參數binPath表示svnserve可執行文件的安裝路徑。
(3)--service表示以windows服務的形式運行,--r指明svnrepository的位置,service參數與r參數都作為binPath的一部分,因此與svnserve.exe的路徑一起被包含在一對雙引號當中。
(4)displayname表示在windows服務列表中顯示的名字,depend=Tcpip表示svnserve服務的運行需要tcpip服務,start=auto表示開機後自動運行。安裝服務後,svnserve要等下次開機時才會自動運行。
說明二:
(1)binPath的等號前面無空格,等號後面有空格。displayname、depend、start也一樣,service前面是--,不是-
,而r前面是-。
(2)若要卸載svn服務,則執行
sc
delete
svnserve
即可。
(3)從「sc」到「auto」是在同一個命令sc,必須寫在同一行。
(4)啟動服務命令:netstart
svnserve,停止服務命令:net
start
svnserve,也可以進入Windows提供的界面操作SVNService服務了,即控制面板—>服務。
(5)如果路徑中包括空格,一定要用「\」處理「"」號,例如上面的例子中如果svnserve.exe在「c:\programfiles\svn\」中,則命令應該寫為「binpath="\"c:\programfiles\svn\bin\svnserve.exe\"
五、配置用戶和許可權
(1)修改svnserve.conf,在e:\svn\repos1\conf目錄下,用文本編輯器打開svnserve.conf:
將:
#
anon-access
=
read
#
auth-access
=
write
#
password-db
=
passwd
改為
anon-access
=
read
auth-access
=
write
password-db
=
passwd
注意說明:
anon-access等列前面是沒有空格的。
anon-access
=
read表示沒通過用戶名密碼登錄的訪問只有讀的許可權,如果改為none則沒有用戶名密碼不能訪問
auth-access
=
write表示通過用戶名密碼登錄的有寫的許可權(當然讀的許可權也就有了)
password-db
=
passwd表示可以通過
用戶名
=
密碼
的方式在passwd文件中添加用戶
(2)修改同目錄的passwd文件,增加用戶帳號:
將:
[users]
#
harry
=
harryssecret
#
sally
=
sallyssecret
添加帳號:
[users]
#
harry
=
harryssecret
#
sally
=
sallyssecret
admin
=
admin
添加一個admin賬戶,密碼是admin。
6
六、初始化SVN,導入數據
選中要上傳SVN的文件夾,「右鍵
->TortoiseSVN
->
Import...」
,在彈出對話框的「URL
of
repository」輸入「svn://localhost/project1/」。在「Importmessage」輸入注釋,點擊OK,要求輸入帳號,輸入賬戶admin和密碼admin。
7
七,測試SVN
本地測試:新建一空文件夾test1,單擊右鍵,選擇「SVN
Checkout」,在「URL
of
repository」中輸入「svn://localhost/project1」。
其他機器測試:如果運行svnserve的主機IP地址是1.2.3.4,則URL輸入的內容就是「svn://1.2.3.4/project1」。
3. 如何在windows上安裝部署設置SVN伺服器
工具/原料
操作系統:Windows2003,32位
SVN Server版本:svn-win32-1.6.16
SVN Client版本:TortoiseSVN-1.6.16.21511
方法/步驟
一、准備工作
1、SVN伺服器:解壓縮包,可以從官方網站下載最新版本。
2、SVN客戶端:TortoiseSVN,即常說的小烏龜,是一個客戶端程序,用來與伺服器端通訊。
二、安裝伺服器和客戶端程序
1、SVN伺服器:直接解壓縮到某個文件夾下即可。示例路徑:c:\svn\
備註:如果下載的是msi程序,直接運行按提示安裝即可。
2、SVN客戶端:直接運行按提示安裝即可。示例路徑:C:\Program Files\Subversion
三、建立版本庫(Repository):示例路徑:e:\svnroot。建立版本庫有兩種方法:
方法一,建立空目錄e:\svnroot\repos1,進入repos1文件夾,在空白處點擊右鍵,選擇「TortoiseSVN->Create Repositoryhere...」,
方法二,建立空目錄e:\svnroot\repos2,進入DOS命令行,輸入如下命令:
svnadmincreate e:\svnroot\repos2
四、運行SVN伺服器,啟動服務。啟動服務有兩種方法:
方法一,臨時啟動服務,在DOS下輸入如下命令:
svnserve -d -r e:\svnroot\repos1 --listen-host ip地址 --listen-port=埠號
說明:「listen-host」和「listen-port」可選。默認埠是3690,如果埠已經被佔用,可以通過選項listen-port指定埠號。
注意:請不要關閉命令行窗口,關閉窗口會把 svn服務就停止了。
方法二,啟動SVN服務為後台運行程序:
sc create svnserve binPath= "c:\svn\bin\svnserve.exe --service -r e:\svnroot\repos1" displayname= "Subversion" depend=Tcpip start= auto
說明一:
(1)sc是windows自帶的服務配置程序。svnserve是服務的名稱,可根據需求取名。
(2)參數binPath表示svnserve可執行文件的安裝路徑。
(3)--service表示以windows服務的形式運行,--r指明svnrepository的位置,service參數與r參數都作為binPath的一部分,因此與svnserve.exe的路徑一起被包含在一對雙引號當中。
(4)displayname表示在windows服務列表中顯示的名字,depend=Tcpip表示svnserve服務的運行需要tcpip服務,start=auto表示開機後自動運行。安裝服務後,svnserve要等下次開機時才會自動運行。
說明二:
(1)binPath的等號前面無空格,等號後面有空格。displayname、depend、start也一樣,service前面是--,不是- ,而r前面是-。
(2)若要卸載svn服務,則執行 sc delete svnserve 即可。
(3)從「sc」到「auto」是在同一個命令sc,必須寫在同一行。
(4)啟動服務命令:netstart svnserve,停止服務命令:net start svnserve,也可以進入Windows提供的界面操作SVNService服務了,即控制面板—>服務。
(5)如果路徑中包括空格,一定要用「\」處理「"」號,例如上面的例子中如果svnserve.exe在「c:\programfiles\svn\」中,則命令應該寫為「binpath="\"c:\programfiles\svn\bin\svnserve.exe\"
五、配置用戶和許可權
(1)修改svnserve.conf,在e:\svn\repos1\conf目錄下,用文本編輯器打開svnserve.conf:
將:
# anon-access = read
# auth-access = write
# password-db = passwd
改為
anon-access = read
auth-access = write
password-db = passwd
注意說明:
anon-access等列前面是沒有空格的。
anon-access = read表示沒通過用戶名密碼登錄的訪問只有讀的許可權,如果改為none則沒有用戶名密碼不能訪問
auth-access = write表示通過用戶名密碼登錄的有寫的許可權(當然讀的許可權也就有了)
password-db = passwd表示可以通過 用戶名 = 密碼 的方式在passwd文件中添加用戶
(2)修改同目錄的passwd文件,增加用戶帳號:
將:
[users]
# harry = harryssecret
# sally = sallyssecret
添加帳號:
[users]
# harry = harryssecret
# sally = sallyssecret
admin = admin
添加一個admin賬戶,密碼是admin。
六、初始化SVN,導入數據
選中要上傳SVN的文件夾,「右鍵 ->TortoiseSVN -> Import...」 ,在彈出對話框的「URL of repository」輸入「svn://localhost/project1/」。在「Importmessage」輸入注釋,點擊OK,要求輸入帳號,輸入賬戶admin和密碼admin。
七,測試SVN
本地測試:新建一空文件夾test1,單擊右鍵,選擇「SVN Checkout」,在「URL of repository」中輸入「svn://localhost/project1」。
其他機器測試:如果運行svnserve的主機IP地址是1.2.3.4,則URL輸入的內容就是「svn://1.2.3.4/project1」。
Linux SVN 伺服器配置以及客戶端使用
2010-09-23 11:32:07
標簽:Linux 伺服器 SVN 休閑 客戶端
SVN簡介
SVN是一種版本管理系統,前身是CVS,是開源軟體的基石。即使在溝通充分的情況下,多人維護同一份源代碼的一定也會出現混亂的情況,版本管理系統就是為了解決這些問題。
SVN中的一些概念 :
a. repository(源代碼庫)
源代碼統一存放的地方
b. Checkout (提取)
當你手上沒有源代碼的時候,你需要從repository checkout一份
c. Commit (提交)
當你已經修改了代碼,你就需要Commit到repository
d. Update (更新)
當你已經Checkout了一份源代碼, Update一下你就可以和Repository上的源代碼同步,你手上的代碼就會有最新的變更
日常開發過程其實就是這樣的(假設你已經Checkout並且已經工作了幾天):Update(獲得最新的代碼) -->作出自己的修改並調試成功 --> Commit(大家就可以看到你的修改了)
如果兩個程序員同時修改了同一個文件呢?SVN可以Merge這兩個程序員的改動,對,合並,實際上SVN管理源代碼是 以行為單位的,就是說兩個程序員只要不是修改了同一行程序,SVN都會自動合並兩種修改。如果是同一行呢,SVN會提示文件Confict, 沖突,需要手動確認。
TortoiseSVN簡介
TortoiseSVN 是 Subversion 版本控制系統的一個免費開源客戶端,可以超越時間的管理文件和目錄。文件保存在中央版本庫,除了能記住文件和目錄的每次修改以外,版本庫非常像普通的文件 伺服器。你可以將文件恢復到過去的版本,並且可以通過檢查歷史知道數據做了哪些修改,誰做的修改。這就是為什麼許多人將 Subversion 和版本控制系統看作一種「時間機器」。
SVN的配置
1,配置好yum,檢查subversion安裝包
[root@svn ~]# yum list |grep subversion
subversion.i386 1.4.2-4.el5_3.1 base
subversion-devel.i386 1.4.2-4.el5_3.1 base
subversion-javahl.i386 1.4.2-4.el5_3.1 base
subversion-perl.i386 1.4.2-4.el5_3.1 base
subversion-ruby.i386 1.4.2-4.el5_3.1 base
[root@svn ~]# yum -y install subversion
測試安裝是否成功:
#svnserve --version 回車顯示版本說明安裝成功
[root@svn ~]# netstat –nat 查看默認TCP 3690埠是否監聽.
2,創建svn版本庫
[root@svn /]# mkdir -p /data/svndata
[root@svn /]# svnadmin create /data/svndata/winne winne為版本庫名稱
3,svnserve配置文件概述
svnserve.conf -- svn服務配置文件,該文件版本庫目錄的conf目錄下。
passwd -- 用戶名口令文件,該文件名在文件svnserve.conf中指定,預設為同目錄下的。
authz -- 許可權配置文件,該文件名也在文件svnserve.conf中指定,預設為同目錄下的。
conf/svnserve.conf 文件
配置項分為以下5項:
anon-access 控制非鑒權用戶訪問版本庫的許可權。
auth-access 控制鑒權用戶訪問版本庫的許可權。
password-db 指定用戶名口令文件名。
authz-db 指定許可權配置文件名,通過該文件可以實現以路徑為基礎的訪問控制。
realm 指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的
認證域相同,建議使用相同的用戶名口令數據文件
注:1.4版本anon-access = read 參數的bug .
anon-access = read時
客戶端Checkout(提取)的時候會有Not authorized to open root of edit operation"錯誤,改為none參數正常,
conf /Passwd 文件
user1 = user1
user2 = user2
conf /authz 文件
[groups] 設置組
admin = user1
[/] 根目錄許可權設置(就是「svndata」這個文件夾)
user1 = rw 用戶1許可權是:可讀寫
user2 = r 用戶2許可權是:可讀,不可寫
@admin = rw 設置組許可權
[svndata:/winne] 設置根目錄下「winne」文件夾的許可權
user1 = rw
user2 = r
…以此類推
4,啟動和停止SVN服務
啟動SVN服務:
[root@svn ~]# svnserve -d -r /data/svndata/
-d表示後台運行
-r 指定根目錄是 /data/svndata/
停止SVN服務:
ps -aux |grep svn
kill -9 進程殺掉
客戶端使用
Windows客戶端TortoiseSVN的使用
1, TortoiseSVN 客戶端的安裝
測試選擇的是TortoiseSVN 1.6.5客戶端 付中文漢化包.
2,客戶端的文件更新至伺服器(user1操作)
新建一個空目錄,右鍵Checkout (提取)
svn://192.168.103.26/winne
輸入passwd文件中的授權用戶帳號就可以了
在目錄中加入一些文件測試. 然後在空白地方右鍵點TortoiseSVN-> ADD 添加列表到伺服器端.此時並沒有真正拷貝到伺服器上,需再在Commit(提交)操作才會拷貝
在版本庫瀏覽器中就可以看到剛才提交的文件了,此時提交的版本為1.
3,客戶端在伺服器上拉讀取數據(user2操作)
User2 在機器上新建一個空目錄user2 , 右鍵Checkout (提取)
填入地址: svn://192.168.103.26/winne 輸出至G:\user2 確定
增加一個new.txt的文件,然後Commit (提交)之後提示許可權出錯,user2沒有寫的許可權,換成user1 的身份才可以提交成功.
Linux客戶端的使用
客戶端操作流程一般是:
用戶A: checkout (提取) -> add (添加新文件) -> commit (提交)
用戶B: SVN log(查看更新) -> update(更新版本)
1,SVN的安裝
yun –y install subversion
2,Linux svn的常用命令
()內為命令簡寫.
checkout (co) 提取
commit (ci) 提交
update (up) 更新
list (ls) 列表
3, checkout (co) 提取 svn伺服器上的文件
(user1)操作流程
[root@TEST ~]# svn co svn://192.168.103.26/winne
Authentication realm: <svn://192.168.103.26:3690> My First Repository
Password for 'root':
Authentication realm: <svn://192.168.103.26:3690> My First Repository
Username: user1 /輸入用戶名
Password for 'user1': /輸入密碼
A winne/Cosmic Ride - BeFour.lrc
A winne/20070716171657126.pdf
A winne/svnbook.pdf
revision 1. / checkout (co) 提取成功,看到Checked out版本為1
注:可以使用帶用戶名和密碼的訪問:
svn co --username user1 --password user1 svn://192.168.103.26/winne
[root@TEST ~]# ll
drwxr-xr-x 3 root root 4096 Sep 23 09:02 winne /winne目錄是SVN自動生成的
drwxr-xr-x 2 root root 4096 Jul 30 02:06 tasks
[root@TEST ~]# cd winne
[root@TEST winne]# ll
total 2868
-rw-r--r-- 1 root root 1566968 Sep 23 08:53 20070716171657126.pdf
-rw-r--r-- 1 root root 2397 Sep 23 08:53 Cosmic Ride - BeFour.lrc
-rw-r--r-- 1 root root 1354300 Sep 23 08:53 svnbook.pdf
4,user1修改文件並提交
[root@TEST winne]# vi testsvn.txt
[root@TEST winne]# svn add testsvn.txt /將testsvn.txt添加到庫中
A testsvn.txt
[root@TEST winne]# svn commit -m "test" testsvn.txt /注釋為test
Adding testsvn.txt
Transmitting file data .
Committed revision 2. /版本更新為2了
5,user2回window客戶端更新版本
回到Windows的客戶端看日誌, 版本已經更新為2了,注釋test,客戶端update就可以更新到新的版本了.
6, Windows客戶端的版本回滾
選中菜單中的update to verisiom ,選擇版本1即可.
7,Linux版本回滾操作:
[root@TEST winne]# svn up -r 1
4. 怎樣搭建本地svn伺服器環境
搭建SVN伺服器端:
1. 解壓縮svn到一個目錄, 例如c:\svn
2. 解壓縮svnservice的壓縮包, 將svnservice.exe放入c:\svn\bin
3. 安裝TortoiseSVN, 安裝完畢時會提示重新啟動計算機, 重啟完畢後安裝簡體中文語言包, 然後在隨便一個目錄右擊, 就會發現多出了一些SVN相關菜單, 選擇其中的TortoiseSVN, 再選擇子菜單"Settings", 設置Language為"中文(簡體)"
4. 打開"我的電腦", 建立一個存放svn信息的目錄, 例如c:\svnhome, 然後返回在c盤, 右擊這個svnhome目錄, 在出現的菜單中選擇TortoiseSVN, 再選擇子菜單"在此創建文件庫", 選擇fsfs方式即可 (注: 這里選擇創建文件庫實際上就相當於讓TortoiseSVN代替你進行了svnadmin create c:\svnhome的操作)
5. 在dos控制台狀態下cd c:\svn\bin 然後svnservice -install -d -r c:\svnhome 再net start svnservice來將其作為服務運行, 建議你再到控制面板-管理工具-服務中找到SVNService, 右擊選擇"屬性", 再將其啟動類型設置為"自動"
6. 打開c:\svnhome, 你會發現已經多了一些目錄和文件, 打開conf子目錄, 打開svnserve.conf文件, 這里行前凡是有#的都等於是被注釋忽略了, 你可以把#去掉讓那一行生效, 或者自己新添加行. 裡面的英文注釋已經詳細說明了各種設置的含義, 最後你設置[general]小節中行前沒有#號的內容為:
anon-access = none
auth-access = write
password-db = passwd
含義是:
未驗證用戶無任何許可權 (如果把none修改為read就是給予讀許可權)
已驗證用戶給予寫許可權 (當然也能讀)
密碼數據存放到passwd文件中
然後打開同目錄的passwd文件來設置帳戶:
同樣, 設置[users]小節中行前沒有#號的內容, 例如:
snowman=abc123
含義是:
用戶snowman的密碼為abc123
6. 打開"我的電腦", 在你需要進行版本控制的目錄上右擊, 選擇TortoiseSVN, 再選擇子菜單"導入...", 設置"文件庫url"為svn://localhost 點確定後就會提示文件正在導入. (注: 這里是svn文件庫與svn服務是同一台計算機的情況, 所以可用localhost, 其它機器如果要訪問svn服務, 應該用svn://svn伺服器的IP地址, 例如svn://10.0.0.52)
至此, SVN伺服器配置完成
客戶端配置:
1. 沒安裝TortoiseSVN的計算機先安裝它並重啟計算機. (注: 具體步驟參照前面搭建伺服器端的第3步)
2. 創建一個准備用來存放版本控制工程的目錄, 例如d:\project, 然後在"我的電腦"中右擊這個目錄, 選擇"SVN取出...", 設置"文件庫url"為svn://svn伺服器的IP地址, 接下來會問你用戶名和帳號, 你就填寫前面搭建伺服器端所設置的用戶snowman密碼abc123
(文件庫url可參照前面搭建伺服器端第6步的註解)
點確定後就會提示文件正在取出到d:\project
至此, SVN客戶端配置完成, 你會看到d:\project及其下面的文件都被標記了綠色對勾
客戶端的簡單日常使用:
1. 要取得工程的當前的最新版本, 右擊d:\project, 選擇"SVN更新"
2. 你更改工程後, 要將你的修改更新到SVN, 右擊d:\project, 選擇"SVN提交" (謹慎的話請先更新到SVN最新版本後再提交)