什麼是 SVN (Subversion)
Subversion(以下簡稱SVN)是一個版本控制系統,使用SVN能同時提供組織多人共有資料的一致性,以及最新最正確的版本控管,適用於文件檔案或是程式碼檔案的管理。
SVN 除了作版本控管以外, 在某種程度上他也可以作為資料的備份. 適用於文字檔以及文件的備份, 大型檔案不適合使用SVN 來作為備份.
使用SVN的時機
在程式開發或文件編輯過程中,你是否碰到過以下幾種情形:
- 檔案被別人(或自己)覆蓋
- 檔案遺失(不小心誤刪檔案…)
- 想要比對各版本之間的程式碼有何不同;
- 想要回到之前修改的版本(需求反覆變更、自己改錯了…)
- 這些 code 不是我改的,是誰碰過我的程式碼?
如果有以上情形,你需要的是對專案進行版本控制(version control). 其目的即在於解決上述各種問題,讓你可以:
- 隨時復原錯誤,就好像是專案的時光回溯器,可以將檔案恢復到之前的任何版本;
- 多人同時修改同一份程式碼,不會有相互覆蓋的情況;
- 保留所有修改的歷程,如果你發現自己的程式碼有被別人更動過,可以很容易找到是誰更改的,以及何時更改的;
SVN 架構
- 檔案庫(Repository)
- 存放所有文件的資料庫.
- 主從式架構(Server/Cleint)
- Server 端 ==> 存放Repository
- Client 端 ==> 使用者本地工作端.
- 版號 (凡走過必留痕跡)
- 每一次異動, 都會增加1個版號. 並且異動內容都會被保存下來.