`
chenxueyong
  • 浏览: 341936 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

软件开发中的版本控制问题

阅读更多

 //软件的版本控制问题,从有软件开发的概念开始,就是一个问题。随着大规模的团队开发的增多,版本管理和控制问题变得迫切和重要起来。所以,软件的版本控制问题一开始并不是用软件来管理的,今后也不一定非要用软件来管理软件开发。但是:使用版本控制软件的确是大势所趋,已经几乎是一个绕不过去的问题了。

    //版本控制软件目前很多,而流行的是 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 客户端来,问题是:有必要吗?你能吗?


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangking/archive/2009/10/30/4748351.aspx

分享到:
评论

相关推荐

    软件开发版本管理之VSS

    【软件开发版本管理之VSS】是一个关于使用Visual SourceSafe(VSS)作为版本控制工具的讲解稿。版本控制在软件开发中至关重要,因为它解决了如何有效地管理研发项目的整体流程,协调项目开发小组成员的工作,统一...

    svn实现软件版本控制

    标题:“svn实现软件版本控制”所涵盖的知识点非常广泛,涉及软件开发中版本控制的基本概念、使用Subversion(简称SVN)进行版本控制的实际操作、目录结构的理解以及具体的项目开发流程。以下是详细的知识点解析: ...

    软件版本控制规范(参照模板).pdf

    《软件版本控制规范》是针对软件开发过程中对源代码、文档等重要资源进行有序管理和保护的一项标准。这一规范旨在确保代码的完整性和安全性,防止非授权的访问、复制和传播,同时提供了一套完整的操作流程和管理工具...

    软件工程的版本控制PPT介绍

    【版本控制】是软件开发中的核心实践之一,它允许团队成员对代码进行协同编辑,同时保持各个版本之间的历史记录和追踪。版本控制系统如Git、SVN等,使得开发者可以轻松地回溯到某个特定版本,解决冲突,以及进行分支...

    软件开发的计划.doc

    版本控制是指对软件开发过程中所产生的文档和代码的版本控制,以确保文档和代码的一致性和完整性。版本控制可以通过版本号、日期和作者来实现,对于软件开发的质量和进度有着非常重要的影响。 此外,软件开发计划还...

    软件开发领域Git版本控制系统的深入解析

    内容概要:本文详细介绍了Git这款分布式版本控制系统的核心概念、主要功能、工作流程及其在软件开发、文档编写等多个领域的广泛应用。文中解释了仓库、提交、分支和合并等基本概念,并展示了Git如何帮助开发团队进行...

    软件版本控制版本校验

    版本控制是软件开发中的关键实践,它确保团队成员在协作开发过程中能有效地管理和跟踪代码的变化。版本控制系统的目的是保持代码的整洁、可追溯性和协作性。以下是关于"软件版本控制版本校验"的详细解释: 1. **...

    分布式版本控制系统在海洋管理软件开发中的应用研究.pdf

    分布式版本控制系统在海洋管理软件开发中的应用研究是一个关键议题,特别是在处理大规模、复杂软件项目时。这类系统的主要目标是提高开发效率,规范软件发布流程,并确保软件开发的安全性和可控性。 传统的版本控制...

    软件开发中版本号命名规则详解-xxx公司软件版本管理体系

    内容概要:本文档详细介绍了...使用场景及目标:帮助相关从业人员理解和规范软件开发过程中的版本号管理方法,提高软件产品质量控制能力。 其他说明:文章不仅适用于xxx公司的项目实施,同时也可供其他企业借鉴学习。

    软件开发质量管理体系

    5. 配置管理:版本控制、变更管理以及构建自动化等手段,确保软件组件的一致性和完整性。 三、质量管理工具 1. 项目管理工具:如JIRA、Trello等,用于跟踪任务、管理进度,确保项目按计划进行。 2. 编码辅助工具...

    软件版本成本控制管理规范

    软件版本控制管理规范是软件开发过程中的一个重要环节,旨在确保软件产品的版本控制和管理,避免版本混淆和丢失。该规范涵盖了软件开发的所有过程,包括需求开发、软件设计、软件实现、系统测试和运维等。 1. 软件...

    个人软件版本控制

    无论是个人进行单独编码还是团体开发项目,项目的版本控制都是很重要的。 使用版本控制工具,可以方便,可靠的管理版本。 常用的windows平台下的版本控制工具有svn,cvs,git。 而下载的是一款不需要搭建服务器的...

    掌握软件版本控制:从入门到精通

    软件版本控制是现代软件开发中不可或缺的一部分。通过使用版本控制系统,如Git,团队可以更高效地协作、追踪变更、管理特性和修复bug。掌握版本控制不仅提高了代码的可维护性,还增强了团队的协作能力。通过遵循最佳...

    软件开发的过程与管理

    在软件开发领域,过程与管理是确保项目成功的关键要素。软件开发的过程涵盖了从需求分析到系统维护的各个阶段,而有效的管理则...通过学习本教程,你可以逐步建立起对软件开发全过程的理解,提升你在实际项目中的表现。

    版本控制心得.doc

    本文档《版本控制心得》探讨了版本控制的重要性和在软件开发过程中遇到的一些典型问题。 #### 二、未使用版本控制的开发方式及问题 在没有采用版本控制系统的开发团队中,常见的开发模式是多个开发者共享一份完整...

    标书软件开发质量和保证方案.docx

    配置管理确保所有配置项的完整性、一致性和可追溯性,通过版本控制、变更控制和基线管理。配置管理小组负责制定配置管理计划,建立配置库,分配权限,管理基线变更。 1.2.3 测试小组 测试是质量控制的核心,涵盖...

    软件开发思想以及流程

    在软件开发过程中,思想与流程是决定项目成功与否的关键因素。本文将深入探讨软件开发的思想、技巧以及标准的工作流程,并结合具体的资料管理策略,为读者提供一个全面的视角。 首先,软件开发思想主要包括理解客户...

    利用SVN和AltiumDesigner进行PCB版本控制设计

    SVN(Subversion)是一种开源的版本控制系统,广泛应用于软件开发和设计领域。AltiumDesigner是电子设计自动化(EDA)软件,提供了强大的PCB设计功能。 一、版本控制的重要性 版本控制的重要性体现在以下几个方面...

Global site tag (gtag.js) - Google Analytics