您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > cvs
LinuxCVS服務(wù)器與WinCVS的配置與使用
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/2/19 16:10:27 ] 推薦標(biāo)簽:

  當(dāng)用戶B選擇“Commit Selection”時將提示:
  cvs server: Up-to-date check failed for `example.h'
  cvs [server aborted]: correct above errors first!
  此時表明已經(jīng)有用戶對同一個文件example.h進(jìn)行修改并提交到CVS服務(wù)器,這時要先選擇“Update Selection”對本地example.h與CVS服務(wù)器上的example.h文件進(jìn)行同步與合并,不用選中出現(xiàn)的任何選項,直接選擇“OK”,這時將顯示如下:
  cvs -z9 update example.h (in directory C:my cvsSTWsrc)
  RCS file: /home/cvsroot/STW/src/example.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  Merging differences between 1.5 and 1.6 into example.h
  M example.h
  
  ***** CVS exited normally with code 0 *****
  表明用戶B與用戶A的修改已經(jīng)合并成功,同時文件example.h的圖標(biāo)也將變成紅色,合并后的文件是存放在用戶B的本地機(jī)上,為了更新到CVS服務(wù)器還必須選中example.h并右擊選擇“Commit Selection”才能把用戶A與用戶B的修改合并后的結(jié)果提交到CVS服務(wù)器上。注:M表示此文件已經(jīng)被修改過。
  c)、兩個或兩個以上的用戶對同一個文件的相同部分進(jìn)行修改的情況
  這種情況是如用戶A與用戶B都下載了文件example.h,內(nèi)容如下:
  void main(int argv,char *argc)
  {
  printf("I am Cather ");
  }
  然后用戶A把文件修改成如下,并提交到CVS服務(wù)器(一般將正常提交):
  void main(int argv,char *argc)
  {
  printf("I am Cather ");
  printf("I am Pat ");
  }
  接著用戶B又把文件修改成如下:
  void main(int argv,char *argc)
  {
  printf("I am Cather ");
  printf("I love you Cather ");
  }
  如果用戶B這時選擇“Commit Selection”準(zhǔn)備把修改結(jié)果提交到CVS服務(wù)器,此時將顯示如下的錯誤提示:
  cvs -z9 commit -m "update in 11:20" example.h (in directory C:my cvsSTWsrc)
  cvs server: Up-to-date check failed for `example.h'
  cvs [server aborted]: correct above errors first!
  
  ***** CVS exited normally with code 1 *****
  表明用戶B的修改與其它用戶的修改沖突,這時要先選擇“Update Selection”,將顯示如下提示:
  cvs -z9 update example.h (in directory C:my cvsSTWsrc)
  RCS file: /home/cvsroot/STW/src/example.h,v
  retrieving revision 1.9
  retrieving revision 1.10
  Merging differences between 1.9 and 1.10 into example.h
  rcsmerge: warning: conflicts during merge
  cvs server: conflicts found in example.h
  C example.h
  
  ***** CVS exited normally with code 0 *****
  example.h前面的C表示與其它用戶的修改有沖突,并且文件的圖標(biāo)會加顯示一個“C”,如下所示:
  
  雙擊example.h將顯示example.h的內(nèi)容,如下:
  void main(int argv,char *argc)
  {
  printf("I am Yanxi ");
  printf("I am Cather ");
  <<<<<<< example.h
  printf("I love you Yanxi,too! "); //這部分為你的修改
  =======
  printf("I love you Cather! "); //這部分為其它用戶的修改
  >>>>>>> 1.10
  }
  這時你應(yīng)該與用戶A進(jìn)行協(xié)商以決定終要怎樣修改。比如,可以修改成:
  void main(int argv,char *argc)
  {
  printf("I am Yanxi ");
  printf("I am Cather ");
  printf("I love you Yanxi,too! "); //這部分為你的修改
  printf("I love you Cather! "); //這部分為其它用戶的修改
  }
  然后選擇“Commit Selection”進(jìn)行提交,將顯示如下的提示信息:
  cvs -z9 commit -m "update in 11:20" example.h (in directory C:my cvsSTWsrc)
  Checking in example.h;
  /home/cvsroot/STW/src/example.h,v <-- example.h
  new revision: 1.11; previous revision: 1.10
  done
  
  ***** CVS exited normally with code 0 *****
  表明用戶A與用戶的修改已經(jīng)合并成功。
  
  這樣,向CVS服務(wù)器提交文件所會遇到的問題也基本上是這些,用戶要根據(jù)所遇到的實際問題進(jìn)行修改。
  
  7、 向CVS服務(wù)器添加新文件
  在本地添加文件后,要提交到服務(wù)端。先選中文件,然后點擊“添加按鈕”,添加文件后,再在右鍵菜單中選擇提交命令“Commit Selection”即可。
  
  如圖,選中文件example.h.bak,因為example.h.bak當(dāng)前不是CVS的文件,此時“添加按鈕”將由不可選狀態(tài)變成可選狀態(tài),所以Status中顯示為“NonCvs file”,選擇“添加按鈕”之后example.h.bak圖標(biāo)將變成紅色并增加了一個A字母,如下:
  
  然后選中example.h.bak,右擊,選擇“Commit Selection”把文件example.h.bak提交到CVS服務(wù)器上而成為CVS的一個文件。
  
  8、 結(jié)束語
  來到這里,你基本上已經(jīng)能為自己或公司配置一個實用的CVS服務(wù)器與WinCVS客戶端,配合使用CVS進(jìn)行系統(tǒng)開發(fā)或其它文檔的版本管理與控制。

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd