安裝說明
系統(tǒng)環(huán)境:CentOS安裝方式:yuminstall(源碼安裝容易產(chǎn)生版本兼容的問題)安裝軟件:系統(tǒng)自動下載SVN軟件
Linuxsvn服務端配置
檢查已安裝版本
#檢查是否安裝了低版本的SVN[root@localhost/]#rpm-qasubversion
#如果存儲舊版本,卸載舊版本SVN[root@localhostmodules]#yumremovesubversion
安裝SVN
[root@localhostmodules]#yuminstallsubversion
驗證安裝
檢驗已經(jīng)安裝的SVN版本信息[root@localhostmodules]#svnserve--version
svnserve,版本1.6.11(r934486)編譯于Jun232012,00:44:03
版權(quán)所有(C)2000-2009CollabNet。Subversion是開放源代碼軟件,請參閱http://subversion.tigris.org/站點。此產(chǎn)品包含由CollabNet(http://www.Collab.Net/)開發(fā)的軟件。
下列版本庫后端(FS)模塊可用:
*fs_base:模塊只能操作BDB版本庫。*fs_fs:模塊與文本文件(FSFS)版本庫一起工作。
CyrusSASL認證可用。
代碼庫創(chuàng)建
SVN軟件安裝完成后還需要建立SVN庫[root@localhostmodules]#mkdir-p/opt/svn/#創(chuàng)建SVN根目錄[root@localhostmodules]#svnadmincreate/opt/svn/repo#創(chuàng)建repo測試庫執(zhí)行上面的命令后,自動建立repo測試庫,查看/opt/svn/repo文件夾發(fā)現(xiàn)包含了conf,db,format,hooks,locks,README.txt等文件,說明一個SVN庫已經(jīng)建立。
配置代碼庫
進入上面生成的文件夾conf下,進行配置[root@localhostmodules]#cd/opt/svn/repo/conf
用戶密碼passwd配置
[root@localhostpassWord]#cd/opt/svn/repo/conf[root@adminconf]#vimpasswd修改passwd為以下內(nèi)容:
[users]#harry=harryssecret#sally=sallyssecret
hello=123
aaa=123
www=123
用戶名=密碼
這樣我們就建立了hello用戶,123密碼
以上語句都必須頂格寫,左側(cè)不能留空格,否則會出錯.
權(quán)限控制authz配置
[root@adminconf]#vimauthz目的是設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內(nèi)容:
[groups]#組
admin=hello,www#創(chuàng)建一個admin組,將用戶加入到組
[/]#根目錄權(quán)限設置(就是“svn”這個文件夾)
aaa=rw#aaa對svn下的所有版本庫有讀寫權(quán)限
[repo:/]#repo:/,表示對repo版本庫下的所有資源設置權(quán)限
@admin=rw#admin組的用戶對repo版本庫有讀寫權(quán)限
[repo2:/occi],,表示對版本庫repo2中的occi項目設置權(quán)限
[repo2:/occi/aaa],,表示對版本庫2中的occi項目的aaa目錄設置權(quán)限 權(quán)限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權(quán)限可以是w、r、wr和空,空表示沒有任何權(quán)限。
以上語句都必須頂格寫,左側(cè)不能留空格,否則會出錯.
服務svnserve.conf配置
[root@adminconf]#vimsvnserve.conf
追加以下內(nèi)容:
[general]#匿名訪問的權(quán)限,可以是read,write,none,默認為readanon-access=none#使授權(quán)用戶有寫權(quán)限auth-access=write#密碼數(shù)據(jù)庫的路徑password-db=passwd#訪問控制文件authz-db=authz#認證命名空間,subversion會在認證提示里顯示,并且作為憑證緩存的關鍵字
realm=/opt/svn/repo
以上語句都必須頂格寫,左側(cè)不能留空格,否則會出錯.
配置防火墻端口(或直接關閉防護墻)
[root@localhostconf]#vim/etc/sysconfig/iptables添加以下內(nèi)容:-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3690-jACCEPT保存后重啟防火墻[root@localhostconf]#serviceiptablesrestart
啟動SVN
svnserve-d-r/opt/svn/#指定SVN根目錄
查看SVN進程
ps-ef|grepsvnserve
使用import導入文件
svnimport/mnt/file:///opt/svn/repo/-m"注釋"
增加/mnt/hgfs
提交后的版本為1。
檢測SVN端口
[root@localhostconf]#netstat-ln|grep3690tcp000.0.0.0:36900.0.0.0:*LISTEN
停止重啟SVN
[root@localhostpassword]#killallsvnserve//停止[root@localhostpassword]#svnserve-d-r/opt/svn/repo//啟動
如果已經(jīng)有svn在運行,可以換一個端口運行svnserve-d-r/opt/svn/--listen-port3391
啟服務器及測試:
1,啟SVN服務,并指定SVN的根目錄:
[root@youxia201test]#svnserve-d-r/opt/svn/
使用checkout導出文件
在這里特別的要注意,/opt/svn是倉庫的根目錄,不要和[svntest:/]目錄重疊了。如果重疊是會提示錯誤
[root@localhostconf]#svncheckoutsvn://127.0.0.1/repo#本機測試,必需寫錯127.0.0.1
認證領域:<svn://127.0.0.1:3690>/opt/svn/repo
“root”的密碼:直接回車
認證領域:<svn://127.0.0.1:3690>/opt/svn/repo
用戶名:hello
“hello”的密碼:
-----------------------------------------------------------------------
注意!你的密碼,對于認證域:
<svn://127.0.0.1:3690>/opt/svn/repo
只能明文保存在磁盤上!如果可能的話,請考慮配置你的系統(tǒng),讓Subversion
可以保存加密后的密碼。請參閱文檔以獲得詳細信息。
你可以通過在“/root/.subversion/servers”中設置選項“store-plaintext-passwords”為“yes”或“no”,
來避免再次出現(xiàn)此警告。
-----------------------------------------------------------------------
保存未加密的密碼(yes/no)?yes
取出版本1。
不讓它每次輸入都提示yes/on的辦法
編輯vim/root/.subversion/servers找到下行去掉#號將on改為yes,上面綠色部分已提示
store-plaintext-passwords=no
---------------------------------------------------------------------------------------------------------------------
到此,SVN服務端就配置完成了
Linuxsvn客戶端配置
檢查已安裝版本
#檢查是否安裝了低版本的SVN[root@localhost/]#rpm-qasubversion
#如果存儲舊版本,卸載舊版本SVN[root@localhostmodules]#yumremovesubversion
安裝SVN
[root@localhostmodules]#yuminstallsubversion
驗證安裝
檢驗已經(jīng)安裝的SVN版本信息[root@localhostmodules]#svnserve--version
svnserve,版本1.6.11(r934486)編譯于Jun232012,00:44:03
版權(quán)所有(C)2000-2009CollabNet。Subversion是開放源代碼軟件,請參閱http://subversion.tigris.org/站點。此產(chǎn)品包含由CollabNet(http://www.Collab.Net/)開發(fā)的軟件。
下列版本庫后端(FS)模塊可用:
*fs_base:模塊只能操作BDB版本庫。*fs_fs:模塊與文本文件(FSFS)版本庫一起工作。
CyrusSASL認證可用。
SVN客戶端下載文件
[root@localhost~]#mkdir/svn
[root@localhost~]#cd/svn/#將svn服務上提取的文件放在此目錄下
[root@localhostsvn]#svncheckoutsvn://192.168.233.203/repo#svn服務器地址
輸入用戶名密碼:hello/123
注:可以使用帶用戶名和密碼的訪問:
svnco--usernamehello--password123svn://192.168.233.203/repo
SVN版本庫更新
svnup/svn/repo
上傳文件到服務器
[root@localhost]#touch/svn/repo/test.php#所有的動作必須在repo版本庫中完成
[root@localhost]#svnadd/svn/repo/test.php#上傳test.php文件到svn服務器
刪除服務器上的文件
[root@localhost]#svnrm/svn/repo/test.php--force
查看版本庫內(nèi)容
[root@localhost~]#svnlist/svn/repo/
------------------------------------------------------------------------------------------------------------------------
到此,SVN客戶端就配置完成了
創(chuàng)建版本庫:終端輸入:svnadmincreate[路徑]該路徑可以是相對路徑,例如,當前在home/user/svn/目錄下,輸入svnadmincreatemyPRoject,則該版本庫會被創(chuàng)建在home/user/svn/目錄下,新建一個文件夾名為myproject,其中便是版本庫的文件了。將文件導入版本庫:終端輸入:svnimport[源路徑][目標版本庫路徑]-m[日志信息]源路徑可以是相對路徑,導入時會遞歸導入源路徑下的所有文件和文件夾,目標版本庫路徑需要絕對目錄(反正我試驗是這樣的),例如版本庫的目錄是:home/user/svn/myproject/。則應該這樣寫:file:///home/user/svn/myproject/例如將當前目錄導入版本庫myproject:svnimport.file:///home/user/svn/myproject-m"導入文件"從版本庫導出:導入后原文件并未被納入版本管理,若想獲得受版本控制的文件,就需要從版本庫導出終端輸入:svnco[版本庫路徑]例如將myproject庫中的文件導出到當前目錄:svncofile:///home/user/svn/myproject.
新聞熱點
疑難解答
圖片精選