乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      CVS完全手冊(cè)

       素行 2007-07-18

      =

                   內(nèi)容
      概述
      CVS環(huán)境設(shè)置
      登錄CVS服務(wù)器: 
      cvs命令格式
      CVS的日常使用
      其他常用命令
      CVS宏/keyword
      CVS分支管理
      CVS服務(wù)器的安裝和配置
      Watchers
      WinCVS的安裝和配置
      CVSWEB的安裝


      概述
      ==================================

      CVS是一個(gè)并行版本控制系統(tǒng),它采用C/S模式,它的復(fù)雜度和功能性屬于中等,是當(dāng)今最流行的版本控制系統(tǒng)。它有兩個(gè)基本的特點(diǎn):
      *保存修改記錄:保存了所有文件的修改歷史,并可以建立分支
      *協(xié)作與并行:cvs不推薦使用lock-modify-unlock的串行的工作模式,而采用多人可以并行地修改同一個(gè)文件,而在提交時(shí)merge conflict;它更適合于大型的工作團(tuán)體。
      使用CVS的好處:
      *文件集中管理,大家都可以方便的看到所有人員的最新文件,規(guī)范化了文件的管理
      *可以查看以前任何的一個(gè)版本或修改歷史
      *可以同時(shí)維護(hù)多個(gè)版本和分支


      CVS環(huán)境設(shè)置
      ==================================

      先不要管CVS服務(wù)器的配置,我們先假設(shè)已經(jīng)有一臺(tái)配置好的服務(wù)器,要訪問(wèn)CVS,必需先設(shè)置環(huán)境變量CVSROOT
      CVSROOT=:pserver:user@server#port:/path/to/cvsroot

      *pserver是訪問(wèn)方式,口令認(rèn)證的意思,這是最常用的方式,其他還有g(shù)server,kserver,ext
      *user是CVS服務(wù)器的用戶名,
      *server是CVS服務(wù)器的名稱或者IP地址
      */path/to/cvsroot是你的CVS服務(wù)器的CVSROOT目錄,根據(jù)你的CVS服務(wù)器設(shè)置做修改或者詢問(wèn)管理員
      你可以把設(shè)置放到你的shell的profile里(.bash_profile,.profile等)這樣就不用每次敲一長(zhǎng)串命令了

      高級(jí)功能:現(xiàn)在比較流行是使用ssh來(lái)加密口令和數(shù)據(jù)流
      CVSROOT=:ext:user@server#port:/path/to/cvsroot
      CVS_RSH=ssh
      hints:
      實(shí)際上沒(méi)有CVSROOT也可以,你可以每次用cvs -d :pserver:user@server#port:/path/to/cvsroot來(lái)訪問(wèn),而且它將忽略CVSROOT環(huán)境變量 ,也許你會(huì)笑我只有瘋子才這么用,不過(guò),cvs可以把每次使用的命令參數(shù)放到一個(gè)文件中,所以在~/.cvsrc中加入
      cvs -d :pserver:user@server#port:/path/to/cvsroot
      即可,它最大的好處是修改了立刻生效,而且它的優(yōu)先級(jí)高于CVSROOT環(huán)境變量,到時(shí)候不要傻乎乎地來(lái)問(wèn)我,我的環(huán)境變量真么不起作用了。


      登錄CVS服務(wù)器: 
      ==================================
      $cvs login,這時(shí)候cvs會(huì)問(wèn)你口令,請(qǐng)把你在CVS服務(wù)器上的口令敲進(jìn)去
      如果沒(méi)有任何錯(cuò)誤信息,恭喜你,成功了!
      成功登錄后將建立一個(gè)~/.cvspass文件,保存你的口令,以后就不用輸入口令了.

      cvs命令格式
      ==================================
      cvs [global_opts] command [command_opts] [command_args]
      Global options 屬于左邊cvs的,是全局的
      command_opts   屬于左邊command的,是局部的
      cvs --help-commands查看命令列表
      cvs -H command/cvs -help command 查看該命令的選項(xiàng)
      hints:如果你每次使用一些命令都帶同樣的參數(shù)的話,可以把它們放到~/.cvsrc文件中去
      update -c
      diff -c
      add -kb
      cvs -Q


      cvs global-option comand comand-option arguments

      CVS的日常使用
      ==================================
      CVS使用流程
         a checkout 盡當(dāng)本地沒(méi)有working copy時(shí)使用
         b staus 檢查服務(wù)器上是否有新版本
         c update 如果有,則用update同步文件
         d 做你自己的修改,并保證正確
         e update 看是否有人修改了你的文件
         f 如果有沖突,合并沖突
         g commit 提交你的修改,如果因?yàn)橛钟腥颂峤恍薷亩?,回到e步
         h 回到b步

      1 cvs checkout module_name
      -------------------------------------
      module_name可以暫時(shí)理解為目錄名,它會(huì)在本地但前目錄下建立module_name目錄,在把服務(wù)器上說(shuō)有module_name目錄下的文件copy到本地module_name目錄下。
      注意:第一次checkout后,就不是通過(guò)cvs checkout來(lái)同步文件了,而是要進(jìn)入該目錄下進(jìn)行具體文件的版本同步(添加,修改,刪除)操作。

      2 cvs update filename
      -------------------------------------
      將文件同步到最新的版本:不指定文件名,cvs將同步所有子目錄下的文件。
      最好每天開(kāi)始工作前或?qū)⒆约旱墓ぷ鲗?dǎo)入到CVS庫(kù)里前都要做一次,并養(yǎng)成"先同步 后修改"的習(xí)慣,和Virvual SourceSafe不同,CVS里沒(méi)有文件鎖定的概念,所有的沖突是在commit之前解決,如果你修改過(guò)程中,有其他人修改并commit到了CVS庫(kù)中,CVS會(huì)通知你文件沖突
      <<<<<<< filename
       你文件上的內(nèi)容
      =======
        服務(wù)器上文件的內(nèi)容
      >;>;>;>;>;>;>; latest revision number in the repository

      由你確認(rèn)沖突內(nèi)容的取舍。也可以多人協(xié)商解決,修改完成后去掉文件中的沖突標(biāo)志

      conflict:多人修改同一文件的同一區(qū)域這就叫沖突,它必須由人來(lái)解決,CVS不處理沖突,它只是告訴你存才沖突


      3 cvs commit -m "write some comments here" file_name
      ------------------------------------
      確認(rèn)修改寫(xiě)入到CVS庫(kù)里。
      注意:CVS的很多動(dòng)作都是通過(guò)cvs commit進(jìn)行最后確認(rèn)并修改的,最好每次只修改一個(gè)文件。在確認(rèn)的前,還需要用戶填寫(xiě)修改注釋,以幫助其他開(kāi)發(fā)人員了解修改的原因。如果不用寫(xiě)-m "comments"而直接確認(rèn)`cvs commit file_name` 的話,cvs會(huì)自動(dòng)調(diào)用系統(tǒng)缺省的文字編輯器(一般是vi)要求你寫(xiě)入注釋。
      注釋的質(zhì)量很重要:所以不僅必須要寫(xiě),而且必須寫(xiě)一些比較有意義的內(nèi)容:以方便其他開(kāi)發(fā)人員能夠很好的理解
      不好的注釋,很難讓其他的開(kāi)發(fā)人員快速的理解:比如: -m "bug fixed" 甚至 -m ""
      好的注釋,甚至可以用中文: -m "在用戶注冊(cè)過(guò)程中加入了Email地址校驗(yàn)"

      修改某個(gè)版本注釋:每次只確認(rèn)一個(gè)文件到CVS庫(kù)里是一個(gè)很好的習(xí)慣,但難免有時(shí)候忘了指定文件名,把多個(gè)文件以同樣注釋commit到CVS庫(kù)里了,以下命令可以允許你修改某個(gè)文件某個(gè)版本的注釋:
      cvs admin -m 1.3:"write some comments here" file_name

      4 查看狀態(tài)
      ------------------------------------
      cvs status filename
      狀態(tài)報(bào)告,類似這樣: 
      File: foo.c             Status: Up-to-date 
         Working revision:    1.1.1.1 ‘Some Date‘ 
         Repository revision: 1.2     /home/cvsroot/cvstest/foo.c,v 
         Sticky Tag:          (none) 
         Sticky Date:         (none) 
         Sticky Options:      (none) 

      這里最重要的就是Status欄,這里總共可能有四種狀態(tài): 
      Up-to-date: 表明你要到的文件是最新的. 
      Locally Modified: 表明你曾經(jīng)修改過(guò)該文件,但還沒(méi)有提交,你的版本比倉(cāng)庫(kù)里的新. 
      Needing Patch: 表明有個(gè)哥們已經(jīng)修改過(guò)該文件并且已經(jīng)提交了!你的版本比倉(cāng)庫(kù)里的舊. 
      Needs Merge: 表明你曾經(jīng)修改該文件,但是偏偏有個(gè)不識(shí)相的也修改了這個(gè)文件,而且還提交了!

      5 查看修改歷史和注釋信息
      ------------------------------------
      cvs log file_name


      其他常用命令
      ==================================
      1 添加文件和目錄
      ------------------------------------
      cvs add new_file_name
      cvs add -kb new_file_name
      cvs add dir_name

      CVS一般只處理文本文件,它會(huì)擴(kuò)展keyword(宏)并轉(zhuǎn)換行結(jié)束符
      對(duì)于圖片,Word文檔等非純文本的項(xiàng)目,需要使用cvs add -kb選項(xiàng),否則有可能出現(xiàn)文件被破壞的情況
      然后確認(rèn)修改并注釋
      cvs ci -m "write some comments here"  new_file_name

      2 刪除文件
      ------------------------------------
      將某個(gè)源文件物理刪除后
      cvs remove file_name
      然后確認(rèn)修改并注釋
      cvs ci -m "write some comments here" file_name

      注意:很多cvs命令都有縮寫(xiě)形式:commit=>;ci; update=>;up; checkout=>;co; remove=>;rm;

      3.修改文件名
      ------------------------------------
      移動(dòng)文件:文件重命名
      cvs里沒(méi)有cvs move或cvs rename,因?yàn)檫@兩個(gè)操作是先cvs remove old_file_name,然后cvs add new_file_name實(shí)現(xiàn)的。

      4 目錄結(jié)構(gòu)同步
      ------------------------------------
      如果在你checkout后,有人添加了新的文件或目錄,你需要把他們?nèi)〕鰜?lái)
      cvs update -d

      5 放棄本地的修改(undo)
      ------------------------------------
      如果修改來(lái)了本地文件,不想提交,想重新取新文件
      cvs update -C filename
      它會(huì)先把你的本地文件改名

      建議:建議大家把checkout的文件缺省為readonly,把"cvs -r"添加到~/.cvsrc文件中
           這樣,你每次修改一個(gè)文件前,先cvs edit filename,提交后文件又變成readonly,
                 如果你想放棄本地的修改,則cvs unedit filename,它會(huì)undo,而且文件又變成readonly


      6 恢復(fù)到舊版本
      ------------------------------------
      cvs update -j1.20 -j1.15 filenames
      1.20時(shí)當(dāng)前版本號(hào),注意順序不要反了,記住要commit,為了保證是但前版本號(hào),最好先lock
      注意:cvs update -r1.15 file.name,這里的-r不是版本號(hào)的意思,是給文件加了一個(gè)叫1.15的sticky tag
      如果不小心已經(jīng)加成STICK TAG的話:用cvs update -A 解決

      7 文件比較
      ------------------------------------
      cvs diff -c filename
      cvs diff -c -r1.8 -r 1.5 filename

      8 鎖定與解鎖文件
      ------------------------------------
      為保證串行的修改文件,或修改二
      cvs admin -l files
      cvs admin -u files


      ==========================================================================
      如果你只是一般性的使用cvs,到此為止就足夠了。一個(gè)系統(tǒng)20%的功能往往能夠滿足80%的需求,CVS也不例外,以下是CVS最常用的功能,可能用到的還不到它全部命令選項(xiàng)的10%,更多的功能請(qǐng)?jiān)趯?shí)際應(yīng)用過(guò)程中體會(huì),學(xué)習(xí)過(guò)程中應(yīng)該是用多少,學(xué)多少,用到了再學(xué)也不遲。
      ==========================================================================

      CVS宏/keyword
      ==================================
      CVS缺省會(huì)對(duì)文件進(jìn)行keyword(宏)替換,在文件中加入這些關(guān)鍵字是個(gè)良好的工作習(xí)慣
      $Id$ 關(guān)鍵字是用文件名、版本、時(shí)間、作者 及代碼性質(zhì)替換,如果使用-l選項(xiàng)取出,在Exp后
      面會(huì)加上登錄用戶的名稱。除了$Id$關(guān)鍵字,RCS還支持下面常用的關(guān)鍵字:
      $Log$ : 你所提供的修改日志信息。
      $Author$ :存入該版本的作者。
      $Locker$ : 該版本的加鎖者
      $State$ : 該版本的狀態(tài) Exp(試驗(yàn)版), Stabe(穩(wěn)定版), Rel(發(fā)行版).缺省是Exp
      $Date$ : 該版本存入的時(shí)間,使用UTC時(shí)間格式。
      $Revision$ : 該版本的版本號(hào)
      $RCSfile$ : RCS文件名
      $Source$ : RCS全路徑名
      $Name$ : 取回該版本的符號(hào)名
      $Header$ : 相當(dāng)于$ Source $$ Revision$$Date$$Author $$State$$Locker$的組合


      Sticky Tag
      ==================================
      tag的作用是對(duì)多個(gè)連續(xù)變化的文件做一個(gè)快照來(lái)表示某一時(shí)刻的所有不停內(nèi)部版本的文件,一般是項(xiàng)目到一定階段,可以給所有文件統(tǒng)一指定一個(gè)階段里程碑版本號(hào),需要的時(shí)候可以一次導(dǎo)出這些版本不一的文件.標(biāo)記的另外一個(gè)非常重要的作用是生成分支和合并分支.
      1 cvs tag release_name  module_name
      ------------------------------------
      release_name要簡(jiǎn)潔而含義豐富,由字母開(kāi)頭,加字母,數(shù)字,下劃線和連字號(hào)組成,特別是不能含“.”
      2 cvs checkout -r release_name module_name
      ------------------------------------
      取出tag_name標(biāo)志的文件
      3 cvs update -A
      ------------------------------------
      tag標(biāo)識(shí)的文件是歷史文件,不能修改,這樣可在本地去除這個(gè)限制,讓它和當(dāng)前版本合并




      CVS分支管理
      =============================
      CVS可以將歷史劃分成多個(gè)獨(dú)立,并行和互不影響的分支,并去修改歷史
      1 標(biāo)定里程碑
      ------------------------------------
      cvs tag release_1_0 prj_dir_name

      2 開(kāi)始一個(gè)新的里程碑:
      ------------------------------------
      cvs commit -r 2
      標(biāo)記所有文件開(kāi)始進(jìn)入2.x的開(kāi)發(fā)
      注意:CVS里的revsion和軟件包的發(fā)布版本可以沒(méi)有直接的關(guān)系。但所有文件使用和發(fā)布版本一致的版本號(hào)比較有助于維護(hù)。

      3 建立分支
      ------------------------------------
      在開(kāi)發(fā)項(xiàng)目的2.x版本的時(shí)候發(fā)現(xiàn)1.x有問(wèn)題,但2.x又不敢用,則從先前標(biāo)記的里程碑:release_1_0導(dǎo)出一個(gè)分支release_1_0_b2
      cvs rtag -b -r release_1_0 release_1_0_bugfixes prj_dir_name
      -r修飾的是release_1_0,-b 修飾的是release_1_0_bugfixes,cvs的版本號(hào)將變?yōu)?位,以后每分一次支,版本號(hào)增加2位

      4 分支并行開(kāi)發(fā)
      ------------------------------------
      一些人先在另外一個(gè)目錄下導(dǎo)出release_1_0_bugfixes這個(gè)分支:解決1.0中的緊急問(wèn)題,
      cvs checkout -r release_1_0_bugfixes
      分支是可以修改的,并自動(dòng)提交到分支上去
      而其他人員仍舊在項(xiàng)目的主干分支2.x上開(kāi)發(fā)

      5 tag分支
      ------------------------------------
      在release_1_0_bugfixes上修正錯(cuò)誤后,標(biāo)記一個(gè)1.0的錯(cuò)誤修正版本號(hào)
      cvs tag release_1_0_bugfixes_p1

      6 合并分支
      ------------------------------------
      如果2.0認(rèn)為這些錯(cuò)誤修改在2.0里也需要,也可以在2.0的開(kāi)發(fā)目錄下合并release_1_0_patch_1中的修改到當(dāng)前代碼中:
      cvs update -j release_1_0_bugfixes

      7 再次合并分支
      ------------------------------------
      如果又發(fā)現(xiàn)1.x新的bug,我在分支已經(jīng)修改了,并標(biāo)定了release_1_0_patch_2,我們同樣希望把它合并到主干上來(lái)
      cvs update -j release_1_0_bugfixes_p1 -j release_1_0_bugfixes
      它的意思是把release_1_0_bugfixes_p1(tag)到release_1_0_bugfixes(分支)變化了的部分合并到當(dāng)前文件(主干)
      否則用6步的方法,則以前合并的內(nèi)容會(huì)重新合并
      注意:此時(shí)我們使用第5步的結(jié)果
      教訓(xùn):盡早頻繁的tag,但同時(shí)不能導(dǎo)致tag泛濫,tag在不同的分支里可以同名

      8 鎖定分支
      ------------------------------------
      cvs admin -l r_0_2 鎖定r_0_2分支
      cvs admin -l    鎖定主分支

      9 設(shè)置缺省分支
      ------------------------------------
      cvs admin -b r_0_2 設(shè)定r_0_2為缺省分支
      cvs admin -b    設(shè)定主分支

      10 刪除歷史記錄
        如果歷史文件過(guò)多,或確定有幾個(gè)階段的穩(wěn)定版本,我們可以刪除一些歷史文件,以保證cvs的性能
      cvs admin -o rev1:rev2 filename 刪除rev1到rev2的版本,含這兩個(gè)版本
      cvs admin -o rev1::rev2 filename 刪除rev1到rev2的版本,不含這兩個(gè)版本
      如果省略rev1,表示刪除本分支rev2之前的所有版本
      如果省略rev2,表示刪除本分支rev1之后的所有版本
      cvs admin -o rev filename 刪除rev這個(gè)版本的文件
      注意:有tag的版本不能被刪除,所以tag很重要,而且只能刪單個(gè)文件


      CVS服務(wù)器的安裝和配置
      =============================
      1 下載源碼
      ------------------------------------
        可從很多地方下載cvs,也可從官方ftp://ftp.gnu.org/gnu/cvs/下載

      2 安裝,同很多源碼安裝一樣
      ------------------------------------
        gunzip cvs-1.10.6.tar.gz
        tar xvf cvs-1.10.6.tar
        cd cvs-1.10.6
        ./configure
        make
        make install

      3 包的安裝,如果找到具體操作系統(tǒng)的安裝包,則見(jiàn)此操作系統(tǒng)的使用說(shuō)明,比如linux為
      ------------------------------------
        rpm -ivh cvs-1.10.8-3.i386.rpm即可

      4 建立Repository
      ------------------------------------
        groupadd cvs(要訪問(wèn)cvs的用戶加入此組)
        useradd cvsroot
        mkdir /home/cvsroot
        cvs -d /home/cvsroot init
        chown -R cvsroot.cvs /home/cvsroot
        chmod -R ug+rwx /homecvsroot

      5 配置/etc/services文件
      ------------------------------------
       添加cvspserver,如果有就不要加了
      cvspserver 2401/tcp # cvs client/server operations
      cvspserver 2401/udp # cvs client/server operations

      6 配置inetd
      ------------------------------------
        編輯/etc/inetd.conf,加入
      cvspserver stream tcp nowait root /usr/bin/cvs cvs --allow-root=/home/cvsroot pserver
        如果使用tcpwrappers
      cvspserver stream tcp nowait root /usr/sbin/tcpd /usr/bin/cvs --allow-root=/usr/local/newrepos pserver
        如果使用xinetd,編輯/etc/xinetd.d/cvspserver
        service cvspserver
       {
      disable = no
      socket_type = stream
      wait = no
      user = root
      env = HOME=
      server = /usr/bin/cvs
      server_args = -f --allow-root=/home/cvsroot pserver
        }
      pserver表示是口令認(rèn)證,如果要用ssh方式則應(yīng)該是server
      --allow-root是Repository的目錄,可以有多個(gè)此選項(xiàng)來(lái)建立多個(gè)Repository

      7 驗(yàn)證配置成功
        cvs login看時(shí)候能成功登錄,有幾個(gè)可能失敗的地方
        用戶是否屬于cvs組和目錄權(quán)限
        inetd是否正常配置和啟動(dòng),--allow-root是否寫(xiě)對(duì)
      8 導(dǎo)入項(xiàng)目
        把你的所有項(xiàng)目文件放入prj_dir
        cd prj_dir
       cvs import -m "this is a cvstest project" prj_dir v_0_0_1 start
        v_0_0_1是這個(gè)分支的總標(biāo)記.沒(méi)啥用(或曰不常用)
       start 是每次 import 標(biāo)識(shí)文件的輸入層次的標(biāo)記,沒(méi)啥用。


      Watchers
      =============================
      cvs提供了watch的功能,來(lái)幫助大家了解誰(shuí)在干什么,誰(shuí)在對(duì)文件做什么操作,它發(fā)email通知,以協(xié)調(diào)大家的工作。
      1 開(kāi)啟watch功能
        在CVSROOT/notify文件中加入下面行
        ALL mail %s -s "CVS notification"
      2 設(shè)定外部email地址
        缺省是把通知信息發(fā)給本機(jī)的email,要發(fā)給別的地址,在CVSROOT/users加入如下內(nèi)容
        hwz:kerlion@netease.com
      3 watch文件的修改
        cvs watch add filename
        cvs watch remove filename
      4 watch文件的修改
        watch功能是個(gè)大家協(xié)調(diào)的功能,大家必須按一個(gè)統(tǒng)一的工作流程來(lái)做,如果不cvs edit,cvs沒(méi)有辦法通知修改情況
        cvs edit filename
        修改文件
        cvs unedit filename
      5 提醒大家使用watch功能
        cvs沒(méi)有強(qiáng)制使用watch的功能,只有這個(gè)功能在用戶提交完后自動(dòng)把文件變?yōu)橹蛔x的,再使用cvs edit filename就可以修改它了
        cvs watch on
      6 查看那人人再watch
        cvs watchers


      WinCVS的安裝和配置
      =============================
      1、WinCVS簡(jiǎn)介:
      WinCVS是CVS的一個(gè)客戶端軟件,它運(yùn)行在Windows上,用來(lái)在Windows上登錄CVS服務(wù)器,然后進(jìn)行一些CVS相關(guān)的操作與管理。由于當(dāng)前很多的企業(yè)內(nèi)部都采用Linux/Unix做服務(wù)器,而用Windows做客戶端,所以,WinCVS與CVS服務(wù)器配合使用將組成最強(qiáng)有力的版本控制與管理的系統(tǒng)之一。
      2、WinCVS的下載與安裝;
        最新的WinCVS可以從http:///project/showfiles.php?group_id=10072地址下載到,也可以在http:///project 上下載到最新的或其它版本的WinCVS。
        下載到相應(yīng)的版本后根據(jù)向?qū)нM(jìn)行安裝,已經(jīng)要使用CVS的用戶,安裝這個(gè)WinCVS應(yīng)該沒(méi)什么問(wèn)題吧!
      3、配置WinCVS:
      a、Admin->;Preferences…/general
         CVSROOT 按cvsroot格式填寫(xiě)
         Authentication:用來(lái)配置cvs服務(wù)器的認(rèn)證方式一般只要選擇默認(rèn)的pserver方式就可以
             要注意的是必須與cvs服務(wù)器配置時(shí)所指定的認(rèn)證方式一致
                         如果要用ssh server,確認(rèn)在windows中安裝了openssl,openssh
      a、Admin->;Preferences…/Globals
        此項(xiàng)的配置主要是要注意這幾選項(xiàng):
        Checkout read-only:默認(rèn)是選中的,建議不要修改,只是修改文件前需要先edit selection,提交后又自動(dòng)變?yōu)橹蛔x
                     這樣有兩個(gè)好處:
                      一個(gè)是可以通過(guò)unedit selection來(lái)undo你做的修改
                      二是可以符合watch功能的使用規(guī)范
        Prune empty directories: 不要選上,否則,會(huì)自動(dòng)刪除空目錄;
      4、登錄服務(wù)器:
         選擇Admin->;login,將出現(xiàn)如下對(duì)話框要求用戶輸入登錄口令
         wincvs中命令的exit code 0表示正確執(zhí)行,否則是失敗,一般成功顯示為
         *****CVS exited normally with code 0*****
      5、winCVS的使用都有菜單,大家熟悉cvs的使用的話,用起來(lái)是很容易的,我就不多說(shuō)了


      CVSWEB的安裝
      =============================
      CVSWEB就是CVS的WEB界面,可以大大提高程序員定位修改的效率:
      使用的樣例可以看:http://www./cgi/cvsweb.cgi

      CVSWEB的下載:CVSWEB從最初的版本已經(jīng)演化出很多功能界面更豐富的版本,這個(gè)是個(gè)人感覺(jué)覺(jué)得安裝設(shè)置比較方便的:
      http://www./software/linux/cvsweb/

      1 下載解包:
      tar zxf cvsweb.tgz

      2 把配置文件cvsweb.conf復(fù)制到apache的配置目錄下
       cp cvsweb.conf /path/to/apache/conf
      轉(zhuǎn)到/path/to/apache/conf下并修改cvsweb.conf:
      修改CVSROOT路徑設(shè)置:
      %CVSROOT = (
      ‘Development‘ =>; ‘/path/to/cvsroot/dev‘, #<==修改指向本地的CVSROOT
      ‘test‘ =>; ‘/path/to/cvsroot/test‘, #<==修改指向本地的CVSROOT
      );
      如果有多個(gè)cvsroot,這定缺省的cvsroot
      $cvstreedefault = ‘test‘;

      3 其它個(gè)性化設(shè)置
       cvsweb.conf還有許多其它個(gè)性化設(shè)置,常見(jiàn)的有這些變量:
       $logo 圖標(biāo)設(shè)置
       $defaulttitle 標(biāo)題設(shè)施
       $address 管理員email地址設(shè)置
       $long_intro 介紹文字
       $short_instruction  說(shuō)明文字

      4 把文件cvsweb.cgi復(fù)制到apache的cgi目錄
       cp cvsweb.cgi /path/to/apache/cgi-bin
       轉(zhuǎn)到/path/to/apache/cgi-bin修改cvsweb.cgi
      修改cvsweb.cgi讓CGI找到配置文件:
      $config = $ENV{‘CVSWEB_CONFIG‘} || ‘/path/to/apache/conf/cvsweb.conf‘;

      5 中文支持
       讓cvsweb正確顯示中文,找到sub html_header($)函數(shù),
       然后在<html>;和<title>;之間插入一行,修改如下
       <html>;
       <meta http-equiv="Content-Type" content="text/html; charset=gb2312">;
       <title>;$title</title>;
      6 復(fù)制所有的gif,png文件到apache的icons目錄
      7 增加訪問(wèn)控制
      CVSWEB可不能隨便開(kāi)放給所有用戶,因此需要使用WEB用戶認(rèn)證:
      先生成 passwd:
      /path/to/apache/bin/htpasswd -c cvsweb.passwd user

      修改httpd.conf: 增加
      <Directory "/path/to/apache/cgi-bin/cvsweb/">;
      AuthName "CVS Authorization"
      AuthType Basic
      AuthUserFile /path/to/cvsweb.passwd
      require valid-user
      </Directory>;

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多