版本控制
| 華夏公益教科書使用者認為此頁面應該拆分為更小的頁面,內容更窄。 您可以透過將此大頁面拆分為更小的頁面來提供幫助。請務必遵循命名策略。將書籍劃分為更小的部分可以提供更多關注點,並允許每個部分做好一件事,這有利於所有人。 |
本文介紹了不同形式的版本控制。
- GNU Diff Utils
- Subversion (http://subversion.tigris.org/)
- git (https://git-scm.tw/)
- Bazaar (http://bazaar-vcs.org/)
- SourceAnywhere (http://www.dynamsoft.com/Products/version-control-source-control-sourceanywhere.aspx/)
- SCM Anywhere (http://www.scmsoftwareconfigurationmanagement.com/)
- 維基
- MediaWiki (http://www.mediawiki.org/wiki/MediaWiki)
- MoinMoin (http://moinmo.in/MoinMoinWiki)
- 瀏覽公開可用的儲存庫。新增有關如何使用 ViewVC、Loggerhead 等的資訊。
- apache.org
- tigris.org
- launchpad.net
- SourceForge
- GitHub
- Google Code
以下來自維基百科的引用定義了版本控制
修訂控制(也稱為版本控制(系統)(VCS)、原始碼控制或(源)程式碼管理(SCM))是對同一資訊單元的多個修訂版本的管理。它最常用於工程和軟體開發,以管理數字文件(如應用程式原始碼、藝術資源(如藍圖或電子模型)和其他可能由團隊成員合作完成的專案)的持續開發。對這些文件的更改通常透過遞增關聯的數字或字母程式碼來標識,稱為“修訂號”、“修訂級別”或簡單地稱為“修訂版”,並在歷史上與進行更改的人員相關聯。例如,修訂控制的一種簡單形式將初始釋出的圖紙分配了修訂號“1”。當進行第一次更改時,修訂號將遞增到“2”,依此類推。
在本文字中將使用術語版本控制。
本節將構建一個簡單的例子來說明版本控制的一些關鍵概念。
假設我們經營一家餐館,並且我們想列印一份選單。在營業的第一天,我們在一個名為 menu.txt 的檔案中建立了以下選單。
[Date] Monday 5th January 2009 [Starters] Starter of the day. [Main] Dish of the day. ---- FILE: menu.txt
第二天,我們添加了一些額外的專案。
[Date] Tuseday 6th January 2009 [Starters] Starter of the day. Chicken Soup [Main] Dish of the day. Mushroom Ommelette ---- FILE: menu.txt
在我們的檔案中,我們現在只記錄了我們使用的最後一份選單。如果我們沒有儲存任何選單的列印副本,我們將丟失 2009 年 1 月 5 日星期一的記錄。我們可以透過將每個選單儲存在單獨的檔案中來避免這種情況。
[Date] Monday 5th January 2009 [Starters] Starter of the day. [Main] Dish of the day. ---- FILE: menu-20090105.txt
[Date] Tuseday 6th January 2009 [Starters] Starter of the day. Chicken Soup [Main] Dish of the day. Mushroom Ommelette ---- FILE: menu-20090106.txt
TODO:關於檔名說明。
- 集中式
- 分散式
- 場景 1:單個使用者的單個檔案版本控制
- 場景 2:單個使用者的多個檔案版本控制
- 場景 3:單個使用者的多個檔案和分支版本控制
- 場景 4:多個使用者的多個檔案版本控制
- 場景 5:多個使用者的多個檔案和分支版本控制
- 場景 6:多個使用者使用集中式版本控制
- 場景 7:多個使用者使用分散式版本控制
本場景將介紹版本控制的基本概念。它主要面向沒有版本控制經驗的人員。它將涵蓋差異(區別)、補丁、合併、專案的修訂以及有效使用版本控制的一些細微差別。
- 示例使用餐廳選單。
- 最初使用 GNU Diff Utils。
- 保留 7 天的選單。
- 在每一天之間建立一個補丁。
- 向前和向後應用補丁。
- 只保留最新的選單和反向補丁。
- 比較大小。
[Date]
Monday 5th January 2009
[Starters]
Starter of the day.
[Main]
Dish of the day.
[Desserts]
Creme Brulee
|
[Date]
Tuseday 6th January 2009
[Starters]
Starter of the day.
Chicken Soup
[Main]
Dish of the day.
[Desserts]
Ice Cream
|
[Date]
Wednesday 7th January 2009
[Starters]
Starter of the day.
[Main]
Dish of the day.
[Desserts]
Creme Brulee
|
[Date]
Thursday 8th January 2009
[Starters]
Chicken Soup
Starter of the day.
[Main]
Dish of the day.
[Desserts]
Ice Cream
|
| menu-20090105.txt | menu-20090106.txt | menu-20090107.txt | menu-20090108.txt |
[Date]
Friday 9th January 2009
[Starters]
Starter of the day.
[Main]
Dish of the day.
Fish and Chips
[Desserts]
Apple Pie
|
[Date]
Saturday 10th January 2009
[Starters]
Starter of the day.
Chicken Soup
[Main]
Dish of the day.
|
[Date]
Sunday 11th January 2009
[Starters]
Starter of the day.
Prawn Cocktail
[Main]
Roast Lunch
[Desserts]
Ice Cream
Apple Pie
Cheese and Biscuits
|
|
| menu-20090109.txt | menu-20090110.txt | menu-20090111.txt |
“GNU diffutils”包是一組完整的程式,用於處理檔案組之間的差異以及合併檔案。GNU diffutils 包包含以下實用程式
- diff - 顯示兩個檔案之間的差異
- cmp 比較二進位制檔案
- sdiff 互動式地合併兩個檔案
- diff3 顯示三個檔案之間的差異
- patch 將差異應用於現有檔案
我們將首先檢視週一選單和週二選單之間的差異。
~Menus>diff menu-20090105.txt menu-20090106.txt
2c2
< Monday 5th January 2009
---
> Tuesday 6th January 2009
5a6
> Chicken Soup
11c12
< Creme Brulee
---
> Ice Cream
~Menus>
diff 顯示有三個更改,2c2, 5a6和11c12. 更改的摘要以 <number><alpha><number> 的形式顯示。
~Menus>diff menu-20090106.txt menu-20090107.txt
2c2
< Tuesday 6th January 2009
---
> Wednesday 7th January 2009
6d5
< Chicken Soup
12c11
< Ice Cream
---
> Creme Brulee
~Menus>
版本控制中的白噪聲是指對版本控制下的檔案進行更改,這些更改顯示為更改,但不會更改檔案的“語義”。 白噪聲最常見於“重新組織”空白時,例如當用空格替換製表符時。 白噪聲是一個問題,因為它通常需要審查實際上沒有改變的檔案的差異。
Dynamsoft SourceAnywhere 是一款基於 SQL Server 的版本控制軟體,旨在替代/替代 Microsoft Visual SourceSafe (VSS)。
提供獨立版和託管版: http://www.dynamsoft.com/Products/version-control-source-control-sourceanywhere.aspx
Dynamsoft SourceAnywhere 獨立版是一款基於 SQL 的原始碼控制軟體,旨在替代/替代 Microsoft Visual SourceSafe (VSS)。 它適用於準備從 Microsoft Visual SourceSafe (VSS) 原始碼控制遷移的開發人員,以提高效能、安全性、可擴充套件性和可靠性。
SourceAnywhere 託管的線上原始碼控制是一款基於 SQL 的原始碼控制軟體,作為 SaaS 應用程式提供,它提供 Microsoft Visual SourceSafe (VSS) 的所有主要功能,以及更多功能。 SourceAnywhere 託管的線上原始碼控制託管在 Bell 資料中心,以確保您對關鍵任務資料的訪問最可靠,並擁有無與倫比的安全性。
註冊 免費託管計劃並試用
Dynamsoft SCM Anywhere 是一款基於 SQL Server 的軟體配置管理 (SCM) 工具,具有完全整合的版本控制、錯誤跟蹤和構建自動化功能。 它適合尋求整合解決方案來管理整個軟體開發生命週期的團隊。
Dynamsoft SCM Anywhere 獨立版是基於 SQL 的軟體配置管理 (SCM) 解決方案,具有完全整合的版本控制、問題跟蹤和構建自動化功能。
SCM Anywhere 獨立版專為集中式和分散式開發團隊設計,幫助開發團隊更快地交付軟體產品,並透過集中控制原始碼檔案、團隊活動、工作項狀態和錯誤報告來促進團隊協作。
SCM Anywhere 託管版是全球首款託管 SCM(軟體配置管理)解決方案。 它作為 SaaS 應用程式提供,並附帶完全整合的版本控制、問題跟蹤、構建自動化和專業服務,以管理您的整個軟體開發生命週期。 SCM Anywhere 託管版託管在 Bell 資料中心,以確保您對關鍵任務資料的訪問最可靠,並擁有無與倫比的安全性。
註冊 免費計劃並試用
- c2:VersionControl 討論了幾個版本控制系統。
- c2:ExtremeVersionControl 描述了頻繁提交到版本控制的“額外工作”如何實際上幫助其他事情更快完成。
- FreeBSD 上的版本控制 討論了幾個版本控制系統。
- 使用持續整合/版本控制的軟體開發
- Google 專案託管:“選擇版本控制系統”
- Sam Hart:"從 Subversion 轉換為 Mercurial" 對幾個現代 DVCS 進行了快速比較。
使用 GNU diff 和 Patch 比較和合並檔案。 David MacKenzie、Paul Eggert、Richard Stallman,網路理論有限公司