什么是版本控制系统?
有没有想过软件开发团队如何管理复杂的代码库没有重叠的彼此的工作吗?他们如何回滚更改代码库的一个早期版本,如果他们陷入困境?答案是在版本控制系统。这些系统使用的软件团队跟踪代码发生变化时,回滚或版本,从多个开发人员和巩固更改到一个版本。
大部分硬件工程师知道,他们还可以利用版本控制系统来帮助他们跟踪项目进展和创建官方发布的制造业。过去的版本控制系统调用通过一个控制台,但是今天的现代版本控制系统硬件设计工程师将在后台运行工具。如果你从未使用过的版本控制系统,我们创造了这个重要的指南来帮助你开始和理解的一些核心定义用于版本控制。
版本控制系统概述
周围所有的版本控制系统执行一些功能跟踪和维护每个版本的一个项目,正如他们的名字。有一个版本控制系统执行一些关键的功能,总结在下表中。这些操作提供了更多的细节在本文稍后的部分中。
修正跟踪 |
每组更改项目及其文件的跟踪。用户提交修改版本控制也跟踪。 |
回滚,滚 |
开发团队可以根据需要修订之间移动,如当一个错误被发现在当前的修订。 |
分支和克隆(分支) |
一个项目的文件可以分成一个新的修订历史,或者他们可以复制成一个完全不相关的版本历史。 |
比较与合并 |
当一个项目及其fork /克隆比较,任何矛盾都可以解决,两个修订合并。 |
把请求 |
发出一个请求一个分支项目拉进原来的修订历史。 |
提交 |
从版本控制系统打开一个项目后,对项目的任何更改放入版本控制。 |
解决冲突 |
在拉请求,或当提交更改时,可以有冲突,需要解决。 |
版本控制系统最初是由贝尔实验室发明在开发UNIX。今天,他们无处不在数据管理系统和他们是一个重要的管理工具,跟踪项目的版本。在硬件的世界中,这意味着设计团队可以跟踪项目的整个历史每个版本之间的设备,和每个版本之间的生产。
可以在版本控制系统跟踪什么?
从技术上讲,任何项目的一部分的数据都可以致力于一个版本控制系统,可以跟踪更改。特定于硬件的版本控制系统通常建在CAD工具,所以他们只会使用本机CAD格式,生产文件和任何附属文件接受作为CAD的一部分项目的文件结构。对于一些CAD工具,这可以是任何文件,而其他CAD软件将只接受本地项目文件格式。
软件版本控制系统历来是独立公用事业如Git,从命令控制台访问的地方。他们也可以从内部访问一个项目管理系统,也可以与第三方集成版本控制系统通过一个API。因为软件和固件开发人员没有他们自己的版本的CAD工具,他们不受一个版本控制系统,他们倾向于选择系统基于集成功能。
与版本控制
的合作过程在版本控制系统中实现下图中列出。考虑一个项目修订历史悠久,被称为“主干”这个例子。这个图表开始通过创建一个分支的主要分支在一个项目的修订历史。下面的想法是叉项目(这个操作更详细地解释下),但这可以通过克隆。
在创建新分支从现有的修订历史,它可以通过自己的修改和测试过程。在这个过程中,新分支的变化可以保存到版本控制系统(提交修改),这样如果需要更改可以回滚。最终完成分支时,把请求可以发布,这样团队可以查看更改实现分支。一旦准备好接受变化,团队将需要比较新的分支与主干,然后改变可以合并成一个分支。
重要的版本控制操作
上表中列出的版本控制操作是为了促进合作,组织开发人员共同完成一个项目。通常,开发人员将在相同的版本在一个项目的修订历史,或者他们可能工作在不同的版本使用分叉和克隆操作。最终,上面列出的行动旨在确保只有一个真理的来源项目的当前版本和数据。
分支和克隆
创建一个新的分支从项目涉及两种操作:分叉和克隆。这两个任务是任何版本控制系统的重要部分,因为他们定义用户将如何使用系统中现有的数据。一直致力于两个操作涉及复制数据的版本控制系统。然而,这些操作不同的他们如何处理与项目的修订历史。
- 分叉
- 数据是重复的和仍在版本控制系统
- 复制数据携带相同的修订历史之前的数据
- 克隆
- 数据是重复的和经常被下载到用户的本地机器
- 重复的数据不保持与原始数据的修订历史
下一个问题,通常在使用版本控制:当你应该克隆和何时叉。不幸的是,没有正确的答案。设计师和开发人员可以制定自己的政策,当数据是分叉的或克隆,而这些可以由管理员。一些开发团队可能决定叉或克隆项目动态为了解决问题,因为他们出现。这是更多的方法来管理数据,需要一个团队敏捷。
把请求
最简单的方法来解释拉请求一个通知。从本质上讲,把请求的机制是一个开发人员将使用让其他团队成员知道他们修改完成并准备好进行审查。拉请求发出在版本控制系统的GUI,系统会发送一个通知给其他团队成员所以他们意识到变化。拉请求只能当一个分支发布已修改,更改提交到版本控制中。这样,其他用户可以访问和与早期版本的更改。
比较与合并,解决冲突
假设拉请求中概述的变化是可以接受的实施和反馈,将更改合并到主干的早期版本。侧枝通常可以重叠或覆盖的变化数据的主要分支,和之前相比,这些变化将需要和接受这些更改合并回主干。
代码,它更简单去逐行或function-by-function将更改合并到主分支。与硬件,这是完全不同的,用户会在组件级别或功能层面,而不是看其个人原语的PCB布局。用户界面在您的版本控制系统可以比较与合并过程更加容易。
比较与合并时更容易在一个图形用户界面。
硬件和固件开发人员需要版本控制
硬件设计团队跨学科工作有时会有最初的经验与版本控制系统当他们开始使用固件开发人员。固件是代码,就像软件,但它将部署在硬件、固件开发人员必须一起工作的硬件系统设计,以确保对齐。在许多情况下,固件开发是一个前端工程师或PCB设计者,他们可能会带头管理项目数据。
CAD工具实现版本控制系统使数据管理直接由设计团队,不需要系统管理员。提交,请求,分叉,克隆是所有可能在这种类型的系统,但在一个直观的用户界面,不需要通过命令提示符。这也比工作更容易通过一个第三方的版本控制系统,这可能需要将数据传递给API(特别是在云),或第三方系统必须有一个现有的集成CAD软件。
明白为什么你的团队可以受益于一个PCB设计应用程序,它集成了一个版本控制系统。
硬件设计团队和嵌入式开发人员需要协作完成复杂的项目可以使用设计工具的配套快板PCB设计者和数据管理工具节奏。快板是业界最好的PCB设计和分析软件,提供一系列产品设计特征与一套完整的管理和版本控制功能。快速的用户可以访问一组完整的原理图捕获功能,混合信号在PSpice软件仿真,和强大的CAD功能,等等。