- 版本控制 Version Control( VC )
- VC 是指發展程式文件檔案時,檔案版本的儲存和管理的功能。
- 程式發展過程,需要重複的修改、暫存、測試以期得到正確的結果。
- 每次修改的結果分以不同的檔案儲存起來,以避免重要訊息的流失和除錯時的困難。
- RCS ( Revision Control System ) 為提供 VC 環境的工具。
- RCS 的功能
- 提供一些命令來管理原始碼檔案。
- 透過一個檔案來管理一系列的修改動作,檔案紀錄足以恢復先前的版本。
- 只儲存不同版本之間的修正部分,所以非常節省空間。
- 能比較檔案各版本之間的不同。
- 將一些完成除錯的版本內容與其它檔案版本整合( merge )。
- 產生檢查點( Check-Point )與除錯
- 設立檢查點:在檔案完成階段目標後,將其內容當成一個版本,給予一個版本序號(revision number)存起來。
- 除錯( debug )時可取出先前的版本, 找出錯誤( bug )發生前的階段,
- 比較錯誤( bug )發生前後版本間的差異, 進而找出錯誤發生的原因。
- 產生標記符號
- 專案發展需要結合數個程式檔案,每個版本的檔案個數不一定相同。
- 不同的專案亦可能用到相同的檔案。
- RCS 除了以版本序號代表該版本外,也可產生標記符號( mark symbol )來代表某些特別的版本。
- 版本序號通常是由 RCS 自動編排,而標記符號則需要使用者自己針對特別的版本產生。
- 若需要指出某些版本為相關(例如:同專案),則可給序特定符號以供辨識。
- 版本比較與合併
- RCS 能比較檔案各版本之不同,幫助使用者瞭解版本間的差異。
- 檔案版本的比較之訊息,往往是除錯的重要訊息。
- RCS 也可將兩個版本的差異與正在工作的檔案版本整合( merge )。
- 存取名單
- 支援多人工作環境中檔案存取權的管理以及避免同時編輯相同檔案的發生。
- 提供存取名單( access list )的設立,記錄有存取權使用者。
- 存取名單設定
- 記錄在存取名單的使用者才有讀寫檔案的權限。
- 存取名單內的使用者同時具有讀、寫、執行三種權限。
- 鎖檔
- 鎖檔( lock )的功能主要避免同時多人寫入同一檔案。
- 一個檔案同時只能有一個使用者做編輯的動作;
- 在 RCS 中若要對檔案做修改的動作, 必先鎖住( lock )該檔案;
- 被鎖住的檔案, 不可以再被其它使用者鎖住。
- 鎖檔方式:
- strick lock:只有被鎖住的檔案版本,才能有寫入的動作,此為預設鎖檔方式。
- nonstrick lock:可寫入檔案的任一版本。因容易發生錯誤,所以通常不與考慮使用。
練習題
- 何謂版本控制 Version Control( VC )?
Sol.
指發展程式文件檔案時,檔案版本的儲存和管理的功能。
- 發展程式文件檔案時,為什麼要做版本控制?
Sol.
程式發展過程,需要重複的修改、暫存、測試以期得到正確的結果,而每次修改的結果分以不同的檔案儲存起來,以避免重要訊息的流失和除錯時的困難。
- 請簡述三項 RCS 功能。
Sol.
1.提供命令管理原始碼檔案。2.能比較檔案各版本之間的不同。3.能將完成除錯的版本與其它版本整合。
- 在檔案完成階段目標後, RCS 會在此設立檢查點,將其內容存起來,並給予一個號碼,稱之為何?
Sol.
版本序號 (revision number)
- RCS 中除了自動編排的版本序號外,使用者還可以依個別需求自訂符號,稱之為何?
Sol.
標記符號( mark symbol )
- 請說明 RCS 中,存取名單( access list )的功能。
Sol.
1.支援多人工作環境以避免同時編輯相同檔案的發生。2.存取名單記錄有存取權使用者。
- 請說明 RCS 中,鎖檔( lock )的功能。
Sol.
1.避免同時多人寫入同一檔案。2.若要對檔案做修改,必先鎖住該檔案。3.被鎖住的檔案,不能再被其它使用者鎖住。
- 請說明 RCS 中,鎖檔( lock )的方式。
Sol.
1.strick lock:只有被鎖住的檔案版本,才能有寫入的動作,此為預設鎖檔方式。
2.nonstrick lock:可寫入檔案的任一版本。因容易發生錯誤,所以通常不與考慮使用。
- RCS 指令 ci 之功能為何?
Sol.
將檔案版本寫入管理檔案。
- RCS 指令 co 之功能為何?
Sol.
把檔案的某個版本從管理檔案讀出。
- RCS 中版本主支的序號如何設定?
Sol.
1.以 m.n 為單位, m 為主要號碼,n 為次要號碼;2.預設的版本序號從 1.1 開始。
- RCS 中版本分支的序號如何設定?
Sol.
1.在原版本的版本序號後加上 .m.n。例如:版本 1.2 產生的分支為 1.2.1.1,版本 1.2.1.1 產生的分支為 1.2.1.1.1.1。
- 請說明 RCS 中,附記( log )的功能。
Sol.
版本在寫入時,產生該版本的附記,可以記錄該版本的一些特性。
DYWANG_HOME