svn服务器基本知识及搭建
聲明,本文大多數都是東拼西湊而來,并非本人完全出品,如有雷同,大家見諒!
另外,歡迎大家光顧我們公司游戲:航空大亨、船長日志、我是英雄(三款主打帶給大家)
一、svn概述
? ?svn(subversion)是一個開源的版本控制系統, 也就是說 Subversion 管理著隨時間改變的數據。這些數據放置在一個中央資料檔案庫 (repository) 中。這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變動。這樣你就可以把檔案恢復到舊的版本, 或是瀏覽文件的變動歷史。
二、svn中的一些基本概念
(1). repository(源代碼庫)
源代碼統一存放的地方
(2). Checkout (提取)
當你手上沒有源代碼的時候,你需要從repository checkout一份
(3). Commit (提交)
當你已經修改了代碼,你就需要Commit到repository
(4). Update (更新)
當你已經Checkout了一份源代碼, Update一下你就可以和Repository上的源代碼同步,你手上的代碼就會有最新的變更
三、不多廢話,殺入主題,安裝部署svn 獨立服務器。 ?(整合apache的安裝請自己搜索)
1.安裝方法:
? ?①yum安裝:yum -y install subversion(你的技術還停留在yum基礎么?)
? ?②源碼包編譯安裝(我比較喜歡源碼包安裝,因為有丁點難度,哈哈)
[root@gang ~]# wget http://www.apache.org/dist/subversion/subversion-1.8.5.tar.gz
[root@gang opt]# tar zxf subversion-1.8.5.tar.gz
[root@gang opt]# cd subversion-1.8.5
[root@gang subversion-1.8.5]# mkdir -p /usr/local/webserver/
2、別急著安裝,現在來安裝依賴包
1).安裝apr-1.4.6.tar.gz
[root@gang webserver]# tar zxf apr-1.4.6.tar.gz
[root@gang webserver]# cd apr-1.4.6
[root@gang apr-1.4.6]# ./configure --prefix=/usr/local/webserver/apr
[root@gang apr-1.4.6]# make && make install
2).安裝apr-util-1.4.1.tar.gz
[root@gang webserver]# tar zxf apr-util-1.4.1.gz
[root@gang webserver]# cd apr-util-1.4.1
[root@gang apr-util-1.4.1]# ./configure --prefix=/usr/local/webserver/apr-util --with-apr=/usr/local/webserver/apr
[root@gang apr-util-1.4.1]# make && make install
3).安裝pcre-8.32.tar.gz
[root@gang webserver]# tar zxf pcre-8.32.tar.gz
[root@gang webserver]# cd pcre-8.32
[root@gang pcre-8.32]# ./configure --prefix=/usr/local/webserver/pcre && make && make install
4).安裝zlib-1.2.5.tar.gz
[root@gang webserver]# tar zxf zlib-1.2.5.gz
[root@gang webserver]# cd zlib-1.2.5
[root@gang zlib-1.2.5]# ./configure ?&& make && make install
----此處的./configure不可隨意的--prefix,不然會導致ssh服務,啟動異常,或者之后svn錯誤
5).獲取sqlite文件支持
[root@gang webserver]# wget http://cznic.dl.sourceforge.net/project/sqlite.mirror/SQLite%203.7.12/sqlite-amalgamation-3071200.zip
[root@gang webserver]# unzip sqlite-amalgamation-3071200.zip
[root@gang webserver]# mkdir -p /usr/local/webserver/subversion-1.8.5/sqlite-amalgamation/
[root@gang webserver]# cp sqlite-amalgamation-3080200/* subversion-1.8.5/sqlite-amalgamation/
三、正式安裝
[root@gang subversion-1.8.5]# ./configure --prefix=/usr/local/webserver/svn --with-apr=/usr/local/webserver/apr --with-apr-util=/usr/local/webserver/apr-util --with-zlib=/usr/local/webserver/zlib/ --without-berkeley-db --with-openssl=/usr/include/openssl/
#svn存儲版本數據有2種方式:BDB(一種事務安全型表類型)和FSFS(一種不需要數據庫的存儲系統)。因為BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點
[root@gang subversion-1.8.5]# make ?&& make install
至此svn安裝完畢(如果各位遇到其他問題,請咨詢度娘和谷歌)
export "PATH=$PATH:/usr/local/webserver/svn/bin" >> /etc/profile
echo "
/usr/local/lib
/usr/local/lib64
" ?>> /etc/ld.so.conf
[root@gang ~]# ldconfig
四、正式使用
?1.創建版本庫
[root@gang ~]# svnadmin create /data/svndata/20140116 ? ?---20140116是版本庫名稱
輸入后,會在 “創建的目錄下”生成如下三個文件 :/data/svndata/20140116/conf
svn服務配置文件 svnserve.conf
用戶口令文件 passwd
權限配置文件 authz
2.配置文件詳解及案例
No1. ?svnserve.conf 文件,該文件配置項分為以下5項:(每行的配置前不能有空格)
?anon-access: 控制非鑒權用戶訪問版本庫的權限。
?auth-access:控制鑒權用戶訪問版本庫的權限。
?password-db: 指定用戶名口令文件名。
?authz-db:指定權限配置文件名,通過該文件可以實現以路徑為基礎的訪問控制。
?realm:指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數據文件
No2. passwd里邊保存用戶和密碼
[users] ----定義用戶和用戶密碼
# harry = harryssecret
# sally = sallyssecret
admin = 追夢創游 ? ?
guest = 航空大亨
user1 = 船長日志
user2 = “Doodle Fill For Tango”
gang = Linux
word = 運維工程師
chenjian = chenjianpwd
No3. authz ?文件
[groups] ----定義用戶組 ? ?左側為組,又側為包含用戶
admin = admin, gang
group1 = user1, user11
group2 = user2
docs = word
training = chenjian
--這里把不同用戶放到不同的組里面,下面在設置目錄訪問權限的時候,用目錄來操作就可以了。
# 為所有庫指定默認訪問規則
# 所有人可以讀,管理員可以寫,危險分子沒有任何權限
[/] ? ? ?--對應目錄:/data/svndata
* = r
@admin = rw ? ? ? ----admin組的用戶可讀寫
dangerman = ? ? ? ----危險用戶沒權限
# 允許開發人員可以完全訪問他們的項目版本庫
[proj1:/] ? ? ? ? ? ?----定義group組 1 的用戶可以讀寫
@group1 = rw ? ? ? ? ----帶@ 的,代表組, 不帶@ 的表示對用戶權限的設定
[proj2:/]
@group2 = rw
[bigproj:/]
@grou1 = rw
@group2 = rw
trevor = rw
# 文檔編寫人員對所有的docs目錄有寫權限
[/trunk/doc]
@docs = rw
# 培訓人員可以完全訪問培訓版本庫
[TrainingRepos:/] ? ? ? ?-------版本庫目錄格式:
@training = rw ? ? ? ? ? ? ? ? ? ? ? [<版本庫>:/項目/目錄]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @<用戶組名> = <權限>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? <用戶名> = <權限>
? 2. svn服務控制
開啟svn服務:svnserver –d –r /var/svndata ? ?-- ?-d表示后臺運行 ?-r 表示根目錄
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? --listen-port 指定監聽端口
關閉svn服務: killall svnservice 或者kill -9 pid
五、客戶端的使用。
根據你的系統32bit/64bit下載TortoiseSVN 1.7-1.8內的版本
把文件上傳到SVN版本庫后,上傳的文件不再以文件原來的格式存儲,而是被svn以它自定義的格式壓縮成版本庫數據,存放在版本庫中(/data/svndata/20140116/db/revs中)。
附注: svn最重要的一點,權限分配!
原文地址請參照:http://blog.csdn.net/tianlesoftware/article/details/6119231
轉載于:https://blog.51cto.com/jishuweiwang/1352324
總結
以上是生活随笔為你收集整理的svn服务器基本知识及搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10个最好的 jQuery 视频插件(转
- 下一篇: 在线网站原型设计工具Cacoo