<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    空間站

    北極心空

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
    在linux下安裝配置svn獨(dú)立服務(wù)器
      subversion(以下簡稱svn)是近年來崛起的版本管理工具,是cvs的接班人。
      svn服務(wù)器有2種運(yùn)行方式:獨(dú)立服務(wù)器和借助apache。2種方式各有利弊。
      svn存儲版本數(shù)據(jù)也有2種方式:BDB和FSFS。因?yàn)锽DB方式在服務(wù)器中斷時(shí),有可能鎖住數(shù)據(jù)(我在搞ldap時(shí)就深受其害,沒法根治),所以還是FSFS方式更安全一點(diǎn)。
    1. svn服務(wù)器安裝
    操作系統(tǒng): Redhat Linux AS4
    安裝包獲取:
    編譯:
    以root用戶登錄。
    將subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz傳到服務(wù)器。
    tar xfvz subversion-1.4.0.tar.gz
    tar xfvz subversion-deps-1.4.0.tar.gz
    cd subversion-1.4.0
    ./configure --prefix=/opt/svn --without-berkeley-db –with-zlib
    (注:以svnserve方式運(yùn)行,不加apache編譯參數(shù)。以fsfs格式存儲版本庫,不編譯berkeley-db)
    make clean
    make
    make install
    vi /etc/profile,在/etc/profile最后加入:
    PATH=$PATH:/opt/svn/bin
    export PATH
    測試:
    svnserve –version
    如果顯示如下,安裝成功:
    svnserve, version 1.4.0 (r21228)
      compiled Oct 12 2006, 10:18:56
    Copyright (C) 2000-2006 CollabNet.
    Subversion is open source software, see http://subversion.tigris.org/
    This product includes software developed by CollabNet (http://www.Collab.Net/).
    The following repository back-end (FS) modules are available:
    * fs_fs : Module for working with a plain file (FSFS) repository.
    2. svn配置
    建立版本庫目錄,可建多個(gè):
    mkdir -p /opt/svndata/repos1
    mkdir -p /opt/svndata/repos2
    建立版本庫:
    svnadmin create /opt/svndata/repos1
    svnadmin create /opt/svndata/repos2
    修改版本庫配置文件:
    版本庫1:
    vi /opt/svndata/repos1/conf/svnserve.conf
    內(nèi)容修改為:
    [general]
    anon-access = none
    auth-access = write
    password-db = /opt/svn/conf/pwd.conf
    authz-db = /opt/svn/conf/authz.conf
    realm = repos1
    版本庫2:
    vi /opt/svndata/repos2/conf/svnserve.conf
    內(nèi)容修改為:
    [general]
    anon-access = none
    auth-access = write
    password-db = /opt/svn/conf/pwd.conf
    authz-db = /opt/svn/conf/authz.conf
    realm = repos2
      即除realm = repos2外,其他與版本庫1配置文件完全相同。如果有更多的版本庫,依此類推。
    配置允許訪問的用戶:
    vi /opt/svn/conf/pwd.conf
      為了簡化配置,2個(gè)版本庫共用1個(gè)用戶配置文件。如有必要,也可以分開。
    注意:對用戶配置文件的修改立即生效,不必重啟svn。
    文件格式如下:
    [users]
    <用戶1> = <密碼1>
    <用戶2> = <密碼2>
      其中,[users]是必須的。下面列出要訪問svn的用戶,每個(gè)用戶一行。示例:
    [users]
    alan = password
    king = hello
    配置用戶訪問權(quán)限:
    vi /opt/svn/conf/authz.conf
      為了簡化配置,3個(gè)版本庫共用1個(gè)權(quán)限配置文件/opt/svn/conf/pwd.conf。如有必要,也可以分開。文件中定義用戶組和版本庫目錄權(quán)限。
    注意:
    * 權(quán)限配置文件中出現(xiàn)的用戶名必須已在用戶配置文件中定義。
    * 對權(quán)限配置文件的修改立即生效,不必重啟svn。
    用戶組格式:
    [groups]
    <用戶組名> = <用戶1>,<用戶2>
    其中,1個(gè)用戶組可以包含1個(gè)或多個(gè)用戶,用戶間以逗號分隔。
    版本庫目錄格式:
    [<版本庫>:/項(xiàng)目/目錄]
    @<用戶組名> = <權(quán)限>
    <用戶名> = <權(quán)限>
      其中,方框號內(nèi)部分可以有多種寫法:
    /,表示根目錄及以下。根目錄是svnserve啟動時(shí)指定的,我們指定為/opt/svndata。這樣,/就是表示對全部版本庫設(shè)置權(quán)限。
    repos1:/,表示對版本庫1設(shè)置權(quán)限
    repos2:/occi, ,表示對版本庫2中的occi項(xiàng)目設(shè)置權(quán)限
    repos2:/occi/aaa, ,表示對版本庫2中的occi項(xiàng)目的aaa目錄設(shè)置權(quán)限
      權(quán)限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權(quán)限可以是w、r、wr和空,空表示沒有任何權(quán)限。
    示例:
    [groups]
    admin = alan
    [/]
    @admin = rw
    [repos1:/occi/aaa]
    king = rw
    [repos2:/pass]
    king =
    刪除無用文件:
    rm /opt/svndata/repos1/conf/authz
    rm /opt/svndata/repos1/conf/passwd
    rm /opt/svndata/repos2/conf/authz
    rm /opt/svndata/repos2/conf/passwd
    3. 啟動svn
    建立啟動svn的用戶:
    useradd svn
    passwd svn
    根據(jù)提示為用戶svn設(shè)置密碼
    允許用戶svn訪問版本庫:
    chown –R svn:svn /opt/svndata
    chown –R svn:svn /opt/data
    啟動svn:
    su - svn -c "svnserve -d --listen-port 9999 -r /opt/svndata"
    其中:
    su – svn表示以用戶svn的身份啟動svn
    -d表示以daemon方式(后臺運(yùn)行)運(yùn)行
    --listen-port 9999表示使用9999端口,可以換成你需要的端口。但注意,使用1024以下的端口需要root權(quán)限
    -r /opt/svndata指定根目錄是/opt/svndata
    檢查:
    ps –ef|grep svnserve
    如果顯示如下,即為啟動成功:
    svn    6941   1 0 15:07 ?    00:00:00 svnserve -d --listen-port 9999 -r /opt/svndata

    檢測服務(wù)是否開啟:netstat -ntlp如果看到3690的端口正常開放了,證明SVN啟動了。]
    下面是機(jī)器上的端口顯示:
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address         Foreign Address              State        PID/Program name
    tcp         0       0 0.0.0.0:32769         0.0.0.0:*                    LISTEN       2611/rpc.statd
    tcp         0       0 0.0.0.0:111           0.0.0.0:*                    LISTEN       2591/portmap
    tcp         0       0 0.0.0.0:113           0.0.0.0:*                    LISTEN       2827/xinetd
    tcp         0       0 127.0.0.1:631         0.0.0.0:*                    LISTEN       4860/cupsd
    tcp         0       0 127.0.0.1:25          0.0.0.0:*                    LISTEN       2846/sendmail: acce
    tcp         0       0 :::3690               :::*                        LISTEN       5513/svnserve
    tcp         0       0 :::22                 :::*                        LISTEN       2812/sshd
    下面這個(gè)就是了:
    tcp         0       0 :::3690               :::*                        LISTEN       5513/svnserve
    好了,svn已經(jīng)架起來了
    主頁 | 照片 | 視頻 | 收藏
    Onion的天空
    Live In ShangHai.Mon 7 Aug 2006在 Linux/Apache 2.2 上配置SVN服務(wù)器
    By Onion under Linux   | Tag : Apache, Linux, svn, Ubuntu
    You can skip to the end and leave a response. Pinging is currently not allowed.
    準(zhǔn)備,下載所需要文件.
    檢查已安裝的 Apache2 是否已經(jīng)安裝了 mod_dav .
    編譯SVN,遇到的問題和解決方法
    使用 默認(rèn)文件系統(tǒng)(fsfs) 保存數(shù)據(jù)
    使用 Berkeley DB 保存數(shù)據(jù)
    配置Apache和SVN,測試.
    其它小結(jié)
    從Windows平臺上數(shù)據(jù)轉(zhuǎn)移
    配置文件,使用其支持對文件中的 $Id$ 標(biāo)簽每次提交的時(shí)候自動更新版本信息.
    基于路徑的權(quán)限控制
    常用SVN命令
    相關(guān)資源
    * 準(zhǔn)備,下載所需要文件.
    本文測試環(huán)境:
    ubuntu 6.06 LTS (kernel 2.6.15-25-k7,gcc-4.0.3) /ubuntu server (2.6.15-26-server,gcc-4.0.4)
    Subversion 1.3.2
    Apache 2.2.2
    最新的版本 Subversion 可以在這里找到 :http://subversion.tigris.org/project_packages.html
    * 檢查已安裝的 Apache2 是否已經(jīng)安裝了 mod_dav .
    如果已經(jīng)成功安裝了Apache,使用 httpd -M 來查看有沒有安裝 dav_module,如果沒有的話 必須附加 ‘–enable-dav’ ‘–enable-dav-fs’ 兩個(gè)參數(shù)重新編譯 Apache,否則即使編譯通過了svn,apache也會啟動不起來.
    如何編譯 Apache 請參考我另外一篇文章.
    * 編譯SVN,遇到的問題和解決方法.
    使用默認(rèn)的文件系統(tǒng)保存數(shù)據(jù).
    最終完整通過安裝和測試的編譯參數(shù)為:
    ./configure --with-apxs=/usr/local/apache2/bin/apxs \
    --with-apr=/home/src/server/httpd-2.2.2/srclib/apr \
    --with-apr-util=/home/src/server/httpd-2.2.2/srclib/apr-util
    make
    make install
    其中 /home/src/server/ 為 httpd-2.2.2 源代碼所在文件夾,根據(jù)實(shí)際情況調(diào)整一下.
    ◆ 遇到問題:
    1) --with-apr 和 --with-apr-util 如果沒有加上的話,即使編譯成功了也會出現(xiàn)
    Can’t set position pointer in file ‘/home/svn/repos/db/revs/0′: Invalid argument
    這樣的錯(cuò)誤提示.
    2) 暫時(shí)不能使用 Berkeley DB [* 已解決]
    svn保存文件更新數(shù)據(jù)庫的方法有兩個(gè),一種是直接使用 fs (filesystem)來保存,另一種是通過Oracle提供支持的開源數(shù)據(jù)庫 Berkeley DB 進(jìn)行保存。但是如果加上 –with-berkeley-db=/usr/local/BerkeleyDB.4.4 就會configure時(shí)就會報(bào)錯(cuò).
    configure: error: APR-UTIL was installed independently, it won’t be
    possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4
    我想 apr-unit 暫時(shí)不支持吧,我們就用默認(rèn)的fs好了.
    3) 在make 的時(shí)候可能會遇到缺少 srclib/apr/libapr-1.la,srclib/apr-util/libaprutil-1.la 兩個(gè)文件,找不到而make error.
    解決辦法:/usr/local/apache2/lib/ 中找到,將其復(fù)制到源代碼文件夾相應(yīng)的位置中.
    Update!!
    使用 BerkeleyDB 保存數(shù)據(jù).
    1) 安裝 BerkeleyDB
    tar xzvf db-4.3.29.tar.gz
    cd /usr/local/src/db-4.3.29/build_unix
    ../dist/configure --enable-compat185
    make
    make install
    2) 更新apr和apr-util源代碼
    # 清理編譯后的.la文件
    cd /usr/local/src/httpd-2.2.3
    make clean
    cd /usr/local/src/subversion-1.3.2
    rm -rf apr
    rm -rf apr-util
    cp -rf /usr/local/src/httpd-2.2.3/srclib/apr ./
    cp -rf /usr/local/src/httpd-2.2.3/srclib/apr-util/ ./
    3) 編譯安裝
    ./configure --with-apxs=/usr/local/apache2/bin/apxs \
    --with-berkeley-db=/usr/local/BerkeleyDB.4.3 \
    --with-ssl
    make
    make install
    ◆ 遇到問題:
    1) BerkeleyDB 版本不能大于 4.3.否則同樣會出現(xiàn)以下錯(cuò)誤.
    configure: error: APR-UTIL was installed independently, it won’t be
    possible to use the specified Berkeley DB: /usr/local/BerkeleyDB.4.4
    主要是apr-util 暫時(shí)不支持4.4的版本.
    2) 必須更新apr,apr-util 源代碼.
    subversion-1.3.2 自帶的 apr-util 的版本是0.9.6的,必須升級為 1.2.7 雖然能編譯過去。但在 svn checkout 的時(shí)候會提示
    svn: REPORT request failed on ‘/!svn/vcc/default’
    svn: REPORT of ‘/!svn/vcc/default’: Could not read status line: connection was closed by server.
    這個(gè)問題困擾了我很長時(shí)間,Google和官方論壇都無結(jié)果。后來昨天竟然自己無意中解決了,感動的得哭了:)
    * 配置Apache和SVN,測試
    成功編譯svn后會在 httpd.conf 中自動加上
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    兩個(gè)模塊,沒有的話,自行加上或檢測是否真的編譯成功.
    假設(shè)我們現(xiàn)在要將一個(gè)名為 Lair 的項(xiàng)目導(dǎo)入到 SVN中
    1). Apache的配置
    在 conf/httpd.conf 或 conf/extra/httpd-vhosts.conf 中加入
    <Location /svn/Lair>
    DAV svn
    SVNPath /home/svn/Lair
    </Location>
    可以參考以下apache的配置,實(shí)現(xiàn)數(shù)據(jù)加密傳輸,用戶身份驗(yàn)證.
    Listen 443
    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl .crl.
    SSLPassPhraseDialog exec:/etc/sendsslpwd
    SSLSessionCache shmcb:/usr/local/apache2/logs/ssl_scache(512000)
    SSLSessionCacheTimeout 300
    SSLMutex file:/usr/local/apache2/logs/ssl_mutex
    <VirtualHost _default_:443>
    DocumentRoot /var/SVNRoot
    ServerName svn.yousite.com:443
    ServerAdmin webmaster@yousite.com
    <Location />
    DAV svn
    SVNPath /var/SVNRoot
    AuthzSVNAccessFile /etc/svnserve.conf
    Satisfy Any
    AuthType Basic
    AuthName “yousite SVN Repository”
    AuthUserFile /etc/httpd-passwords.txt
    Require valid-user
    </Location>
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /etc/ssl/server.crt
    SSLCertificateKeyFile /etc/ssl/server.key
    </VirtualHost>
    2). 配置,并且測試SVN,
    創(chuàng)建一個(gè)新用戶,用了保存?zhèn)}庫.
    useradd -m svn
    創(chuàng)建一個(gè)新模塊
    su daemon (apache是以daemon用戶運(yùn)行的,所以要切換身份,否則可能會報(bào)目錄訪問權(quán)限錯(cuò)誤)
    svnadmin create --fs-type fsfs /home/svn/Lair
    導(dǎo)入原來的項(xiàng)目
    svn import /var/www/Lair http://localhost/svn/Lair -m ‘Initial import’
    重新建立工作目錄
    rm -rf /var/www/Lair (注意備份!!)
    svn checkout http://localhost/svn/Lair
    測試打開 http://localhost/svn/Lair
    如能看到一個(gè)你項(xiàng)目錄列表,說明您成功了。
    * 其它小結(jié)
    ■ 數(shù)據(jù)轉(zhuǎn)移:
    從 Windows 平臺 SVN 服務(wù)器轉(zhuǎn)移
    如果windows svn儲存的格式也是dbd的話,直接將SVN的文件夾copy過來即可.然后
    執(zhí)行 svnadmin recover /var/SVNRoot 檢查一下數(shù)據(jù)庫是否損壞.
    最后注意權(quán)限,確保 db 目錄下的所有文件可寫。
    chmod 755 db
    chmod 666 db/*
    否則checkout時(shí)出現(xiàn)以下錯(cuò)誤,多數(shù)是因?yàn)槲募蛘吣夸洐?quán)限問題引起的,可以嘗試用 chown 或者 chmod 命令修改一下權(quán)限
    <m:human-readable errcode=”160029″>
    Could not open the requested SVN filesystem
    </m:human-readable>
    <m:human-readable errcode=”13″>
    Could not open the requested SVN filesystem
    </m:human-readable>
    另外一種方法沒有測試過,原理大致和mysqldump一樣,將svn導(dǎo)出為文本文件,然后重新導(dǎo)入,好處是可以避免因?yàn)榇鎯Ω袷讲煌鴮?dǎo)致的數(shù)據(jù)轉(zhuǎn)移困難。
    # dump data to file (assuming a repo @ c:\repo):
    svnadmin dump c:\repo > c:\repo.txt
    # Copy the file over to linux:
    mkdir /repo
    svnadmin create /repo
    svnadmin load /repo < /repo.txt
    ■ 設(shè)置訪問控制
    當(dāng) httpd.conf 中 設(shè)置 AuthzSVNAccessFile 時(shí),可以設(shè)置不同用戶對不同目錄的訪問控制.以下是一個(gè)例子.
    [groups]
    root = admin.root
    web = user1,user2
    soft = user3,user4
    [/]
    @root = rw
    [/www]
    @web = rw
    [/soft]
    @soft = rw
    ■ 配置文件,使用其支持對文件中的 $Id$ 標(biāo)簽每次提交的時(shí)候自動更新版本信息(自動屬性).
    Windows : C:\Documents and Settings\%USERNAME%\Application Data\Subversion\config
    Linux : ~\.subversion\config
    [miscellany]
    enable-auto-props = yes
    [auto-props]
    *.php=svn:keywords=Id
    *.html=svn:keywords=Id
    >> 關(guān)于自動屬性的更高級討論
    ■ 幾條常用svn 命令
    svn update
    svn add “filename”
    svn commit
    ———————–
    Change Log:
    2006-08-14 neon庫subversion已經(jīng)自帶,不需要在單獨(dú)安裝,添加-with-ssl即可使用svn對ssl支持.
    2006-08-10 補(bǔ)充自動屬性的說明.
    2006-08-08 加入關(guān)于目錄訪問驗(yàn)證的說明.
    2006-08-07 httpd,2.2.3測試依然有效,解決bdb數(shù)據(jù)庫的支持問題,添加從Windows到Linux下的數(shù)據(jù)轉(zhuǎn)移方案。
    2006-07-25 看到到.聲仔對 Can’t set position pointer in file 另一種解決方案,我當(dāng)時(shí)也測試了,好像沒有成功。不想用apache源代碼編譯的朋友可以也測試一下
    posted on 2007-10-16 11:13 蘆葦 閱讀(15288) 評論(2)  編輯  收藏 所屬分類: 其他

    Feedback

    # re: SVN配置 2007-10-16 11:16 蘆葦
     Windows下安裝和配置SVN Server     CSDN Blog推出文章指數(shù)概念,文章指數(shù)是對Blog文章綜合評分后推算出的,綜合評分項(xiàng)分別是該文章的點(diǎn)擊量,回復(fù)次數(shù),被網(wǎng)摘收錄數(shù)量,文章長度和文章類型;滿分100,每月更新一次。
    1.     配置環(huán)境
    Windows 2003 Server with SP1
    Apache HTTP Server v2.0.55
    Subversion v1.4.2
    2.     安裝 Apache HTTP Server
    將安裝目錄修改為C:\Apache Group
    默認(rèn)是安裝到C:\Program Files\Apache Group目錄下
    安裝后的目錄結(jié)構(gòu)如下:
    C:\Apache Group\Apache2\bin\
    C:\Apache Group\Apache2\conf\
    ......
    3.     安裝 Subversion
        這里使用zip包,解壓到C盤,然后將C:\svn-win32-1.4.2\bin添加環(huán)境變量PATH中。
        解壓后的目錄結(jié)構(gòu)如下:
        C:\svn-win32-1.4.2\bin\
        C:\svn-win32-1.4.2\iconv\
        ......
    l        將C:\svn-win32-1.4.2\bin目錄下的mod_dav_svn.so和mod_authz_svn.so復(fù)制到C:\Apache Group\Apache2\modules目錄下。
    l        將C:\svn-win32-1.4.2\bin目錄下的所有DLL文件復(fù)制到C:\Apache Group\Apache2\bin目錄下。注意在復(fù)制DLL文件時(shí)最好停掉Apache。
    l        用文本編輯器打開C:\Apache Group\Apache2\conf\httpd.conf文件找到以下兩行
        #LoadModule dav_module modules/mod_dav.so
        #LoadModule dav_fs_module modules/mod_dav_fs.so
        去掉前面的#,然后所有LoadModule的后面添加下面兩行
        LoadModule dav_svn_module modules/mod_dav_svn.so
        LoadModule authz_svn_module modules/mod_authz_svn.so
        然后重起Apache
    4.     建庫
        假設(shè)所有庫的根目錄是F:\svn,并且要建一個(gè)名為testrepos的庫,打開DOS窗口,進(jìn)入到F:\svn目錄下,然后輸入svnadmin create f:\svn\testrepos
    命令執(zhí)行完后f:\svn\testrepos目錄下會生成一些目錄和文件。然后在C:\Apache Group\Apache2\conf\httpd.conf文件的最后添加下面內(nèi)容,并重起Apache
        <Location /svn>
        DAV svn
        SVNParentPath f:\svn
        </Location>
    5.     測試
    打開DOS窗口,進(jìn)入一個(gè)臨時(shí)目錄F:\temp下
    svn co http://localhost/svn/testrepos
    正確執(zhí)行后會顯示"Checked out revision 0."的信息。
    6.     導(dǎo)入
    在一個(gè)臨時(shí)文件夾(比如C:\temp)下建立如目錄
    trunk
    branches
    tags
    在DOS命令行下進(jìn)入C:\temp目錄,然后執(zhí)行
    svn import . http://localhost/svn/testrepos -m "Initial repository"
    執(zhí)行成功的話會提示提交后的修訂版本為1。
    7.     關(guān)于庫的建立
    建議為會每一個(gè)項(xiàng)目建立一個(gè)庫,例如:
    F:\svn\project1
    F:\svn\project2
    再為每個(gè)庫建立如下結(jié)構(gòu)(Subversion官方手冊建議的目錄結(jié)構(gòu))
    F:\svn\project1\trunk      這個(gè)目錄用來存放正在進(jìn)行開發(fā)的項(xiàng)目代碼
    F:\svn\project1\branches   這個(gè)目錄用來存放正在開發(fā)中的版本分支
    F:\svn\project1\tags       這個(gè)目錄用來存放不再變動的分支
     

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1495115

      回復(fù)  更多評論
      

    # re: SVN配置 2007-10-16 11:17 蘆葦
     Subversion安裝記錄     CSDN Blog推出文章指數(shù)概念,文章指數(shù)是對Blog文章綜合評分后推算出的,綜合評分項(xiàng)分別是該文章的點(diǎn)擊量,回復(fù)次數(shù),被網(wǎng)摘收錄數(shù)量,文章長度和文章類型;滿分100,每月更新一次。

    程序版本:
       Subversion:1.3.2(官方下載
       SmartSVN:2.0.6(官方下載)本地下載:

    安裝過程:
     1、安裝Subversion。這個(gè)過程很簡單,默認(rèn)安裝就可以了,沒什么可說的。
     2、創(chuàng)建Repository(可以理解為代碼倉庫,其實(shí)除了放代碼,其他的也可以放的^_^):
       通過CMD進(jìn)入命令行模式,輸入下列命令,在d:\SubversionWorkspace\pub這個(gè)目錄下建立Repository:
    svnadmin create --fs-type fsfs d:\SubversionWorkspace\pub

    注:之所以選擇fsfs格式,參考下面的文檔中的相關(guān)資料
    相關(guān)文檔資料:
    $ svnadmin create --fs-type fsfs /path/to/repos
    $ svnadmin create --fs-type bdb /path/to/other/repos

    Warning
    Do not create a Berkeley DB repository on a network share—it cannot exist on a remote filesystem such as NFS, AFS, or Windows SMB. Berkeley DB requires that the underlying filesystem implement strict POSIX locking semantics, and more importantly, the ability to map files directly into process memory. Almost no network filesystems provide these features. If you attempt to use Berkeley DB on a network share, the results are unpredictable—you may see mysterious errors right away, or it may be months before you discover that your repository database is subtly corrupted.

    If you need multiple computers to access the repository, you create an FSFS repository on the network share, not a Berkeley DB repository. Or better yet, set up a real server process (such as Apache or svnserve), store the repository on a local filesystem which the server can access, and make the repository available over a network. Chapter 6, Server Configuration covers this process in detail.

     3、添加用戶并設(shè)置權(quán)限。沒有做詳細(xì)研究,請直接參考下面的資料:
    轉(zhuǎn)自:http://www.dlog.cn/html/di...

    獨(dú)立運(yùn)行的Subversion權(quán)限設(shè)置很簡單,首先打開snvserve.conf,去掉下面一行的注釋

    authz-db = authz

    然后打開同一目錄下的authz這個(gè)文件,這個(gè)文件便是整個(gè)權(quán)限控制的核心,先來看一個(gè)例子:

    [groups]
    dev-group = liudong,xfliang
    design-group = newidea

    [/]
    @dev-group = rw
    @design-group = r
    * =

    [/doc]
    @design-group = rw

    [/webapp]
    @design-group = rw

    接下來我給大家解釋一下這個(gè)文件,相信就可以明白Subversion如何來做權(quán)限控制的了。

    首先我定義了兩個(gè)組,一個(gè)開發(fā)組(dev-group),一個(gè)設(shè)計(jì)組(design-group),接下來我讓dev-group對整個(gè)目錄有讀寫的權(quán)限,而design-group只有讀權(quán)限。但是接下來的兩個(gè)子目錄design-group就有讀寫權(quán)限,也就是說設(shè)計(jì)組可以讀取整個(gè)項(xiàng)目,但只能修改doc以及webapp這兩個(gè)子目錄。

    *= 這行表示其他人不能讀寫。當(dāng)然也可以直接指定某個(gè)用戶,例如我想讓liudong這個(gè)用戶可以讀寫webapp目錄,那設(shè)置如下:

    [/webapp]
    @design-group = rw
    liudong = rw

    另外有一點(diǎn)注意的是,修改這個(gè)文件不需要重新啟動svn服務(wù),這點(diǎn)太棒了。

    下面是詳細(xì)的說明Subversion自帶的authz樣例中的注釋

    ### This file is an example authorization file for svnserve.
    ### Its format is identical to that of mod_authz_svn authorization
    ### files.
    ### As shown below each section defines authorizations for the path and
    ### (optional) repository specified by the section name.
    ### The authorizations follow. An authorization line can refer to a
    ### single user, to a group of users defined in a special [groups]
    ### section, or to anyone using the '*' wildcard.  Each definition can
    ### grant read ('r') access, read-write ('rw') access, or no access
    ### ('').

     4、將Subversion注冊為系統(tǒng)。將SVNServise拷貝到Subversion的安裝目錄下的bin目錄(我這里為:C:\Program Files\Subversion\bin)。然后在CMD中轉(zhuǎn)到剛剛那個(gè)目錄,運(yùn)行下列命令:
    svnserve -d -r d:\SubversionWorkspace\

    注:以下是svnserve的命令選項(xiàng)
    svnserve [選項(xiàng)]
    有效選項(xiàng):
     -d [--daemon]            : 后臺模式
     --listen-port 參數(shù)     : 監(jiān)聽端口(后臺模式)
     --listen-host 參數(shù)     : 監(jiān)聽主機(jī)名或IP地址(后臺模式)
     --foreground             : 在前臺運(yùn)行(調(diào)試時(shí)有用)
     -h [--help]              : 顯示這個(gè)幫助
     --version                : 顯示版本信息
     -i [--inetd]             : inetd 模式
     -r [--root] 參數(shù)       : 服務(wù)根目錄
     -R [--read-only]         : force read only, overriding repository config file
     -t [--tunnel]            : 隧道模式
     --tunnel-user 參數(shù)     : 隧道用戶名(模式是當(dāng)前用戶UID的名字)
     -X [--listen-once]       : 監(jiān)聽一次(調(diào)試時(shí)有用)

     5、用SmartSVN連接剛剛建好的服務(wù)器  

    下載文件 (已下載 22 次)

       SVNServise:將Subversion注冊為系統(tǒng)服務(wù)的東東。本地下載:
    下載文件 (已下載 19 次)

       TortoiseSVN:1.4.0 RC1(官方下載
    安裝環(huán)境:
       Windows XP-SP2-en


    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1495108

      回復(fù)  更多評論
      

    主站蜘蛛池模板: 亚洲AV之男人的天堂| 久九九精品免费视频| 亚洲精品国产精品乱码不99 | 免费人成网站7777视频| 亚洲变态另类一区二区三区| 爽爽日本在线视频免费| 美女视频黄.免费网址| 亚洲情侣偷拍精品| a在线观看免费网址大全| 久久综合图区亚洲综合图区| 免费无码毛片一区二区APP| 亚洲成综合人影院在院播放| 精品久久久久成人码免费动漫| 亚洲欧美日韩中文无线码| 亚洲AⅤ优女AV综合久久久| 99久久成人国产精品免费| 亚洲成年轻人电影网站www| 四虎成年永久免费网站| 亚洲精品无码中文久久字幕| 免费又黄又爽的视频| 青青操免费在线视频| 亚洲无成人网77777| 国产aa免费视频| 国产午夜无码精品免费看动漫| 亚洲精品视频在线| 四虎影视www四虎免费| 国产va免费精品| 亚洲成人黄色在线观看| 国产免费人成视频在线观看| a视频在线观看免费| 亚洲一区二区三区亚瑟 | 亚洲精品国产美女久久久| 国产妇乱子伦视频免费| 色吊丝免费观看网站| 久久久久亚洲AV成人无码网站| 免费人成视频在线| 免费a级毛片无码a∨免费软件| 亚洲人成免费网站| 亚洲日韩精品无码一区二区三区| 四虎在线最新永久免费| 又大又硬又粗又黄的视频免费看|