空間站

          北極心空

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks
          在linux下安裝配置svn獨(dú)立服務(wù)器
            subversion(以下簡(jiǎn)稱svn)是近年來崛起的版本管理工具,是cvs的接班人。
            svn服務(wù)器有2種運(yùn)行方式:獨(dú)立服務(wù)器和借助apache。2種方式各有利弊。
            svn存儲(chǔ)版本數(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格式存儲(chǔ)版本庫,不編譯berkeley-db)
          make clean
          make
          make install
          vi /etc/profile,在/etc/profile最后加入:
          PATH=$PATH:/opt/svn/bin
          export PATH
          測(cè)試:
          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
            為了簡(jiǎn)化配置,2個(gè)版本庫共用1個(gè)用戶配置文件。如有必要,也可以分開。
          注意:對(duì)用戶配置文件的修改立即生效,不必重啟svn。
          文件格式如下:
          [users]
          <用戶1> = <密碼1>
          <用戶2> = <密碼2>
            其中,[users]是必須的。下面列出要訪問svn的用戶,每個(gè)用戶一行。示例:
          [users]
          alan = password
          king = hello
          配置用戶訪問權(quán)限:
          vi /opt/svn/conf/authz.conf
            為了簡(jiǎn)化配置,3個(gè)版本庫共用1個(gè)權(quán)限配置文件/opt/svn/conf/pwd.conf。如有必要,也可以分開。文件中定義用戶組和版本庫目錄權(quán)限。
          注意:
          * 權(quán)限配置文件中出現(xiàn)的用戶名必須已在用戶配置文件中定義。
          * 對(duì)權(quán)限配置文件的修改立即生效,不必重啟svn。
          用戶組格式:
          [groups]
          <用戶組名> = <用戶1>,<用戶2>
          其中,1個(gè)用戶組可以包含1個(gè)或多個(gè)用戶,用戶間以逗號(hào)分隔。
          版本庫目錄格式:
          [<版本庫>:/項(xiàng)目/目錄]
          @<用戶組名> = <權(quán)限>
          <用戶名> = <權(quán)限>
            其中,方框號(hào)內(nèi)部分可以有多種寫法:
          /,表示根目錄及以下。根目錄是svnserve啟動(dòng)時(shí)指定的,我們指定為/opt/svndata。這樣,/就是表示對(duì)全部版本庫設(shè)置權(quán)限。
          repos1:/,表示對(duì)版本庫1設(shè)置權(quán)限
          repos2:/occi, ,表示對(duì)版本庫2中的occi項(xiàng)目設(shè)置權(quán)限
          repos2:/occi/aaa, ,表示對(duì)版本庫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. 啟動(dòng)svn
          建立啟動(dòng)svn的用戶:
          useradd svn
          passwd svn
          根據(jù)提示為用戶svn設(shè)置密碼
          允許用戶svn訪問版本庫:
          chown –R svn:svn /opt/svndata
          chown –R svn:svn /opt/data
          啟動(dòng)svn:
          su - svn -c "svnserve -d --listen-port 9999 -r /opt/svndata"
          其中:
          su – svn表示以用戶svn的身份啟動(dòng)svn
          -d表示以daemon方式(后臺(tái)運(yùn)行)運(yùn)行
          --listen-port 9999表示使用9999端口,可以換成你需要的端口。但注意,使用1024以下的端口需要root權(quán)限
          -r /opt/svndata指定根目錄是/opt/svndata
          檢查:
          ps –ef|grep svnserve
          如果顯示如下,即為啟動(dòng)成功:
          svn    6941   1 0 15:07 ?    00:00:00 svnserve -d --listen-port 9999 -r /opt/svndata

          檢測(cè)服務(wù)是否開啟:netstat -ntlp如果看到3690的端口正常開放了,證明SVN啟動(dòng)了。]
          下面是機(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,測(cè)試.
          其它小結(jié)
          從Windows平臺(tái)上數(shù)據(jù)轉(zhuǎn)移
          配置文件,使用其支持對(duì)文件中的 $Id$ 標(biāo)簽每次提交的時(shí)候自動(dòng)更新版本信息.
          基于路徑的權(quán)限控制
          常用SVN命令
          相關(guān)資源
          * 準(zhǔn)備,下載所需要文件.
          本文測(cè)試環(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也會(huì)啟動(dòng)不起來.
          如何編譯 Apache 請(qǐng)參考我另外一篇文章.
          * 編譯SVN,遇到的問題和解決方法.
          使用默認(rèn)的文件系統(tǒng)保存數(shù)據(jù).
          最終完整通過安裝和測(cè)試的編譯參數(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 如果沒有加上的話,即使編譯成功了也會(huì)出現(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 就會(huì)configure時(shí)就會(huì)報(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í)候可能會(huì)遇到缺少 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.否則同樣會(huì)出現(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的,必須升級(jí)為 1.2.7 雖然能編譯過去。但在 svn checkout 的時(shí)候會(huì)提示
          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è)問題困擾了我很長(zhǎng)時(shí)間,Google和官方論壇都無結(jié)果。后來昨天竟然自己無意中解決了,感動(dòng)的得哭了:)
          * 配置Apache和SVN,測(cè)試
          成功編譯svn后會(huì)在 httpd.conf 中自動(dòng)加上
          LoadModule dav_svn_module modules/mod_dav_svn.so
          LoadModule authz_svn_module modules/mod_authz_svn.so
          兩個(gè)模塊,沒有的話,自行加上或檢測(cè)是否真的編譯成功.
          假設(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). 配置,并且測(cè)試SVN,
          創(chuàng)建一個(gè)新用戶,用了保存?zhèn)}庫.
          useradd -m svn
          創(chuàng)建一個(gè)新模塊
          su daemon (apache是以daemon用戶運(yùn)行的,所以要切換身份,否則可能會(huì)報(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
          測(cè)試打開 http://localhost/svn/Lair
          如能看到一個(gè)你項(xiàng)目錄列表,說明您成功了。
          * 其它小結(jié)
          ■ 數(shù)據(jù)轉(zhuǎn)移:
          從 Windows 平臺(tái) SVN 服務(wù)器轉(zhuǎn)移
          如果windows svn儲(chǔ)存的格式也是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>
          另外一種方法沒有測(cè)試過,原理大致和mysqldump一樣,將svn導(dǎo)出為文本文件,然后重新導(dǎo)入,好處是可以避免因?yàn)榇鎯?chǔ)格式不同而導(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è)置不同用戶對(duì)不同目錄的訪問控制.以下是一個(gè)例子.
          [groups]
          root = admin.root
          web = user1,user2
          soft = user3,user4
          [/]
          @root = rw
          [/www]
          @web = rw
          [/soft]
          @soft = rw
          ■ 配置文件,使用其支持對(duì)文件中的 $Id$ 標(biāo)簽每次提交的時(shí)候自動(dòng)更新版本信息(自動(dòng)屬性).
          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)于自動(dòng)屬性的更高級(jí)討論
          ■ 幾條常用svn 命令
          svn update
          svn add “filename”
          svn commit
          ———————–
          Change Log:
          2006-08-14 neon庫subversion已經(jīng)自帶,不需要在單獨(dú)安裝,添加-with-ssl即可使用svn對(duì)ssl支持.
          2006-08-10 補(bǔ)充自動(dòng)屬性的說明.
          2006-08-08 加入關(guān)于目錄訪問驗(yàn)證的說明.
          2006-08-07 httpd,2.2.3測(cè)試依然有效,解決bdb數(shù)據(jù)庫的支持問題,添加從Windows到Linux下的數(shù)據(jù)轉(zhuǎn)移方案。
          2006-07-25 看到到.聲仔對(duì) Can’t set position pointer in file 另一種解決方案,我當(dāng)時(shí)也測(cè)試了,好像沒有成功。不想用apache源代碼編譯的朋友可以也測(cè)試一下
          posted on 2007-10-16 11:13 蘆葦 閱讀(15291) 評(píng)論(2)  編輯  收藏 所屬分類: 其他

          Feedback

          # re: SVN配置 2007-10-16 11:16 蘆葦
           Windows下安裝和配置SVN Server     CSDN Blog推出文章指數(shù)概念,文章指數(shù)是對(duì)Blog文章綜合評(píng)分后推算出的,綜合評(píng)分項(xiàng)分別是該文章的點(diǎn)擊量,回復(fù)次數(shù),被網(wǎng)摘收錄數(shù)量,文章長(zhǎng)度和文章類型;滿分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目錄下會(huì)生成一些目錄和文件。然后在C:\Apache Group\Apache2\conf\httpd.conf文件的最后添加下面內(nèi)容,并重起Apache
              <Location /svn>
              DAV svn
              SVNParentPath f:\svn
              </Location>
          5.     測(cè)試
          打開DOS窗口,進(jìn)入一個(gè)臨時(shí)目錄F:\temp下
          svn co http://localhost/svn/testrepos
          正確執(zhí)行后會(huì)顯示"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í)行成功的話會(huì)提示提交后的修訂版本為1。
          7.     關(guān)于庫的建立
          建議為會(huì)每一個(gè)項(xiàng)目建立一個(gè)庫,例如:
          F:\svn\project1
          F:\svn\project2
          再為每個(gè)庫建立如下結(jié)構(gòu)(Subversion官方手冊(cè)建議的目錄結(jié)構(gòu))
          F:\svn\project1\trunk      這個(gè)目錄用來存放正在進(jìn)行開發(fā)的項(xiàng)目代碼
          F:\svn\project1\branches   這個(gè)目錄用來存放正在開發(fā)中的版本分支
          F:\svn\project1\tags       這個(gè)目錄用來存放不再變動(dòng)的分支
           

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

            回復(fù)  更多評(píng)論
            

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

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

          安裝過程:
           1、安裝Subversion。這個(gè)過程很簡(jiǎn)單,默認(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ì)研究,請(qǐng)直接參考下面的資料:
          轉(zhuǎn)自:http://www.dlog.cn/html/di...

          獨(dú)立運(yùn)行的Subversion權(quán)限設(shè)置很簡(jiǎn)單,首先打開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對(duì)整個(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è)文件不需要重新啟動(dòng)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注冊(cè)為系統(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]            : 后臺(tái)模式
           --listen-port 參數(shù)     : 監(jiān)聽端口(后臺(tái)模式)
           --listen-host 參數(shù)     : 監(jiān)聽主機(jī)名或IP地址(后臺(tái)模式)
           --foreground             : 在前臺(tái)運(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注冊(cè)為系統(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ù)  更多評(píng)論
            

          主站蜘蛛池模板: 齐齐哈尔市| 蒲城县| 河南省| 阜南县| 巴彦县| 玛曲县| 铁力市| 衡东县| 个旧市| 磐石市| 二连浩特市| 如皋市| 张家界市| 三江| 延寿县| 梁平县| 竹溪县| 平阴县| 九江市| 富裕县| 离岛区| 当雄县| 芜湖县| 广平县| 冕宁县| 龙海市| 三都| 阿勒泰市| 东光县| 泰安市| 图木舒克市| 忻城县| 棋牌| 宁乡县| 固原市| 抚顺县| 高唐县| 什邡市| 嘉黎县| 措勤县| 徐水县|