软件公司最重要的就是软件的代码了,代码是程序员辛勤工做的成果。针对代码的控制是很是重要的,天天程序员们写了新的代码,修改了哪些代码,升级发布了一个版本,但愿都须要被记录,版本管理软件这时候就发挥做用了。通常,咱们在各类IDE上面看到的集成版本管理软件有CVS,SVN,GIT,使用方面后面2个比较多,第一个彷佛是说要进行权限管理上面的,上面3个都是开源软件。java
通常,小型项目,能够考虑用SVN来管理,有不错的图形界面,并且eclipse支持也比较好。SVN,全称-subversion,是一种版本控制工具,和git差很少,不过git在分布式管理方面更加有优点,毕竟当初的目的就是用来管理Linux源码的。本地搭建SVN,须要一个客户端和一个server端,客户端在windows中须要一个TortoiseSVN(海龟SVN),直接下一步下一步安装便可,服务端安装一个可视化的VisualSVN,标准版,不断下一步便可。git
在SVN服务端,有几个项目,一个是repository,一个是客户,还有一个是组,repository就是仓库,客户和组的功能主要是对用户的权限管理等。repository仓库须要先本身建,通常直接默认便可,有几个注意,有个single(含有分支的),权限不用设置,能够修改的,最后会生产一个URL。程序员
通常右键有Tortoise就可,有个checkout,还有个tor的功能选项,先checkout,就能够和服务端创建链接,URL就填上面的那个就可。而后就能够建立文件,修改文件,右键Tor就能够执行提交更新等操做了。windows
在分配多个用户时,通常一个用户天天到来时先update,再作事,而后完成了一个小任务,就能够提交。这时,可能出现几种状况,一种是A和B用户提交修改了不一样行,那么先提交的那个用户,成功,后提交的用户提示须要更新再提交,按提示操做,merge成功。可是若是两个用户是在同一行进行操做,那么第二个提交的用户即便update仍然“失败”,同时会出现几个文件,用来提示用户更改先后文件的内容,这时右键有个功能,编辑冲突,在冲突行会有高亮操做,或者移到下一行仍是上一行等。eclipse
通常咱们用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中里面有的文件,这是可成功转换。ui
在branch中修复bug完成,先提交,再分支\标记到tag标签中,注意文件名的填写,便可。spa
在branch中切换便可看到修改好的新tag了。注意tag用于存放release的版本。另外修改后的代码仍然须要整合到trunk上面来,防止后续版本也出现这样的问题。这是可使用merge功能。
在工做空间中,能够用team的shared功能,便可建立一个关于该项目的版本控制,注意文件名字的填写。
使用注意:
windows中没有右键菜单,能够在注册表中,软件中,含有tortouiseSVN的文件夹删除,重启电脑,再次安装一遍,便可。