Web Analytics
Privacy Policy Cookie Policy Terms and Conditions 版本控制 - Wikipedia

版本控制

维基百科,自由的百科全书

Image:03wiki-zn-frontpage-icon.gif版本控制正在翻译。欢迎您积极翻译与修订

版本控制(Revision control)是一種軟體工程技巧,籍以在開發的過程中,確保由不同人所編輯的同一檔案都得到更新。

版本控制透過文档控制(documentation control)記錄程序各個模組的改動,並為每次改動編上序號。这种方法是维护工程图的标准做法, 它伴随着工程图从图的诞生一直到图的定型。 一种简单的版本控制形式如下:赋给图的初版一个版本等级“A”。当做了第一次改变后,版本等级改为“B”,以此类推。

目录

[编辑] 概述

工程版本控制是從追蹤藍圖訂正情形的程序而來。版本控制提供任何工程項目的設計者,將設計回復到之前任一狀態的選擇權。這種選擇權在開發進入死胡同時特別重要。軟體工程的版本控制也是像這樣追蹤源碼文件、設定檔等等的更動,並且提供控制這些更動的控制權的程序。理論上所有的資訊紀錄都可以加上版本控制,目前只有軟體開發業有使用較複雜的版本控制技巧與工具,但是已有人開始用版本控制軟體來管理CAD電子檔案,电路板设计,來補足本來由人手工執行的傳統版本控制。

[编辑] 軟體版本控制

開發與部署軟體時常會需要將同一軟體的不同版本部署到不同位置,由此軟體的眾多開發者分頭工作。軟體的錯誤與議題常常只出現在某些版本。因此,軟體除錯者為了確認錯誤的位置並加以修正必需能取得並且運行軟體的不同版本來決定問題的位置。

另一方面,開發與部署軟體時也常需要同時開發一個軟體的兩個版本。(例如:一個沒錯也沒新功能的和一個有新功能也有錯的版本)

最簡單的版本控制就是保留軟體不同版本的數份copy,並且適當編號。許多大型開發案都是使用這種簡單技巧。雖然這種方法能用,但是很沒效率。一是因為保存的數份copy幾乎完全一樣,也因為這種方法要高度依靠開發者的自我紀律,而常導致錯誤。因此開發了將部份或全部版本控制工作自動化的版本控制系統。

大部分的版本控制軟體採用差分編碼:只保留檔案相繼版本之間的差異。如此可以更有效的儲存數個版本的檔案。

傳統上版本控制系統都是採用集中模式:所有版本控制的工作在一個伺服器進行。2000年後,TeamWare,BitKeeper,和GNU開始用分散式系統。在分散式系統中開發者直接在各自的在地檔案庫工作,而各個檔案庫有另一個分開的步驟分享改變的情形。這個方式讓開發者不靠網路也能工作,也讓開發者有充分的版本控制能力,而不需經中央權威許可。Linux內核的發明人林納斯·托瓦茲就是分散式版本控制系統的支持者。

大部分的軟體開發案,會有好幾個開發人員同時工作。如果兩個人員同時要改變同一個檔案,而沒有管理存取權限,很可能會覆寫彼此的工作。大部分的控制系統在兩種方法中擇一解決:採用中央式系統,由中央權威管理存取權限,或是像分散式系統容許多個單位同時進行,包括同時更動同一檔案。

中央式系統由中央權威管理存取權限,「鎖上」檔案庫中的檔案,一次只讓一個開發者工作。

分散式系統容許多個開發者同時更動同一檔案,並且提供稍後合併各個改變的功能。分散式系統仍然可以有檔案上鎖功能。

檔案上鎖功能帶來的功效與副作用一直受爭議。檔案上鎖功能能提供一些保護給高難度的合併(例如大幅更改大檔案或檔案群的許多部份)。但其他開發者可以繞過版本控制系統改變檔案(這本身就是很大的問題)。

有些系統還會管理誰能改變程式的哪個部位,像是由提供某一個人控制權來審查哪些改變可以過關。有些進步的版本控制工具提供更多功能,可和其他工具,例如開發環境整合。

維基百科用的MediaWiki也有版本控制的功能。

[编辑] 字彙

檔案庫(Repository)
存檔案的地方。通常是一個伺服器。
上傳(Commit)
將本地端的修改送回檔案庫。(由版本控制軟體處理跟上次更動相比哪個檔案又被更動的事)
變更(Change) 
對一份文件作的特定更動。 The granularity of the modification considered a change varies between version control systems.
變更記錄(Change List) 
On many version control systems with atomic multi-change commits, a changelist identifies the set of changes made in a single commit. This can also represent a sequential view on the source code, allowing source to be examined as of any particular changelist ID.
提出(Check-Out) 
從檔案庫複製檔案。
Update 
將檔案庫的修改送到本地端(與上傳相反)
合併(Merge / Integration) 
統一各個改變。
版本(Revision) 
A revision or version is one version in a chain of changes.
Import 
The term import is used to describe copying the local directory tree in its entirety from your machine to the repository.
Export 
An export is similar to a check-out except that it creates a clean directory tree without version control metadata (often used prior to publishing the contents).
衝突(Conflict) 
當兩方更動同一份文件會發生衝突。 Since the software may not be intelligent enough to decide which change is 'correct', a user is required to resolve the conflict.
Resolve 
The act of user intervention to address a conflict between different changes to the same document.

[编辑] 著名的版本控制軟體

  • CVS(Concurrent Versions System)
  • Subversion
  • Rational ClearCase
  • Serena Dimention
  • RCS(GNU Revision Control System)
  • BitKeeper

[编辑] 參看

[编辑] 外部連結

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu