不管老师在大学里是留了作业还是篡改了自己的代码,都是一台独立的机器,没有团队开发,也没有考虑版本控制问题。事实上,当时成都软件开发公司已经把所有的文件夹都存储了起来,命名的日期以确定最新的版本。课程中没有关于版本控制的问题。现在想想大学里学不到的东西!!!
毕业以后就去公司面试,面试过上班的时候,技术经理第一件事就是看VSS,我当时就想你确定不是VS是VSS?百度了一下,还真有VSS(Visual Source Safe)这鬼东西,看了半天也没懂咋操作,后来直接上手。作为普通用户操作还简单,无非就是“签入”“签出”的问题,就这也把代码搞乱过,然后通过“回滚”恢复之前的代码。
版本控制工具也就是把团队每个成员修改的代码做一次备份,每提交或签入一次都会有记录,避免重复拷贝,集中管理的特点。这样在开发过程中省去了很多麻烦,团队联网开发,也可以很高效的工作。版本控制工具一般都是管理员的操作会相对麻烦相对难一点,比如把文件放到哪个位置、安装版本控制工具环境、设置账户密码等等一系列操作。用户也有个小麻烦,成都软件开发公司最常遇到的是代码冲突的问题,当两个人同时修改一个文件的时候就会产出该问题,冲突在各个版本控制工具中都有相应的处理方式,及时解决就可以了。
版本控制工具有SVN、VSS、GIT、Hg、CVS等,使用过的也就两个,一个VSS,一个SVN。现在VS自带的版本控制也是GIT,没用过,不过GIT也是很不错的选择。那就说说SVN和VSS,可能更多的用户使用过SVN,因为SVN是目录控制且跨平台,而VSS是基于VS的控制工具。SVN的对目录的控制要比VSS强会多,文件夹上也有相应的状态图标,功能也很完善,所以使用的用户也很多。成都软件开发公司感觉VSS比SVN强的一点是冲突问题的解决,由于SVN是目录控制,所以在冲突的时候不会立即提醒你,而是当你获取的时候告诉你冲突,用户可以选择用谁的方案解决。而VSS打开文件就是独占方式打开(SVN需要单独标注),当其他用户修改别人打开的文件时不允许修改,这重根本上解决了冲突问题,实时性比较强。其他两个控制工具没使用过就不做过多的说明了,也只是表达自己使用的一些感受,不正确的地方还望指正。
版本控制问题在任何开发公司都会遇到,对于刚使用的同学还需要在自己电脑上多摸索,每一个用户的操作都关系到别人电脑上的代码,虽说能恢复,有时候也难免会挨骂。不知道各位有没有正在是有版本控制工具呢?使用的是什么版本控制呢?