版本控制
维基教科书用户认为此页面应该拆分为更小的页面,内容更窄。 您可以通过将此大页面拆分为更小的页面来提供帮助。请务必遵循命名策略。将书籍划分为更小的部分可以提供更多关注点,并允许每个部分做好一件事,这有利于所有人。 |
本文介绍了不同形式的版本控制。
- GNU Diff Utils
- Subversion (http://subversion.tigris.org/)
- git (https://git.js.cn/)
- 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,网络理论有限公司