看板 NTUGIEE_EDA 關於我們 聯絡資訊
CVS Server 設定: 1. 安裝 CVS (以 Sun 系統為例): pkgadd -d cvs-1.11.17-sol9-sparc-local 2. 環境設定: mkdir /export/home/cvsroot groupadd cvs chmod 771 /export/home/cvsroot 3. 產生 CVSROOT: cvs -d /export/home/cvsroot init chown -R root:cvs /export/home/cvsroot 4. 設定 CVS server vim /etc/inetd.conf cvsserver stream tcp nowait root /usr/local/bin/cvs cvs -f \ --allow-root=/export/home/cvsroot pserver vim /etc/services cvsserver 2401/tcp # cvs server tcp port cvsserver 2401/udp # cvs server udp port 5. 將 CVS client (以 user1、user2 為例) 加入 cvs group: vim /etc/group cvs::896:user1,user2 6. 重新啟動 inetd /etc/init.d/inetsvc stop /etc/init.d/inetsvc start server 設定完畢 :) CVS client 設定: 1. 設定 CVSROOT: export CVSROOT=:pserver:eda5.ee.ntu.edu.tw:/export/home/cvsroot/ 2. 登入 CVS 系統: cvs login 3. 將要由 CVS 控管的程式目錄 (以目錄 test 為例) 加入 CVS 系統: cd test cvs import -m "this is a test project" test v_0_0_0_1 start 4. 移除本地的原程式目錄 (先備份): rm -r test 5. 從 CVS 下載控管的版本: cvs checkout test client設定完畢 :) client 常用指令: ‧更新 local 的檔案,和 CVS 系統檔案同步: cvs update ‧看看 CVS 有沒有更新的檔案: cvs status Up-to-date :表示 local 的檔案是最新的。  Locally Modified:表示 local 的檔案你曾經修改過,但還沒有上傳, local 的版本比 CVS 系統還新。 Needing Patch : 表示有個組員已經修改過該檔案並且已經上傳了, local 的版本比 CVS 系統裡的舊。 Needs Merge :表示 local 的檔案你曾經修改過,還沒有上傳, 但是有個組員也修改了這個檔案,而且還上傳給 CVS 系統了。 ‧修改一個檔案後 (以 test.c 為例) 上傳至 CVS 系統: cvs commit -m "add a command" test.c ‧比較 之前 1.1 版的 test.c 和現在的有什麼不同: cvs diff -r1.1 test.c cvs diff -r1.1 -c test.c (完整列出全部 code) ‧新增檔案 (以 new.c 為例): cvs add new.c cvs commit new.c ‧刪除檔案 (以 old.c 為例) rm old.c cvs remove old.c cvs commit old.c ‧為目前的版本加入註記 tag (以 v1_2 為例): cvs tag v1_2 ‧重新取出之前的版本: 當您取出過去的專案時,目前的工作版本會暫時變成舊專案,若修改它,您是無法 把它存入 CVS 系統中。因為它是過去的歷史,CVS 不容許您修改歷史,此時必須在 原先的發展路線上,開闢另外一個分支(branch),所有修正的程式碼,全部在這條 分支上去進行。 (1). 依 tag 取出 (以 v1_1 為例): (a) 另闢一個新目錄,切換到該目錄下,執行: cvs checkout -r v1_1 (b) 將目前的 local 檔案變為之前的版本: cvs update -r v1_1 (2). 依時間點取出: 取出 2002-10-19 10:00:00 之前的專案 cvs update -D "2002-10-19 10:00:0 GMT" 回至最新工作版本: cvs update -A ‧大幅更新注意事項: 請用 #if 0 ... #endif 取代直接刪除。  大幅更新可用分支的技巧,如下: 先標記一個版本:  cvs tag v_0_0_1  通知組員後,刪除這個版本的 local 檔案 (不是刪除 CVS 的):  cvs release -d test  生成一個新分支:  cvs rtag -b -r v_0_0_1 v_0_0_1_1 test  再建立此 v_0_0_1_1 版本到 local  cvs checkout -r v_0_0_1_1 test   -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.30.73 ※ 編輯: yellowfishie 來自: 140.112.25.218 (02/19 20:49)