Subversion(SVN) 概念與工具介紹

什麼是 SVN (Subversion)

Subversion(以下簡稱SVN)是一個版本控制系統,使用SVN能同時提供組織多人共有資料的一致性,以及最新最正確的版本控管,適用於文件檔案或是程式碼檔案的管理。

SVN 除了作版本控管以外, 在某種程度上他也可以作為資料的備份. 適用於文字檔以及文件的備份, 大型檔案不適合使用SVN 來作為備份.

使用SVN的時機

在程式開發或文件編輯過程中,你是否碰到過以下幾種情形:
– 檔案被別人(或自己)覆蓋
– 檔案遺失(不小心誤刪檔案…)
– 想要比對各版本之間的程式碼有何不同;
– 想要回到之前修改的版本(需求反覆變更、自己改錯了…)
– 這些 code 不是我改的,是誰碰過我的程式碼?

如果有以上情形,你需要的是對專案進行版本控制(version control). 其目的即在於解決上述各種問題,讓你可以:

  • 隨時復原錯誤,就好像是專案的時光回溯器,可以將檔案恢復到之前的任何版本;
  • 多人同時修改同一份程式碼,不會有相互覆蓋的情況;
  • 保留所有修改的歷程,如果你發現自己的程式碼有被別人更動過,可以很容易找到是誰更改的,以及何時更改的;

SVN 架構

  • 檔案庫(Repository)
    • 存放所有文件的資料庫.
  • 主從式架構(Server/Cleint)
    • Server 端 ==> 存放Repository
    • Client 端 ==> 使用者本地工作端.
  • 版號 (凡走過必留痕跡)
    • 每一次異動, 都會增加1個版號. 並且異動內容都會被保存下來.

SVN client 的基本操作

  • list
    • 查看 Repository 的檔案列表
  • log
    • 查看修改日誌
  • import
    • 第一次將本地資料, 放到Repository.
  • checkout
    • 將文件從Repository 取出, 存放到本地目錄.
  • status
    • 顯示本地的修改狀態.
  • commit
    • 提交本地的異動文件到Repository.
  • add/delete
    • add : 將本地未受版本控管的文件, 加入控管.
    • delete : 將控管之文件移除. 未來不再控管.
  • update
    • 將Repository 最新的文件, 同步到本地
  • revert
    • 將已修改的文件, 回復到上次未修改的狀態.

SVN 最常用client 軟體(TortoiseSVN)介紹

TortoiseSVN
– 免費, 開放原始碼
– GUI 環境操作, 容易使用
– Windows only, 操作環境可以整合至檔案總管
– 支援多種svn協定:
– http://
– https://
– svn://
– file:///
– 下載地址: https://tortoisesvn.net/

常見的錯誤觀念及習慣

  • 單一次變動量太大
    • 當發生問題時, 無法利用版號的差異來快速找出問題之所在.
  • 任意的存放會經常修改的大型檔案
    • 嚴重的增加伺服器負載.
This entry was posted in subversion and tagged . Bookmark the permalink.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *