linux(CentOS release 6.5)環境搭建svn

  正文以前,說幾句關於svn和git的閒話。 html

  以前用的版本控制工具主要都是svn,隨着時間的推移,git以其強大靈活的分支管理功能受到大衆喜好。尤爲是多人同時開發時同一項目,且不一樣部分功能時,git的分支管理功能顯得尤其強大。而且git代碼庫的分佈式管理,使得各個客戶端代碼庫對服務器代碼庫的依賴大大減弱,代碼管理靈活而又強大。git

  上一個公司的項目類型就是那種,同一個項目多人開發不一樣模塊功能,而且上線時間各個不一樣。版本控制工具一直在用git,對於公司項目的狀況,仍是充分發揮了git的多分支管理功能,項目開發也算是有條不紊。後期空降到公司一個cto,cto以前是用的svn,沒有用過git,而後要求咱們都統一改換svn做爲版本控制工做。項目開發感受捉襟見肘。=_=!。centos

  固然今天寫這個博客跟以上沒有什麼必然聯繫。小夥伴們本身買了個服務器,以前在上面搭建了個svn。後來系統崩了,重裝了系統,svn也沒了。有個小夥伴最近要作東西,讓我再搭一下。上次搭過一次,感受不費什麼事。然而操做起來也是各類google和百度,好多也記不住了。因此此次寫個博客權做筆記了。固然只是svn最基本代碼管理功能。緩存

 

  1.先看看服務器上是否是已經安裝svn了。服務器

svnserve --version  //或者 svn --version

  若是已經安裝了svn了,那麼會顯示svn的版本信息。tcp

  

  若是提示是錯誤命令,那就是服務器還未安裝svn。須要你來安裝svn了。固然若是已經安裝了,你也能夠卸載掉舊版本(yum remove subversion),來安裝新版本的svn。 分佈式

yum install subversion

 

  2.svn安裝完成後,就能夠建立版本庫了。svn

svnadmin create /opt/svn/repository

  可能出現的問題,不存在相應的目錄結構。opt是服務器根目錄是存在的,而svn這個目錄結構多是不存在的。工具

  

  這個解決方法,只需在opt目錄下建立svn目錄就能夠了(mkdir svn)。 google

 

  3.svn代碼庫建立成功後,查看repository目錄下。 已經conf, db, format, hooks, locks, README.txt等文件。進入conf目錄,代碼庫的配置文件在該目錄下。有如下幾個文件authz, passwd, svnserve.conf。其中authz是權限控制,能夠設置哪些用戶能夠訪問哪些目錄,passwd是設置用戶和密碼的,svnserve.conf是設置svn相關操做的。

  a. svnserve.conf文件

  [general]  
  #匿名訪問的權限,可爲none,read,write  
  anon-access = none  

  #受權用戶的權限,可爲none,read,write  
  auth-access = write  

  #密碼數據文件的路徑,如不以/開頭,則爲相對路徑  
  password-db = passwd  

  #訪問控制文件的路徑,如不以/開頭,則爲相對路徑  
  authz-db = authz  

  #認證命名空間,subversion會在認證提示裏顯示,而且做爲憑證緩存的關鍵字,不一樣的代碼庫須要不一樣的realm  
   #咱們以前建立的倉庫repository,此處爲此倉庫名
  realm = repository

  b.passwd文件

  [users]  
  #用來設置帳戶及密碼,此處咱們創建三個帳戶
  admin = 123456
  xiaohua = 123465
  xiaopeng = 123456

  c.authz文件,該文件用來控制不一樣用戶對不一樣目錄的訪問權限。

  #能夠將passwd中創建的帳戶,劃分到不一樣組中,組名由本身定義。此處咱們定義兩個組admin(管理員)和developer(開發人員組)。
   [groups]  
  admin = admin
  developer = xiaohua,xiaopeng

  #定義不一樣目錄的訪問權限,設置咱們以前建立的repository根目錄權限。
  [repository:/]
  #設置admin組中成員,對本目錄有讀(r)和寫(
w)權限   @admin = rw
  #設置developer組中的成員,對本目錄只有讀(r)權限   @developer
= r   #設置其餘訪問者,對本目錄無任何權限   * =   #設置repository目錄下,test目錄(test後不要加/)權限。   [repository:/test]   @developer = rw   * =

  此處的@表示組名([groups]),固然去掉@符號,也能夠直接帳號來限制權限。xiaohua = rw,表示只對xiaohua這個帳戶具備讀寫權限。

 

  4.配置文件設置好之後,須要肯定下,防火牆對svn默認的端口3690是打開的。

vi /etc/sysconfig/iptables

  添加如下內容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

  保存後重啓防火牆

service iptables restart

 

  5.svn的啓動與中止。

  啓動svn服務

svnserve -d -r /opt/svn/repository

  -d:守護進程 -r:svn根目錄。啓動時能夠設置啓動的端口,svnserve -d -r /opt/svn/repository --listen-port 3691。若是不設置則默認爲3690。

  若是要中止svn服務,能夠經過kill進程id的方式來實現。

  ps aux|grep svn   #找到svnserve服務pid
  kill -9 pid  #結束進程

 

  6.客戶端(好比咱們本地的計算機)安裝svn工具(好比 TortoiseSVN)後,就能夠在本地checkout出咱們在服務器上搭建的代碼庫了,地址:svn://服務器ip/repository。

 

  以上。歡迎指正交流。

  相關參考:http://www.centoscn.com/CentosServer/ftp/2015/0115/4504.html                    http://www.jianshu.com/p/0a5e59e4532f         http://www.cnblogs.com/terryglp/articles/2451398.html

相關文章
相關標籤/搜索