亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
使用CVS進行項目開發管理
作者:網絡轉載 發布時間:[ 2013/2/17 16:40:52 ] 推薦標簽:

  在多人共同開發一個大型項目時,源代碼的維護和版本維護是一件令人頭疼的事情,由于多人開發,每個開發人員都擁有此項目的副本,所以如果要手動維護同一個文件多人的修改是十分困難的事情。
  另外,可能你需要的項目的版本不是當前開發的新的版本, 如果為了這個目的而為每一個版本保留一個備份幾乎是不可能的。Linux平臺上提供了一個功能軟件:CVS。眾所周知,Linux的發展得益于互聯網的發展,大部分的軟件都是眾多開發者在互聯網上共同開發的,這些軟件的維護大部分都使用CVS,例如Deban Linux的開發、KDE的開發,以及sourceforg上的開發項目。正確熟練使用CVS是一個Linux程序員基本的素質。
  
  CVS不僅可以維護源代碼,事實上,所有的文本文件都可以使用CVS來管理,當然也可以管理 二進制文件,只是需要特殊的命令選項罷了。
  
  CVS把文件保存在一個名叫倉庫(repository)的地方,倉庫中保存的文件并不是每個版本的副本,而是可以從任意版本回溯到初始版本的一些代碼的主控信息,這樣,節省了大量的存儲空間。
  倉庫不僅可以建立在本機上,也可以建立在網絡上。另外CVS支持版本分支(tag),這樣可以從任意的版本中衍生出另外一個版本進行開發,必要時,還可以把這個分支合并到主開發分支去。
  
  CVS需要一個名叫RCS(修訂控制系統)的軟件,確切說,CVS主要管理開發項目中的目錄的改動,而RCS則側重于管理的一個文件的改變。如果要使用網絡的CVS,還需要rsh或者自己內置的cvs-server,rsh是CVS客戶于服務器的通信平臺,如果需要安全的信息傳輸,可以使用ssh,這個可以使用CVS_RSH環境變量來指定:
  export CVS_RSH=rsh 使用rsh
  export CVS_RSH=ssh 使用ssh
  
  RCS使用
  在使用CVS之前,先介紹一下RCS的使用方法。
  正如前面所說,RCS是針對某一個特定的文件進行管理,常用到的命令是co和ci。RCS使用當 前工作路徑下的RCS目錄來存儲管理的文件。
  ci (check in)把源代碼加入到RCS源代碼倉庫中,每一個添加進代碼庫中的文件的版本是 1.1。
  以后每次修改文件重新ci以后,此文件的版本遞增為1.2 ,1.3.……。
  co(check out)把源文件從RCS源代碼倉庫中取出,缺省的版本是新的版本,如果你需要一個指定的版本,則需要使用-r選項指定。例如:
  $mkdir RCS 建立RCS源代碼倉庫
  編輯一個文件,如hello.c
  #include <stdio.h>
  int main (void)
  {
  printf ("Hello World ");
  return 0;
  }
  然后把它加入到RCS倉庫中:
  [kerberos@power zhyf]$ ci hello.c
  RCS/hello.c,v <-- hello.c
  enter description, terminated with single '.' or end of file:
  NOTE: This is NOT the log message!
  >>the inital verion. 輸入關于文件改動的信息
  >> . 以.結束信息輸入
  initial revision: 1.1 初始版本是1.1
  done
  [kerberos@power zhyf]$
  當文件加入到源代碼倉庫后,RCS會自動刪除文件。
  
  如果需要修改文件,則從倉庫取出:
  [kerberos@power zhyf]$ co hello.c
  RCS/hello.c,v --> hello.c
  revision 1.1
  done
  此時,取出的文件是只讀的,如果需要編輯文件,需要對文件加鎖取出,防止與他人編輯沖突。 
  加鎖取出使用-l (lock)選項。
  [kerberos@power zhyf]$ co -l hello.c
  RCS/hello.c,v --> hello.c 從RCS倉庫中取出hello.c,倉庫中的文件是以v結尾的。
  revision 1.1 (locked) 指明是加鎖取出
  done
  這時,我們可以修改和編輯文件了。
  例如:
  #include <stdio.h>
  int main (void)
  {
  printf ("Hello World ");
  printf("checkoutwithlock "); 添入代碼
  return 0;
  }
  [kerberos@power zhyf]$ ci hello.c
  RCS/hello.c,v <-- hello.c
  new revision: 1.2; previous revision: 1.1 重新加入到倉庫,文件版本遞增為1.2
  enter log message, terminated with single '.' or end of file:
  >> check out with lock and modified it .
  >> .
  done
  如果你需要先前的hello.c,也是1.1版本的,可以使用-r來指定取出文件的版本:
  [kerberos@power zhyf]$ co -l -r1.1 hello.c
  hello.c,v --> hello.c
  revision 1.1 (locked) 取出1.1版本
  done
  可以嘗試使用兩次加鎖取出,這時候,RCS會提示警告信息。
  [kerberos@power zhyf]$ co -l hello.c
  hello.c,v --> hello.c
  revision 1.1 (locked)
  writable hello.c exists; remove it? [ny](n) 是否覆蓋當前的hello.c
  如果回答n,則取出失敗,回答是則覆蓋當前文件與-l相反的選項是-u,取出不加鎖的文件用于工作。-f則在ci時強制覆蓋RCS倉庫中的文件,在co時強制覆蓋當前的文件。 
  
  在RCS中,支持類似于宏的關鍵字,在ci后,這些關鍵字會被RCS替換成特定的信息,如$Id$關鍵字:
  /*$Id
  */
  #include <stdio.h>
  int main (void)
  {
  printf ("Hello World ");
  printf("checkoutwithlock ");
  return 0;
  }
  ci 之后,然后取出,文件將變成:
  /*$Id: hello.c,v 1.3 2001/02/22 16:16:58 kerberos Exp kerberos $
  */
  #include <stdio.h>
  int main (void)
  {
  printf ("Hello World ");
  printf ("check out with lock ");
  return 0;
  }
  $Id$ 關鍵字是用文件名、版本、時間、作者 及代碼性質替換,如果使用-l選項取出,在Exp后面會加上登錄用戶的名稱。除了$Id$關鍵字,RCS還支持下面常用的關鍵字:
  $Log$ : 你所提供的修改日志信息。
  $Author$ :存入該版本的作者。
  $Locker$ : 該版本的加鎖者
  $State$ : 該版本的狀態 Exp(試驗版), Stabe(穩定版), Rel(發行版).缺省是Exp
  $Date$ : 該版本存入的時間,使用UTC時間格式。
  $Revision$ : 該版本的版本號
  $RCSfile$ : RCS文件名
  $Source$ : RCS全路徑名
  $Name$ : 取回該版本的符號名
  $Header$ : 相當于$ Source $$ Revision$$Date$$Author $$State$$Locker$的組合在UNIX/Linux下有一個diff工具可以比較兩個文件的不同,rcsdiff可以在不同的版本之間比較文件的不同,而不必取出文件,如:
  rcsdiff hello.c 比較當前hello.c文件與RCS倉庫中新版本的區別。
  rcsdiff -r1.1 hello.c 比較當前hello.c文件與hello.c的1.1版本的區別。
  rcsdiff -r1.2 -r1.1 比較hello.c 文件的1.1版本和1.2版本的區別。
  使用這個命令,可以很方便的做出任意版本之間的補丁文件。
  另外,還有其他一些不常用的RCS命令,讀者可以參考更詳細的資料。

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 免费一级特黄a | 日本aaaa级 | 一区二区视频在线播放 | 国产成人拍精品视频网 | 国精品日韩欧美一区二区三区 | 美女污视频网站 | 亚洲系列在线 | 插插天天 | 成 人 亚洲 综合天堂 | 午夜精品久久久久久久久 | 麻豆xfplay国产在线观看 | 正在播放亚洲一区 | 五月天激情婷婷婷久久 | 在线欧美国产 | 精品国产成人 | 成人午夜在线观看国产 | 色香影视 | 免费观看色| 日本中文字幕精品理论在线 | 男女性色大片免费网站 | 日韩欧美一区二区三区中文精品 | 天天拍天天色 | 狠狠色狠狠色综合日日92 | 欧美日韩另类在线观看视频 | 手机看片一区 | www.妞干网.com | 狠狠色噜噜狠狠狠狠色综合网 | 97人洗澡人人澡人人爽 | 波多野结衣视频在线播放 | 欧美本道 | 欧美人成片免费看视频不卡 | 美女网黄 | 日日操夜夜草 | 黄网页在线观看 | 国产亚洲精品观看91在线 | 碰碰碰人人澡人人爱摸 | yy4138殇情理论片一级毛片 | 国产精品久久久久久福利漫画 | 亚洲精品乱码久久久久久蜜桃欧美 | 2019年中文字字幕视频 | 黑丝写真|