SVN部署與簡單使用,SVN部署簡單使用

來源:互聯網
上載者:User

SVN部署與簡單使用,SVN部署簡單使用

原文發表於cu:2016-05-24

參考文檔:

 svn伺服器有2種運行方式:

此文檔基於獨立伺服器部署,不依賴apache。

 

svn儲存版本資料也有2種方式:

BDB方式在伺服器中斷時,有鎖住資料的可能,FSFS方式相對安全,本文檔部署FSFS模式。

一.環境

Server: CentOS-6.7-x86_64

Server IP: 172.18.11.212

Client: Win7 x86_64

二.軟體擷取Server

Subversion官網:http://subversion.apache.org/

1.9.3版本下載:http://apache.fayea.com/subversion/subversion-1.9.3.tar.bz2

Client

TortoiseSVN官網:http://tortoisesvn.tigris.org/

1.9.3 x86_64位置版本下載:http://netix.dl.sourceforge.net/project/tortoisesvn/1.9.3/Application/TortoiseSVN-1.9.3.27038-x64-svn-1.9.3.msi

中文語言套件(版本必須匹配,否則語言套件不生效,用戶端設定中找不到):

http://pilotfiber.dl.sourceforge.net/project/tortoisesvn/1.9.3/Language%20Packs/LanguagePack_1.9.3.27038-x64-zh_CN.msi 

三.安裝svn 1. 準備系統檢查
#查看伺服器系統是否已經安裝svn#方式1rpm -qa | grep subversion#方式2,查看是否有執行檔案ll /usr/bin/svn* #方式3,如果有執行檔案,查看版本svnserve –version
依賴包常規編譯包
yum install autoconf libtool gcc gcc-c++ -y
openssl(optional)
#openssl主要在客戶機上通過serf使用或在apache伺服器使用。#檢測find / -name opensslv.h#如果找不到可以進行yum安裝或源碼安裝(略)yum install openssl openssl-devel –y

安裝之後找到opensslv.h的所在目錄,編譯svn時使用" --with-openssl="帶上路徑。

zlib(必需)
#zlib主要用作svn的二進位差異演算法,演算法取決於zlib壓縮。#檢測rpm qa | grep zlib*#如果找不到可以進行yum安裝或源碼安裝(http://zlib.net/,也可通過svn解壓後的指令碼獲得)yum install zlib zlib-devel –y

編譯svn時使用" --with-zlib="帶上路徑(針對非預設路徑的源碼安裝)。

2. 安裝svn解壓
#將下載的subversion-1.9.3.tar.bz2放置於/usr/local/src目錄,cd /usr/local/srctar -jxvf subversion-1.9.3.tar.bz2cd subversion-1.9.3
配套依賴包
#在subversion-1.9.3目錄內有1個可執行指令碼get-deps.sh,可以下載版本相關的依賴包;#執行之後subversion-1.9.3檔案夾多出了apr,apr-util,zlib,serf(與用戶端通過apache服務訪問svn相關),sqlite-amalgamation等檔案夾,其中apr,apr-util,zlib是subversion必需依賴包,系統中可能已安裝,但版本可能不匹配(尤其是apr,apr-util,所以使用此指令碼下載的依賴包最佳)。./get-deps.sh
apr/apr-util
cd apr./configure --prefix=/usr/local/aprmakemake installcd ../apr-util./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/aprmakemake install
編譯安裝
#不使用bdb方式,先行編譯時可能會有警示cd .../configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --without-berkeley-dbmakemake install
環境變數
#將svn的命令目錄加入環境變數vim /etc/profile    export PATH=/usr/local/svn/bin:$PATHsource /etc/profile#或者採用軟連結的方式將svn的命令加入到環境變數中,如下ln -s /usr/local/svn/bin/* /usr/bin/
驗證
#返回版本資訊即成功svnserve --version
3. 部署svn建立版本庫
#建立倉庫根目錄mkdir -p /svn#建立版本庫svntest,如果有多重專案可建多個版本庫mkdir -p /svn/svntestsvnadmin create /svn/svntest
版本配置庫檔案
#版本庫svntest的設定檔目錄cd /svn/svntest/conf/vim svnserve.conf#取消general項目下如下幾行的注釋;注意:每一行的都要頂頭,不能有空格,否則報錯#27/36/47行可以使用相對路徑(passwd/authz預設為版本庫conf下檔案,svntest為版本庫svntest根目錄),也可以指定絕對路徑19 anon-access = none                #必須設定,否則所有使用者不用密碼就可以訪問20 auth-access = write27 password-db = passwd36 authz-db = authz47 realm = svntest
使用者設定檔
cd /svn/svntest/conf/vim passwd[users]# harry = harryssecret# sally = sallyssecret#設定登入帳號與密碼#對使用者設定檔的修改立即生效,不需要重啟服務testuser = testsecret
許可權設定檔
#除如下修改外,預設配置可不變cd /svn/svntest/conf/vim authz#設定admin組,使用者testuser加入admin組,1個使用者組可含多個使用者,用逗號隔離[groups]admin = testuser#設定admin組對版本庫svntest根目錄及以下有讀寫權限,也可以針對單個使用者佈建,如 testuser = rw[svntest:/]@admin = rw#許可權設定檔中的賬戶必須已在使用者設定檔中定義,對許可權設定檔的修改立即生效,不需要重啟svn服務
authz檔案文法使用者組格式

