关于软件的版本控制问题

简介:

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

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













本文转自网眼51CTO博客,原文链接:http://blog.51cto.com/itwatch/286607,如需转载请自行联系原作者

相关文章
|
16天前
|
开发工具 git 开发者
Git常用命令大全:让你轻松驾驭版本控制
Git命令速查:`git init`新建仓库,`git clone`克隆,`git add`入暂存区,`git commit -m`提交,`git status`查看状态,`git log`查看历史,`git branch`创建分支,`git checkout`切换,`git merge`合并,`git pull`拉取更新,`git push`推送,`git remote -v`查看远程,`git checkout --`撤销本地修改,`git reset HEAD`取消暂存,`git reset --hard`回退版本。掌握这些,提升代码管理效率!
16 0
|
4月前
|
存储 开发工具 git
Git的正确使用姿势与最佳事件:团队协作开发和版本控制的最佳实践
Git 是目前最流行的分布式版本控制系统之一,它提供了强大而灵活的工具来管理项目的版本和协作开发。无论您是个人开发者还是团队成员,掌握 Git 的使用方法都是必不可少的。本文将引导您从 Git 的基础知识开始,逐步探索 Git 的进阶功能。
|
7月前
|
存储 监控 算法
版本控制算法在文档管理软件中的关键作用:提升安全性与权限管理
版本控制算法是一种不可或缺的工具,这个家伙不仅能帮你记录文档的点点滴滴,还能在需要时穿越时空,让你回到过去的版本。这可是文档管理的大杀器,不仅让你不怕数据丢失,还能保证文档历史清清楚楚。接下来,就让我们来聊聊怎么样才能用版本控制算法来加强文档管理软件的安全性和权限管理吧——
149 1
|
9月前
|
运维 Devops 开发工具
bug怎样算修完,浅谈团队分布式bug管理 git-poison简单易用的bug管理工具
介绍基于go-git开发实现通用化的git-poison,通过分布式源码管理bug追溯、查询。
46305 16
|
12月前
|
SQL 运维 jenkins
测试思想-流程规范 SVN代码管理与版本控制
测试思想-流程规范 SVN代码管理与版本控制
101 0
|
12月前
|
测试技术 BI Android开发
测试思想-流程规范 软件测试版本管理与版本发布
测试思想-流程规范 软件测试版本管理与版本发布
141 0
|
运维 测试技术 Linux
软件开发版本控制流程
软件开发版本控制流程
910 0
软件开发版本控制流程
|
Linux 开发工具 开发者
软件开发之版本控制方式
软件开发之版本控制方式
软件开发之版本控制方式
|
存储 测试技术 开发工具
企业Git 规范的必要性
既然认同需要一份 Git 规范,那么这个规范需要规范哪些内容,解决哪些问题
209 0
企业Git 规范的必要性
|
开发工具 git
【Git】4. 团队内、跨团队协作机制
【Git】4. 团队内、跨团队协作机制
【Git】4. 团队内、跨团队协作机制