CONAN ZONE

          你越掙扎我就越興奮

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            0 Posts :: 282 Stories :: 0 Comments :: 0 Trackbacks
          1 下載相關的軟件
          Apache-2.x   http://httpd.apache.org  下載源代碼包
          Subersion    http://subversion.tigris.org/  下載源代碼包
          本文中apache的版本為 Apache/2.2.4 (Unix)
          Subversion 版本:svnserve 1.4.3 (r23084)
          2 安裝相關軟件
          2.1 安裝apache 
          1)./configure –prefix=/usr/local/apache(安裝目錄)–enable-so –enable-proxy –enable-ssl –enable-vhost-alias –enable-mods-shared=most –enable-dav –enable-maintainer-mode
          說明:其中—enable-dav 和—enable-maintainer-mode是為了能在apache下集成subversion才加進去的編譯參數。
          –with-mpm=worker(這個參數,要詳細閱讀apache相關文檔來做決定用哪種mpm,待定)
          2)make (編譯)
          3)make install (安裝)
          4)make clean(清理源代碼目錄)
          3 創建倉庫
          2.2 安裝subversion 
          1)配置
          ./configure –prefix=/home/svn –enable-maintainer-mode –with-apr=/usr/local/apache2/bin/apr-1-config –with-apxs=/usr/local/apache2/bin/apxs –with-apr-util=/usr/local/apache2/bin/apu-1-config
          其中:/usr/local/apache2為apache的安裝目錄,而不是源代碼目錄。
          2)make
          3)make install
          4)make clean
          倉庫的規劃一般是有一個倉庫,其中存放一個或者多個項目根目錄,在每個項目根目錄下面有/trunk, /branches, and /tags三個子目錄,或者另外的規劃。
                 /
             utils/
                calc/
                   trunk/
                   tags/
                   branches/
                calendar/
                   trunk/
                   tags/
                   branches/
                …
             office/
                spreadsheet/
                   trunk/
                   tags/
                   branches/
                …
          無論哪種規劃,但是都必須遵循的一個原則就是必須符合你的項目的設計。
          3.2 創建倉庫 
          根據上面一節的規劃來創建你的倉庫。
          1) 創建倉庫
          $ svnadmin create /path/to/repos
          觀察repos目錄結構
          2) 根據倉庫規劃,創建臨時目錄:
          $mkdir tmpdir
          $cd tmpdir
          $mkdir boss (boss在這里是project name)
          $mkdir boss/trunk
          $mkdir boss/tags
          $mkdir boss/branches
          3) 添加上面創建的目錄結構到1)中創建的倉庫中去
           $svn import . file:///path/to/repos –message ‘Initial repository layout’
          .:代表當前目錄
          file段:代表1)中創建的倉庫
          4 subversion服務器配置 
          Subversion 的服務器運行方式分為兩種:http方式和tcp(以svnserve)方式。
          4.1 http方式配置 
          結合apache的dav模塊來是實現。
          在apache的安裝目錄下面找到配置文件httpd.conf,修改配置文件。
          <Location /svn>
          DAV svn
          SVNPath /home/svn/repos 
          </Location>
          4.2 svn方式配置 
          Subversion以svnserve方式運行
          1) standalone mode
          直接運行:#svnserve –d運行 lsof -i :3690可以看到SVN服務器已經在運行
          2) xinetd mode在/etc/xinetd.d/下生成svnserve文件,內容如下
          service svnserve
          {
          disable = no
          socket_type = stream
          protocol = tcp
          wait = no
          user = root
          server = /home/svn/bin/svnserve
          server_args = -i
          }
          編輯 /etc/services 檔,加入底下兩行:
          svnserve 3690/tcp # Subversion svnserve
          svnserve 3690/udp # Subversion svnserve
          重啟xinetd服務/usr/sbin/xinetd –restart 
          運行 lsof -i :3690可以看到SVN服務器已經在運行
          5 服務器配置
          5.1 服務器配置 
          Subversion的配置文件存放在$SVN_HOME/your repository/conf目錄下面,配置文件名:svnserve.conf。
          1) 基本權限管理
          svnserve.conf的配置風格跟mysql的配置文件的風格相似。基于linux下的配置文件風格如下:
          [xxx] section:配置段
          配置段下面的配置區域,一般是:變量 = 值
          在svnserve.conf中[general]段,訪問權限分為三種:read,write,none
          anon-access = none (對匿名用戶)
          auth-access = write   (授權用戶)
          2) 基于svn自己權限管理
          Svn本身通過password-db = userfile和realm = my first實現了權限管理。
          Password-db是權限文件放置位置。
          Realm是加密的key
          權限文件的格式類似如下:
          [users]
          A=123456 (其中a為用戶名,123456為密碼)
          3)基于svn+ssh權限管理(略)
          附錄: 
          命令列表
          具體用法可參考 Subversion 命令參考手冊
          Subversion 命令列客戶端: svn
          svn add
          svn cat
          svn checkout
          svn cleanup
          svn commit
          svn copy
          svn delete
          svn diff
          svn export
          svn help
          svn import
          svn info
          svn list
          svn log
          svn merge
          svn mkdir
          svn move
          svn propdel
          svn propedit
          svn propget
          svn proplist
          svn propset
          svn resolved
          svn revert
          svn status
          svn switch
          svn update
          Subversion 命令列服務端:
          svnadmin list-unused-dblogs
          svnadmin create
          svnadmin dump
          svnadmin help
          svnadmin load
          svnadmin lstxns
          svnadmin recover
          svnadmin rmtxns
          svnadmin setlog
          svnlook author
          svnlook cat
          svnlook changed
          svnlook date
          svnlook diff
          svnlook dirs-changed
          svnlook help
          svnlook history
          svnlook info
          svnlook log
          svnlook proplist
          svnlook tree
          svnlook youngest
          bash-3.2# ls -al /usr/local/lib/libexpat.* /usr/local/include/expat.h
          -rw-r--r-- 1 root wheel 40339 Jan 14 02:43 /usr/local/include/expat.h
          -rw-r--r-- 1 root wheel 444628 Jan 14 02:43 /usr/local/lib/libexpat.a
          -rwxr-xr-x 1 root wheel 793 Jan 14 02:43 /usr/local/lib/libexpat.la
          lrwxr-xr-x 1 root wheel 13 Jan 14 02:43
          /usr/local/lib/libexpat.so -> libexpat.so.6
          -rwxr-xr-x 1 root wheel 265921 Jan 14 02:43 /usr/local/lib/libexpat.so.6
          bash-3.2#
           
          posted on 2008-06-20 23:08 CONAN 閱讀(5710) 評論(0)  編輯  收藏 所屬分類: SVN
          主站蜘蛛池模板: 达拉特旗| 罗定市| 灵山县| 安西县| 拉孜县| 临桂县| 民勤县| 仁化县| 保亭| 民权县| 梁河县| 阿拉尔市| 五寨县| 温州市| 恩平市| 上思县| 武陟县| 平顶山市| 莱芜市| 南通市| 辽源市| 滦南县| 达拉特旗| 法库县| 察雅县| 新建县| 宁晋县| 江川县| 富锦市| 九龙县| 溧水县| 建水县| 绥棱县| 株洲县| 泸水县| 疏附县| 西盟| 哈尔滨市| 昌邑市| 揭西县| 和田县|