next up previous contents
Next: 版本比較與整合 Up: *RCS 版本控制系統 Previous: 識別關鍵字串   Contents

標記符號

  • 何謂標記符號( mark symbol )?
    1. 標記符號是指一個版本除 revision number 外賦予的符號名稱。
    2. 當版本很多時,若各個版本只以 revision number 區分,則不易找到其中特定的版本。
    3. 因為只從 revision number 很難知道該版本的內容,故 RCS 提供自訂版本標記符號之功能,以利了解各版本之關係。

  • 如何產生標記符號:
    1. 產生指令 ci -n 加入或之後用 rcs -n 加入,一般建議的形式是用數字跟下底線 "_" 來建構標記符號,例如 sym1_0 sym1_0_1 等。
      [dywang@dywOffice testrcs]$ rcs -nmarkSymbol1_6:1.6 important.c
      RCS file: RCS/important.c,v
      done
      
    2. 除 RCS 的特殊字元不能使用( 包括 $ (錢字號) ,(逗號) .(句點) ;(分號) :(冒號) 以及 @ 等符號 )外,不限制符號的形式。
      [dywang@dywOffice testrcs]$ ci -n$markSymbol_1 important.c
      ci: missing symbolic name after -n
      [dywang@dywOffice testrcs]$ ci -nmark,Symbol_1 important.c
      ci: invalid symbol `mark,Symbol_1'
      ci aborted
      [dywang@dywOffice testrcs]$ ci -nmark.Symbol_1 important.c
      ci: invalid symbol `mark.Symbol_1'
      ci aborted
      [dywang@dywOffice testrcs]$ ci -nmark@Symbol_1 important.c
      ci: invalid symbol `mark@Symbol_1'
      ci aborted
      [dywang@dywOffice testrcs]$ ci -nmark$Symbol_1 important.c
      RCS/important.c,v  <--  important.c
      file is unchanged; reverting to previous revision 1.6
      done
      
    3. 以 rlog 指令查詢產生的標記符號
      [dywang@dywOffice testrcs]$ rlog -h important.c
      
      RCS file: RCS/important.c,v
      Working file: important.c
      head: 1.6
      branch:
      locks: strict
      access list:
      symbolic names:
              mark: 1.6   %*<== 因使用符號 $,造成錯誤(原為 mark$Symbol_1)*)
              markSymbol1_6: 1.6
      keyword substitution: kv
      total revisions: 7
      ===============================================================
      
    4. 可在一個版本產生多個標記符號。例如在版本 1.2 處產生標記符號 r1_0 及 r1_0_head:
      [dywang@dywOffice testrcs]$ rcs -nr1_0:1.2 -nr1_0_head:1.2 important.c
      RCS file: RCS/important.c,v
      done
      
    5. 再以 rlog 指令查詢產生的標記符號
      [dywang@dywOffice testrcs]$ rlog -h important.c
      
      RCS file: RCS/important.c,v
      Working file: important.c
      head: 1.6
      branch:
      locks: strict
      access list:
      symbolic names:
              r1_0_head: 1.2
              r1_0: 1.2
              mark: 1.6
              markSymbol1_6: 1.6
      keyword substitution: kv
      total revisions: 7
      ===============================================================
      

  • 如何取消標記符號?
    1. 以 rcs 指令取消標記符號: -n 直接接要取消的標記,而不接 :[revision number]
      [dywang@dywOffice testrcs]$ rcs -nmark important.c
      RCS file: RCS/important.c,v
      done
      
    2. 以 rlog 指令查詢產生的標記符號。
      [dywang@dywOffice testrcs]$ rlog -h important.c
      
      RCS file: RCS/important.c,v
      Working file: important.c
      head: 1.6
      branch:
      locks: strict
      access list:
      symbolic names:
              r1_0_head: 1.2
              r1_0: 1.2
              markSymbol1_6: 1.6
      keyword substitution: kv
      total revisions: 7
      ===============================================================
      
    3. 以 rcs 指令一次取消多個標記符號
      [dywang@dywOffice testrcs]$ rcs -nr1_0 -nr1_0_head important.c
      RCS file: RCS/important.c,v
      done
      
    4. 再以 rlog 指令查詢,只剩一個標記符號。
      [dywang@dywOffice testrcs]$ rlog -h important.c
      
      RCS file: RCS/important.c,v
      Working file: important.c
      head: 1.6
      branch:
      locks: strict
      access list:
      symbolic names:
              markSymbol1_6: 1.6
      keyword substitution: kv
      total revisions: 7
      ===============================================================
      

  • 標記符號的好處:

    1. 標記符號比 revision number 更能傳達該版本的特性,例如:若版本 1.3 與 1.5 相關,可分別給予同樣式的標記符號 r1_3 與 r1_5 標示。
      [dywang@dywOffice testrcs]$ rcs -nr1_3:1.3 -nr1_5:1.5 important.c
      RCS file: RCS/important.c,v
      done
      
    2. 以 rlog 指令查詢產生的標記符號。
      [dywang@dywOffice testrcs]$ rlog -h important.c
      
      RCS file: RCS/important.c,v
      Working file: important.c
      head: 1.6
      branch:
      locks: strict
      access list:
      symbolic names:
              r1_5: 1.5
              r1_3: 1.3
              markSymbol1_6: 1.6
      keyword substitution: kv
      total revisions: 7
      ===============================================================
      
練習題
  1. 何謂 RSC 標記符號( mark symbol )?
    Sol. 標記符號是指一個版本除版本序號外賦予的符號名稱。
  2. RCS 為什麼要使用標記符號( mark symbol )?
    Sol. 因從版本序號很難知道該版本的內容,故 RCS 提供自訂版本標記符號之功能,以利了解各版本之關係。
  3. 如何使用 rcs 指令,於程式檔案 important.c 版本 1.5 中,加入標記符號 markS1_5
    Sol. rcs -nmarkS1_5:1.5 important.c
  4. 如何使用 rcs 指令,於程式檔案 important.c 版本 1.6 中,加入標記符號 markS1_6
    Sol. rcs -nmarkS1_6:1.6 important.c
  5. 如何使用 ci 指令,於程式檔案 important.c 版本 1.6 中,加入標記符號 markS1_6
    Sol. ci -nmarkS1_6:1.6 important.c
  6. 那些特殊字元,不可使用於 RCS 標記符號?
    Sol. $ , . ; : @ 六個符號。
  7. 指令 ci -n$mS_1 important.c,是否正確?若有錯,請說明為什麼?
    Sol. 錯誤,標記符號不可使用 $ 符號。
  8. 指令 ci -nm,S_1 important.c,是否正確?若有錯,請說明為什麼?
    Sol. 錯誤,標記符號不可使用 , 符號。
  9. 指令 ci -nm.S_1 important.c,是否正確?若有錯,請說明為什麼?
    Sol. 錯誤,標記符號不可使用 . 符號。
  10. 指令 ci -nm;S_1 important.c,是否正確?若有錯,請說明為什麼?
    Sol. 錯誤,標記符號不可使用 ; 符號。
  11. 指令 ci -nm@S_1 important.c,是否正確?若有錯,請說明為什麼?
    Sol. 錯誤,標記符號不可使用 @ 符號。
  12. 如何使用 rcs 指令,於程式檔案 important.c 版本 1.6 中,同時加入兩個標記符號 markS1_6markS1_6_0
    Sol. rcs -nmarkS1_6:1.6 -nmarkS1_6_0:1.6 important.c
  13. 如何使用 rcs 指令,同時於程式檔案 important.c ,版本 1.3 中加入標記符號 r1_3 及版本 1.5 中加入標記符號 r1_5
    Sol. rcs -nr1_3:1.3 -nr1_5:1.5 important.c
  14. 執行 rlog -h important.c,出現 symbolic names: r1_0_head: 1.2,代表意義為何?
    Sol. 表示版本 1.2 有標記符號 r1_0_head
  15. 如何使用 rcs 指令,取消程式檔案 important.c 中之標記符號 markS1_6
    Sol. rcs -nmarkS1_6 important.c
  16. 如何使用 rcs 指令,取消程式檔案 important.c 中之標記符號 markS1_6_0
    Sol. rcs -nmarkS1_6_0 important.c
  17. 如何使用 rcs 指令,一次取消程式檔案 important.c 中之標記符號 r1_0r1_0_had
    Sol. rcs -nr1_0 -nr1_0_head important.c


next up previous contents
Next: 版本比較與整合 Up: *RCS 版本控制系統 Previous: 識別關鍵字串   Contents
2017-06-14