查看完整版本: CVS介绍

铁血霸主 2007-12-12 20:15

CVS介绍

             <p>高嘉良 <BR>CVS的<a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%B9%A4%D7%F7');" target="_self"><u><strong>工作</strong></u></a>模式: <BR>首先CVS不是一个开发环境,它只实现开发过程中的源文件共享和同步问题。 <BR>一个最简单的工作流程如下: <BR>1 CVS CHECKOUT: 将源文件包同步到开发目录下; <BR>2 对其中的文件进行修改; <BR>3 将修改COMMIT到源文件包中,实现一次版本的升级。 <BR><BR>当然,CVS最重要的特性是能让你了解开发过程中谁,何时对那些源文件进行了什么修 <BR>改 <BR>一下是一个CVS系统简介 <BR><BR>作者: 高嘉良 (Chia-liang Kao) &amp;lt;clkao@cirx.org&amp;gt; <BR><BR>* 什麼是 cvs? <BR><BR>cvs 是一個版本控制系統. 什麼是版本控制系統呢? 簡單的說, 他可以記錄程式碼修改 <BR>的過程, 有一個完整的 history. <BR><BR>闢如說, 當你在修改程式碼的時候, 不小心寫出了一個 bug, 但是你可能很久以後才發 <BR>現多出了這個 bug, 這個時候, cvs 就能很 <BR>有效的幫助你, 找出到底是在哪一次的修改中, 出現了這個 bug.或許你會說, 那我每 <BR>次都把程式碼存起來, tar 起來不就好了, <BR>當然, 你是可以這麼做, 但是這太浪費空間了! cvs 在版本更改間, 只儲存他們的 <BR>diff 檔, 這樣可以很有效的省下很多空間. <BR><BR>再另一個場合裡頭, 更能顯示出 cvs 的好處 -- 多人一起發展軟體的時候. cvs 支援 <BR>remote access, user 並可以對他要修改的 <BR>檔案加上 edit 的 flag, 讓別人知道他要修改這個檔案了. 然而, 一個較大的發展團 <BR>隊, 一定還會需要一個 mailing list, 用來溝通.因為, cvs 只是一個管理 project <BR>程式碼的工具, 他並不扮演溝通的角色. <BR><BR>* 名詞 <BR><BR>repository: 意思是倉庫. 在 cvs 裡頭, 就是你真正存放版本歷史的地方. CVS把一份 <BR>由多个文件组成的软件按包存储,并记录每个文件的修改信息。 <BR><BR>pserver : 這是 cvs 用來接受 remote 的 cvs command 用的用户认证服务。cvs 有兩 <BR>種模式, 一種是 local, 一種是 remote. <BR><BR>cvsroot : 當你使用 cvs 的時候, 必須設定 CVSROOT 這個環境變數, 或是用 -d 這個 <BR>選項來指定. <BR><BR>…………………… <BR><BR><a href="http://www.phpchina.com/javascript:;" onClick="javascript:tagshow(event, '%B0%B2%D7%B0');" target="_self"><u><strong>安装</strong></u></a>过程如下: <BR><BR>http://www.cyclic.com <BR>DOWN源文件 <BR><BR>$ ./configure <BR>$ make <BR>(run the regression tests if desired) <BR>$ make install <BR>(create a repository if you don't already have one) <BR><BR>设置CVSROOT环境变量: <BR>bash: <BR>CVSROOT=/src/master; export CVSROOT <BR>csh: <BR>setenv CVSROOT /src/master <BR><BR>/src/master为CVS存放软件包的根目录。 <BR><BR>——————————————————————————————————-- <BR>启动远程访问认证的PSERVER服务。 <BR>su root <BR>檢查 /etc/services 有沒有這兩行, 沒有請加入: <BR><BR>cvspserver 2401/tcp #CVS network server <BR>cvspserver 2401/udp #CVS network server <BR><BR>再 /etc/inetd.conf 加入: <BR><BR>cvspserver stream tcp nowait root \ <BR>/usr/bin/cvs cvs -b /usr/bin --allow-root /src/master pserver <BR><BR>mkdir /src/master <BR>—————————————————————————————— <BR>给远程用户添加帐号 <BR>adduser anoncvs, 這是要給 anonymous cvs 用的. group 為 nogroup. <BR><BR>新加一個dev的group. <BR><BR>adduser 參與 dev 的帳號, 當然, 把他們的 group 設為 dev <BR><BR>CVS的用户帐号和UNIX及NT的用户帐号无关,CVS用户帐号都保存在 $CVSROOT中的passwd <BR>readers writers目录下 <BR>格式: <BR>userid:encryptedpasswd:map Unix userid <BR><BR>一下是一个生成加密PASSWD的perl脚本: <BR><BR>///////// <BR>#!/usr/bin/perl <BR><BR>srand (time()); <BR>my $randletter = &amp;quot;(int (rand (26)) (int (rand (1) .5) % 2 ? 65 : 97))&amp;quot;; <BR>my $salt = sprintf (&amp;quot;%c%c&amp;quot;, eval $randletter, eval $randletter); <BR>my $plaintext = shift; <BR>my $crypttext = crypt ($plaintext, $salt); <BR><BR>print &amp;quot;${crypttext}\n&amp;quot;; <BR>////////////// <BR><BR>将这个小程序设置为可执行:cryptout.pl: <BR><BR>ls -l ./cryptout.pl <BR><BR>-rwxr-xr-x 1 root root 265 Jun 14 20:41 /usr/local/bin/cryptout.pl <BR>floss $ cryptout.pl &amp;quot;PASSword1&amp;quot; <BR>sB3A79YDX5L4s <BR><BR>就生成了加密的密码&amp;quot;PASSword1&amp;quot;字符串 <BR><BR>按照 <BR>userid:encryptedpasswd:map Unix userid格式加到PASSWD文件里。readers writers <BR>都是userid的列表。 <BR><BR>passwd文件样例: <BR>anoncvs:sB3A79YDX5L4s:anoncvs <BR>acvsreader:sB3A79YDX5L4s:che <BR>cheche:sB3A79YDX5L4s:che <BR>acvswriter:sB3A79YDX5L4s:che <BR><BR>readers文件样例: <BR>acvsreader <BR>anoncvs <BR><BR>writers文件样例: <BR>cheche <BR>acvswriter <BR><BR><BR>CVS SERVER的安装应该是没有什么问题了, 我下一步主要是研究WINCVS的使用和如何实 <BR>现CVS的WEB访问。实现客户端非常方便的访问。 <BR>www.wincvs.org <BR><BR>che@office,chedong@netease.com <BR>icq: 31928674 <BR></p>     <center><input type="image" onclick=copyToClipBoard() src="http://www.phpchina.com/images/phpcn_book_bu_tj.gif" border="0"></center>
页: [1]
查看完整版本: CVS介绍
PageRank