軟體開發中的版本控制工具及概念以SVN實作

Download Report

Transcript 軟體開發中的版本控制工具及概念以SVN實作

軟體開發中的版本控制工具及概念
─以SVN實作
9662106 俞政杉
9662316 高魁良
9662121 潘宗孝
9762134 賴勇安
WHY版本控制?
當下列情況發生…
• 好多人開發同一支程式
• 好多個地方開發
• 命名習慣不佳
ex:
如果,有一套系統
• 有一套系統
– 管理檔案
– 救回刪除或被覆蓋的檔案
– 可以從舊的版本再出發
– 告訴你各版本間的差異
– 告訴你專案開發的順序及修改人員
– 凍結程式碼,以免在改 bug 的同時,修改了
其他的code而增加更多新的問題
– 從一個人到很多人都可以使用
版本控制
版本控制
版本控制:Revision Graph
版本控制
版本控制:基本動作
• 基線(Baseline):穩定版本,開發的基礎。
• 檔案庫(Repository):
存儲檔案的新版本還有歷史資料的地方。
• 工作版本(Working copy):
從檔案庫中取出一個客戶端的複製。
• 提交(Commit / Check-In):
將本地端的修改送回檔案庫。
• 取出(Check-Out) :
從檔案庫取出檔案到客戶端。
• 更新(Update) :將檔案庫的修改送到本地端。
版本控制:基本動作
•
•
•
•
•
•
•
變更(Change) :對一份文件作的更動。
變更記錄(Change List)
合併(Merge / Integration) 合併各個改變。
版次(Revision)
匯入(Import)
匯出(Export)
衝突(Conflict) :
當兩方更動同一份文件會發生衝突。
版本控制:版本控制軟體
• 免費軟體 :
– CVS (Concurrent Version System)
– SVN (Apache Subversion)
• 低價軟體 :
– Microsoft Visual SourceSafe
• 高價軟體 :
–
–
–
–
Rational ClearCase
MKS
PVCS Dimensions
Oracle9i SCM
版本控制:別人怎麼用
• OSSF Open Foundry
版本控制:別人怎麼用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PCMan BBS 連線軟體
新同文堂
Wow! USB VirusKiller 可攜式儲存設備防毒軟體
可攜應用程式套件中文化
GNetDict - 各種線上免費字典的 GTK+ 前端介面,查
單字方便又快速 (for Linux)
dotProject 中文開發與推廣
Joomla!中文版
Hinedo – 輕鬆聽hinet radio
MozTW 團隊: Firefox 等 Mozilla 軟體在地化與推廣
Lazybuntu
我要取名字
Tag Mix
中文 WordPress
可攜式firefox中文化
Stellarium 中文包&相關在地地景
使用
使用
使用
使用
使用
使用
使用
使用
使用
使用
使用
未使用
使用
未使用
未使用
SVN – SUBVERSION
svn簡介
•
•
•
•
•
•
•
•
Apache Subversion
CollabNet, Inc.
C語言開發
Cross-platform
Open Source
穩定版本: 1.6.11
2000年 – now
2001
subversion自我寄生
svn簡介
•
•
•
•
一個很像CVS的自由軟體版本控制系統
並不想在版本控制方法論上有新突破
保留相同的開發模型
任何CVS用戶可以不費什麼力氣的轉換過來
svn簡介
• FreeBSD
• Apache Software
Foundation
• GCC
• Python
• Samba
• php
• Google Code
• SourceForge
DEMO
最後…
有人說…
• 版本控管是團隊開發必備的一項工具,沒有辦
法想像沒有 Subversion 還能開發的方式。
• 現在就算是只有一個人在開發也都會使用版本
控制系統 來作自己的軟體控管。
• 10 多年前我們還沒有開始使用這樣的工具時,
是使用 fileserver 作為程式放置的共同區域,每
個禮拜都會發生至少一次程式被蓋掉的問題。