Subversion(SVN)
YehYeh\'s Notepad yehyeh@gmail.com 

Subversion(SVN) - update & commit & Lock

Update / update to revision

  • update
    • 更新工作副本到檔案庫中的最新版本
    • 將工作副本中全部檔案的修訂版本號碼更新到最新的號碼
  • update to Revision
    • 更新工作副本到指定版本 將工作版本還原成舊版
    • 只能用來查看舊版本
    • 假設從修訂版本19版 修訂版本5版
      • 工作副本會還原成和修訂版本5版時一模一樣
      • 工作副本中,修訂版本5版後新增的檔案會不見
    • 用update to Revision還原成舊版本時,不應該修改任何檔案
      • Commit時,會顯示Out of Date
    • 如果要將工作副本還原成舊版修改
      • 應使用merge,commit時才不會顯示Out of Date
Δ 回到最上方

commit

  • Commit:將對工作副本所作的修改,送交到檔案庫
    • 只會送交差異集 只送交有異動的檔案或資料匣
    • 可以只送交單一檔案或資料匣 不需每次都送交整個專案
    • 若送交資料匣,則裡面的檔案和子資料匣也會送交
    • 該工作副本Lock的檔案或資料匣會自動unlock
    • 確實填寫log message 以便日後找查修訂版本
  • Commit失敗:Out of Date
    • 有其它人已修改並送交這次送交的檔案
    • 工作副本是舊版
  • 還原
    • 未commit前,可以使用revert指令還原工作副本
    • commit後,應使用merge來還原
Δ 回到最上方

Ignore List

  • SVN允許將檔案或資料匣設定成不加入版本控制 commit時不會上傳到檔案庫
    • *.obj, *.lst, *.exe
  • 將檔案或資料匣加入ignore list
    • 設定svn:ignore屬性
    • Ignore List只對單一工作副本有效
  • 全域忽略列表(Global Ignore List)
    • 單機上的全部工作副本有效
  • 匹配模式
    • *:匹配任意長度字元
    • ?:匹配一個任意字元
    • […]:匹配中括號中的任意字元,可以使用-
      • [ABE]:匹配A或B或E
      • [ABF-I]:匹配A、B、F、G、H、I
Δ 回到最上方

鎖定(Lock)/解鎖(Unlock)

  • Lock
    • 禁止別人commit
  • Unlock
    • 鎖定者commit任意檔後,自動解鎖
    • 即使只commit未鎖定的檔案,也會解鎖
  • 常用Lock的時機:
    • SVN無法merge非文字內容(Text Content)的檔案
      衝突(Conflict)時需手動處理 Lock
    • 圖片檔、影音檔
Δ 回到最上方