//软件的版本控制问题,从有软件开发的概念开始,就是一个问题。随着大规模的团队开发的增多,版本管理和控制问题变得迫切和重要起来。所以,软件的版本
控制问题一开始并不是用软件来管理的,今后也不一定非要用软件来管理软件开发。但是:使用版本控制软件的确是大势所趋,已经几乎是一个绕不过去的问题了。
//版本控制软件目前很多,而流行的是 CVS 和 SVN,SVN 是后起之秀,有取代 CVS 的趋势。
//版本控制的错误意识之一:一个人的微型软件作坊,用不上版本控制软件。
解释:版本控制的概念自然是绕不过去的,而版本控制软件完全可以不用。但是:1,版本控制软件一个人是完全可以用的,不是非得在团队开发时才想起它;2,即使是一个人开发软件,使用版本控制软件来管理代码,也会带来很大的益处。
//版本控制的错误意识之二:版本控制系统只能建构在独立的一台机器上。
解释:目前流行的 CVS 和 SVN 版本管理系统,的确主要应用在 C/S 模式下,但并不是不能用浏览器来管理,例如 SVN 就可以通过 Webdav 协议来远程管理 www 服务方式的 SVN,更可以通过浏览器直接浏览版本库里的内容。
但是,即使是这样,也不是说,版本控制系统必须/一定/只能建构在独立的一台机器上。实际上:
1,版本控制库完全可以建立在自己的机器上(本地版本库),然后自己用。
2,建立版本控制系统,也不是必须使用专门的 SVN Server 软件,现在的“乌龟SVN客户端”既可以作为客户端与 SVN
Server(例如 VisualSVN Server)配合,它自己也可以提供服务,从而建立一个完全功能的、本地管理的版本控制系统。
//版本控制的错误意识之三:有了版本控制软件,就不会出现版本问题。
解释:绝对不是!正是因为版本控制问题太复杂了,才引入版本控制软件来辅助管理。注意,我这里说的是“辅助”!因为人永远是软件开发和管理这种生产活动中最重要和最具能动性的因素,软件永远都是人的奴才和工具。
注意版本管理软件能且只能管理和协调文本级别的代码问题,例如冲突、合并、更新等等,纠正程序逻辑错误根本不是它的事情!这意味着,即使团队里所有人和“SVN”都认可你写的代码,但这些代码导出后发行到客户手里,也不见得是可用的。
//版本控制的错误意识之四:有了版本控制软件,软件团队里的程序员就不用花时间交流了。
解释:错!版本控制软件永远代替不了交流,况且交流往往是逻辑和业务层面的,这些事情版本管理软件根本无能为力。事实上,即使在版本控制系统的管理下,程
序员也需要在部分代码修改后,尽量想法通知别的程序员,而不是全部依赖版本控制系统的日志,这样将减少解决代码文本冲突的机会。解决版本冲突是版本控制系
统最重要和复杂的功能之一,它能辅助我们解决问题,但最终解决问题的是人,而这需要时间和人的沟通,也就是说,需要耗费成本。
//版本控制的伎俩之一:并不是工程中所有的文件都必须和需要纳入版本控制中。那些不需要程序员控制和管理的软件测试中的数据文件等等,数量很大,字节数也很大,纳入版本控制系统中,没必要,也不允许。
//小知识之一:为什么使用版本管理软件
1,你是否在一个团队中工作?
2,是否发生过这样的情况: 当你在修改一个文件时,其他人也在修改这个文件?而你是否因此丢失过自己所作的修改呢?
3,是否曾经保存完一个修改,然后又想把个文件恢复到修改以前的状态?是否曾经希望能够看到一个文件以前某个时间点的状态?
4,是否曾经在项目中发现了一个 BUG,然后想调查它是什么时候产生的?
如果以上问题中的任何一个回答“是”的话,那么就有必要使用版本管理软件了。
//小知识之二:有人说:SVN 管理客户端就是 Tortoise SVN 软件,是不是?
这话偏了。说“乌龟SVN客户端是SVN管理客户端”是对的,反推回来的结论是不对的,因为 SVN
管理客户端很多,“乌龟”只是很流行的一种(当然很优秀了)。实际上,如果有必要和可能,你也可以开发一个你自己的 SVN
客户端来,问题是:有必要吗?你能吗?
分享到:
相关推荐
【zzSoftware:zz软件】 zzSoftware是一款专为用户设计的高效、便捷的软件工具,它在IT行业中扮演着重要的角色,提供了丰富的功能以满足不同用户的需求。这款软件可能涵盖了多种技术领域,例如数据处理、系统管理、...
5. **版本控制**:标签“zz”可能表示版本控制的一部分,这在软件开发中用于跟踪和管理不同版本的代码和资源。 理解这些知识点,开发者可以更好地利用这个工具包来提升他们的Windows应用开发体验,解决网络相关的...
ZZ经济开发区水司智能水表网络管理系统解决方案 本解决方案旨在为ZZ经济开发区水司提供一套智能的水表网络管理系统,该系统基于高新技术,旨在改变城市传统供水管理的机电一体化计量仪表。下面是该解决方案的详细...
7. **版本控制**:使用Git进行版本控制,跟踪代码变更,便于团队协作。 8. **测试与调试**:包括单元测试、集成测试和性能测试,确保软件的稳定性和可靠性。 9. **发布与更新**:遵循Google Play Store的发布流程...
在当前的社会发展中,城市供水管理面临着越来越多的挑战,包括水资源的高效利用、供水系统的稳定运行、以及供水服务的便捷性等问题。传统的供水管理模式已经难以满足现代社会的需求,因此,利用现代化技术对供水系统...
此外,zz加速球作为一个"高仿360"的项目,也可以让我们了解到在开发安全和优化类软件时,如何借鉴和创新已有的成功产品,以及如何在用户界面设计、功能实现和用户体验上进行优化。 通过研究zz加速球的源码,开发者...
"zz牌类小游戏24点" 是一个基于Java编程语言开发的桌面游戏,其核心玩法是24点游戏。24点游戏是一种流行的心算游戏,玩家需要利用四张给出的扑克牌上的数字,通过加、减、乘、除运算,使得结果等于24。这个游戏旨在...
根据给定文件的信息,我们可以提炼出与“2024嵌入式面试资料蔚来2021嵌入式软件开发”相关的几个核心知识点,并围绕这些知识点进行深入探讨。 ### 一、嵌入式系统概述 嵌入式系统是指用于执行特定功能的计算机系统...
此外,程序可能还具备版本控制功能,允许用户追踪和回溯注释历史,便于修正错误或更新注释。 最后,PAPARA(ZZ)I可能与流行的深度学习库(如TensorFlow、PyTorch)有良好的集成,可以直接导出标注数据供模型训练...
本份文档是一份关于全国职业院校技能大赛中的一项赛项规程的文件,具体为网络安全赛项,编号为ZZ-2021029。这一赛项旨在检验中职学校网络信息安全专业的教学成效,并促进该专业的教学改革。同时,通过大赛培养符合...
3. **2级**(正常运转):能够持续实施敏捷软件开发,具备基本的敏捷实践能力。 4. **1级**(协作):具备实施敏捷软件开发的基础条件,鼓励团队合作和学习。 综上所述,企业软件研发管理体系架构方案通过构建完整...
《zz-doctor中医大夫助理信息系统》是一款专为中医大夫设计的辅助管理软件,旨在提高中医诊疗的效率和准确性。此简化版源码提供了一个学习和参考的平台,帮助开发者理解和构建类似的医疗信息系统。 该系统的核心...
在源码中出现的".svn"文件夹表明该项目很可能是在Subversion版本控制系统环境下开发的。Subversion是一个广泛使用的版本控制系统,能够帮助开发者管理项目中源代码文件的版本历史,方便地进行代码的版本回退、分支...
描述中的内容"安卓Android源码——zz-doctor中医大夫助理信息系统.zip"与标题相同,进一步确认这是一款基于Android平台的软件开发项目,源代码已经打包成ZIP文件供学习和分析。这个应用可能包含了Android开发的各种...
9. **版本控制**:考虑到软件开发流程,项目可能使用Git进行版本控制,源码中可能包含.gitignore文件。 10. **单元测试和自动化测试**:为了保证代码质量,可能包含JUnit或Espresso测试用例。 11. **性能优化**:...
在IT行业中,代码提交是软件开发过程中的一个关键环节,特别是在版本控制方面。代码提交(Code Commit)是指开发者将自己在本地完成的更改保存到中央版本库或远程仓库的行为,以便团队成员可以共享和协作。这个过程...
【51单片机实现的zz自动避障小车】是一个典型的计算机类毕业设计项目,主要涉及了嵌入式系统中的单片机编程技术。51单片机是微控制器的一种,广泛应用于各种电子设备中,尤其是对于初学者,它是学习嵌入式系统的基础...
版本管理是软件开发中的重要环节,它确保了开发团队可以有效地跟踪、控制和更新代码库中的各个版本。ZZ/OSS Installer借鉴了PEAR的版本管理系统,这意味着开发者可以方便地处理不同版本的依赖关系,管理软件的升级和...
8. 软件开发:在项目实施过程中,开发者可能使用如Keil uVision或STM32CubeMX等开发工具,编写C或C++代码,实现PID算法和电机控制逻辑。 9. 硬件设计:除了软件部分,硬件设计也非常重要。包括STM32最小系统板、...
通过分析和学习这个项目,学生可以加深对Android开发流程的理解,学习如何将理论知识应用于实际项目,为今后的软件开发工作打下坚实基础。同时,这个项目也可以作为进一步研究Android高级特性的起点,如多线程、...