[groups]

= ,

其中,1個使用者組可以包含1個或多個使用者,使用者間以逗號分隔

版本庫目錄格式

[<版本庫>:/項目/目錄]

@<使用者組名> = <許可權>

<使用者名稱> = <許可權>

其中,方框號內部分可以有多種寫法:

[/],表示根目錄及以下,根目錄在svnserve啟動時指定的,[/]表示對倉庫根目錄有設定許可權;

[版本庫:/] 表示對版本庫xxx設定許可權,如上文指定的svntest版本庫;

[版本庫:/項目] 表示對版本庫xxx中的某項目設定許可權;

[版本庫:/項目/目錄] 表示對版本庫xxx中的某項目的某目錄設定許可權;

許可權主體可以是使用者組、使用者或*,使用者組在前面加@,*表示全部使用者;

許可權可以是w、r、wr和空,空表示沒有任何許可權

啟動svn
# -d表示以daemon方式運行;# --listen-port指定監控連接埠,不指定時預設是3690連接埠,通過連接埠可開啟多個svn庫;# -r指定倉庫根目錄,注意不是某版本庫根目錄,根目錄的設定與用戶端登入地址有關聯,如果設定不當,可能會導致登入的諸多問題svnserve -d --listen-port 5690 -r /svn/#驗證ps aux | grep svn#停止svnkillall svnserve
開機啟動svn 
# 注意修改shell中的相關設定,如變數SVN_HOME,連接埠等# 請不要刪除# chkconfig: - 85 15與# description: svn server,否則無法使用chkconfig加入服務,會提示service svn does not support chkconfigvim /etc/rc.d/init.d/svn#!/bin/bash# chkconfig: - 85 15# description: svn serverSVN_HOME=/svnif [ ! -f "/usr/local/svn/bin/svnserve" ]thenecho "svnserver startup: cannot start"exitficase "$1" instart)echo "Starting svnserve…"/usr/local/svn/bin/svnserve -d --listen-port 5690 -r $SVN_HOMEecho "Finished!";;stop)echo "Stoping svnserve…"killall svnserveecho "Finished!";;restart)$0 stop$0 start;;*)echo "Usage: svn { start | stop | restart } "exit 1esac#賦予啟動指令碼許可權chmod 755 /etc/rc.d/init.d/svnchkconfig --add svnchkconfig --level 35 svn on#也可以簡單處置,如編輯rc.local檔案vim /etc/rc.d/rc.local/usr/local/svn/bin/svnserve -d –listen-port 5690 -r /svn
iptables
#開啟相應的連接埠,儲存iptables設定iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5690 -j ACCEPT/etc/rc.d/init.d/iptables save
四.用戶端TortoiseSVN

安裝TortoiseSVN用戶端及語言套件,訪問路徑svn://ip:port。

以下是簡單的使用教程。

資料匯入

選擇本地需要匯入到伺服器端的檔案目錄,,右鍵—>TortoiseSVN匯入,如下:

輸入版本庫地址,

 首次使用需要輸入使用者名稱/密碼,

資料檢出

選擇需要檢出的目錄,滑鼠右鍵,SVN檢出 -->匯出

 填寫匯出版本庫URL與需要匯出的目錄,

更新與提交

如果版本有更新,選擇相應的目錄,右鍵-->SVN更新;

如果本地做了更改,需要上傳到伺服器,選擇相應的目錄,右鍵-->SVN提交。

建議每次本地要做更新提交時,先SVN更新到伺服器端最新版本,在最新版本上做本地修改再提交。

添加檔案/目錄

如果在檢出目錄內新增了檔案/目錄,需要先添加,再SVN提交到版本庫,如下,

 如添加的檔案符號變更如下,然後才能SVN提交到版本庫。

刪除檔案/目錄

如果需要刪除伺服器端檔案/目錄,不能使用本地刪除,對刪除的檔案/目錄,右鍵-->TortoiseSVN-->刪除,回到上級目錄,SVN提交

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.