您的计算机上是否有诸如DocFinalFinalFinal1_2.pdf之类的文件 ? 如果这样做,那么您可能已经了解了版本控制的基本价值。
通过将每个版本保存为新的“最终”版本,而不是覆盖以前的最终版本,您不仅可以区分同一文档的不同版本,而且可以确保以前的版本不会永远丢失。
当然,在共享文件或与他人协作时,这不是可行的工作方式。 当然,它不是在任何类型的项目中编写,编辑或共享代码的一种选择,更不用说拥有许多贡献者的大型应用程序了。
那么,有哪些系统可以帮助我们与团队合作而不致于一路走失呢? 维护有组织的版本历史的具体价值是什么? 继续阅读!
版本控制系统(VCS)的基本原理
团队用来跟踪更改和不同代码版本的系统称为版本控制系统(VCS)。 就像其他任何东西一样,每个VCS都有其独特的功能,并具有自己的优点和缺点。 但是,有一些基础知识可以使VCS成为真正的VCS。
首先,他们应该保留对项目所做更改的长期历史,包括创建,删除,编辑等。 其中应包括作者,日期以及所做更改的所有注释。
除此之外,他们还应该有一个解决方案,用于将新的代码更改分支和合并到主项目中,以允许团队中多个成员的并发工作。 毕竟,这就是重点。 项目的主要代码库称为Trunk或简称为Main。 分支创建为可以合并到Main的独立工作流。
所有这些都支持项目中的可追溯性。 万一出问题了,回顾过去所做的更改并在出现错误和错误时将它们联系起来会更容易。 这就引出了下一个问题,为什么版本控制如此重要?
VCS对于DevOps至关重要的3个原因
1.避免现代容器化应用程序中的依赖性问题
微服务从本质上已经成为开发新应用程序的默认方法,并且越来越多的团队也在容器化整体应用程序。 随着这种趋势的发展,依赖问题已经成为可能影响或破坏项目的焦点。
在任何类型的项目中,无论是否进行了容器化,依赖性始终是一个大问题。 依赖地狱,在Java中被亲切地称为JAR地狱,在多种语言的应用程序中很常见,并且自从早期编程时代就已经存在。 最终,构建新功能和修复错误的线性路径必定会与另一个团队或修补程序或许多其他事情对另一个功能的并行开发产生冲突。
对于DevOps,在快速移动和保持应用程序可靠性之间找到平衡至关重要。 这部分意味着培养可追溯性,获得对代码所做更改的可见性,并了解这些更改如何影响应用程序性能。 访问不同的代码迭代可以揭示新的更改在何处暴露了与代码其他部分冲突的依赖关系。
2.版本控制与更高的DevOps性能相关
2014年 , DevOps年度状态研究发现,“版本控制始终是性能的最高预测指标之一。” 表现最好的工程团队能够实现更高的吞吐量-部署频率提高了8倍,部署交付时间缩短了8000倍。
自从2014年获得这些原始发现以来,版本控制一直没有丧失其相对于性能的重要性。 去年,它又与持续交付工作流程的成功联系在一起,而后者又有助于提高IT性能。
是什么导致版本控制和高性能之间的高度相关? 嗯,这部分与更轻松地查看和理解代码部分更改如何在整个应用程序中引起问题的能力有关。 但是,它与VCS如何启用编码实践(例如持续集成)以及持续交付/部署等有关。
3.支持构建更可靠的应用程序
2014年的同一项研究发现,使用全面的版本控制系统构建的应用程序更可靠。 他们的变更失败率降低了50%,MTTR(问题解决时间)提高了12倍。
在高性能DevOps团队和可靠的应用程序之间建立联系并不困难。 在任何组织中,DevOps的作用都是促进成功发展,并且由于变更通常是失败的根源,因此人们将重点放在降低变更风险上。
尽管乍看起来似乎违反直觉,但第一步通常是更频繁地进行较小的更改(因此CI变得很流行)。 同样重要的是,在加速的工作流程中,更重要的是跟踪这些更改,以便每个人都在看同一件事,从而在发生故障时更容易进行故障排除。
用于版本控制的系统
版本控制系统的第一个版本(双关语意味)是并发版本系统(CVS) 。 它的创建是为了支持时间表相互冲突的小型开发人员团队之间的合作。 在证明该项目有用后,创作者于1986年向公众发布了该代码。
Apache Subversion(通常缩写为SVN)
Subversion是由CollabNet在2000年代初创建的,旨在解决错误并在原始CVS跟踪系统中添加一些缺失的功能。 从那时起,它就被Apache孵化器所采用,并成为他们的顶级项目。
像其前身一样,Subversion是一个集中式VCS,这意味着每个项目都有一个集中式副本,并且代码更改将提交给该集中式副本。 最大的缺点之一是,它阻止用户在脱机时提交代码更改。
吉特
今天最受欢迎的版本控制系统是Git。 这就是所谓的分布式VCS,这意味着没有单一的集中式代码库。 相反,不同的分支负责托管不同的代码段。 这有助于开发人员和工程师在本地和/或脱机环境中使用代码。
在这个领域,我们有一些流行的工具,例如:
- 的GitHub
- 比特桶
- 亚搏体育app
查看这篇文章,以了解有关这些工具的更多信息,并且可能最适合您的工作流程。
另外,谨提一些荣誉:
- 水银
- 螺旋VCS
- 市场
最后的想法
版本控制是一个基本概念,许多人自然会使用自己的个人文件来执行。 但是它的重要性,尤其是对于DevOps,不容忽视。 它与IT绩效直接相关,这对公司的收入和成功有明显的影响。
通过促进团队协作并启用对代码库的追溯检查,版本控制系统可帮助创建更可靠的代码并维护代码。
阅读有关流行的版本控制系统GitHub和BitBucket的更多信息,并找出最适合您的版本控制系统。
翻译自: https://www.javacodegeeks.com/2018/08/version-control-devops-team.html