软件公司最重要的就是软件的代码了,代码是程序员辛勤工作的成果。针对代码的控制是非常重要的,每天程序员们写了新的代码,修改了哪些代码,升级发布了一个版本,希望都需要被记录,版本管理软件这时候就发挥作用了。一般,我们在各种IDE上面看到的集成版本管理软件有CVS,SVN,GIT,使用方面后面2个比较多,第一个似乎是说要进行权限管理上面的,上面3个都是开源软件。
一般,小型项目,可以考虑用SVN来管理,有不错的图形界面,而且eclipse支持也比较好。SVN,全称-subversion,是一种版本控制工具,和git差不多,不过git在分布式管理方面更加有优势,毕竟当初的目的就是用来管理Linux源码的。本地搭建SVN,需要一个客户端和一个server端,客户端在windows中需要一个TortoiseSVN(海龟SVN),直接下一步下一步安装即可,服务端安装一个可视化的VisualSVN,标准版,不断下一步即可。
在SVN服务端,有几个项目,一个是repository,一个是客户,还有一个是组,repository就是仓库,客户和组的功能主要是对用户的权限管理等。repository仓库需要先自己建,一般直接默认即可,有几个注意,有个single(含有分支的),权限不用设置,可以修改的,最后会生产一个URL。
一般右键有Tortoise就可,有个checkout,还有个tor的功能选项,先checkout,就可以和服务端建立连接,URL就填上面的那个就可。然后就可以创建文件,修改文件,右键Tor就可以执行提交更新等操作了。
在分配多个用户时,一般一个用户每天到来时先update,再做事,然后完成了一个小任务,就可以提交。这时,可能出现几种情况,一种是A和B用户提交修改了不同行,那么先提交的那个用户,成功,后提交的用户提示需要更新再提交,按提示操作,merge成功。但是如果两个用户是在同一行进行操作,那么第二个提交的用户即使update仍然“失败”,同时会出现几个文件,用来提示用户更改前后文件的内容,这时右键有个功能,编辑冲突,在冲突行会有高亮操作,或者移到下一行还是上一行等。
一般我们用SVN,主要和一些IDE或者文本编辑器结合起来使用,比如和Eclipse的结合,有一个插件解决了这个问题,叫subclipse,下载解压放到eclipse安装目录的dropin目录里面即可。这里注意,也可创建一个link类型的文件,如subclisp.link的文件,内容为path=文件的路径(注意把路径的\换成/,即建立了一个快捷方式。重启eclipse,在windows里面的配置里面可以看到SVN的选项,有时64位版本可能会有异常报告,在SVN里面把SVNCLIENT改为purejava即可。在show里面有一个SVN资源库,点出来,添加SVN资源库,检出,现成的工作空间,即可在eclipse完成部署。右键工作空间的项目,在team里面可以执行提交更新或者分支等操作。
更一般的是,建立了一个trunk(主干,主要是项目的成长进度)、branches(主要针对项目的一些枝叶,或者是一些个性化的操作,如针对类似项目的不同客户的定制需求)、tag(主要是发布的版本)的目录。
这时候检出,主要是针对一个模块,如trunk或者branches,在每个模块中进行更新,修改,添加,当编辑好之后,右键有个分支|标记功能,弄一个版本1。
考虑一种情况,trunk中不断地升级功能,版本迭代,但是因为用户量巨大,之前的版本突然发现有 bug,那么在tag中检出之前的版本1,在branches中必须要有一个文件,然后在tag中右键切换功能,上面的位置需要填写好,就是branches中里面有的文件,这是可成功转换。
在branch中修复bug完成,先提交,再分支\标记到tag标签中,注意文件名的填写,即可。
在branch中切换即可看到修改好的新tag了。注意tag用于存放release的版本。另外修改后的代码仍然需要整合到trunk上面来,防止后续版本也出现这样的问题。这是可以使用merge功能。
在工作空间中,可以用team的shared功能,即可创建一个关于该项目的版本控制,注意文件名字的填写。
使用注意:
windows中没有右键菜单,可以在注册表中,软件中,含有tortouiseSVN的文件夹删除,重启电脑,再次安装一遍,即可。