版本控制之SVN(SubVersion)
版本控制的作用:
主要内容:1.SVN服务器端与客服端的使用 2.SVN与第三方Eclipse整合
SVN(Subversion) 基本交互流程图:
服务端VisualSVN Server 可视SVN 图形化操作的,因为之前的版本为命令操作的
下载地址:https://www.visualsvn.com/server/download/
1.服务端安装步骤:
运行VisualSVN-Server-2.7.3.msi程序, 如下图
点击Next, 下一步
选中 I accept选项, 点击Next, 下一步
选择默认配置, 服务和控制台组件方式, 点击Next, 下一步
点击Standard Edition, 安装标准版
红色圈中的部分Location是程序的安装路径.
蓝色圈中的部分Repositories 是存放SVN仓库的路径(注意: 指定一个空的文件夹).
其他端口和协议使用默认, 点击Next, 下一步
点击Install, 进入安装
Win 7下, 会弹出对话框提示是否安装, 点击”是”, 继续安装
安装完成. 默认勾选 Start VirsualSVN Server Manager 选项, 点击Finish, 完成
连网情况下出现这个界面代表安装完成. 有Service is running代表安装成功
2.建立资源仓库 上图中的 Repositories就代表资源库 资源库保存的目录就是在安装服务端的时候所指定的路径(蓝色框框)
右击该选项就能创建一个资源库,创建资源库的时候会有个URL地址链接,客服端通过这个链接就能访问该资源库
3.客户端的安装TortoiseSvn(小乌龟)
TortoiseSvn是Subversion版本控制系统的一个免费开源客户端,它完全嵌入windows Explorer,使用时只需要在正常的窗口里右键操作就可以了。
下载地址:https://tortoisesvn.net/downloads.html
安装步骤:
运行TortoiseSVN-1.6.6.17493-win32-svn-1.6.6.msi程序, 开始安装
点击Next, 下一步
选择 I accept 接受, 点击Next, 下一步
选择安装路径, 点击Next下一步
点击 Install 开始安装
Win 7下会弹出一个对话框, 确认是否安装程序, 选择”是”, 继续安装.
点击Finish完成安装.
点击Yes, 重启电脑, 重启之后右键点击桌面选项菜单中有TortoiseSVN, 就安装成功了.
在桌面空白处右击会多出现下面两个选项:
checkout就是检出和服务器建立连接的意思:根据服务端仓库的URL获取里面的内容
如果客户端的文件状态是个“?”号,代表需要添加到版本控制中
如果客户端的文件状态是“+”号,需要提交(commit)到服务端
如果文件状态是“打勾”,代表和服务端的是相同的
如果文件状态是“!”号,代表文件改变了需要提交到服务端
如果想从服务器获取数据,右击该文件进行更新就可以了
如果文件状态是“黄色!”号,代表文件发生冲突
SVN与第三方Eclipse整合:
下载SVN插件( http://subclipse.tigris.org ) http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240
我们使用版本eclipse_svn_site-1.6.5.zip解压到一个文件夹中,进入 eclipse 安装目录中 dropins 目录并创建一个 subclipse.link 的文本文件(文件名任意)。内容为:path= eclipse_svn_site-1.6.5.zip的解压路径(注意:路径中需要把‘\’替换成‘/’)
配置成功后打开eclipse--》window-->preferences-->Team--》可以看到有svn就代表配置成功了
资源库中三个目录的功能:创建资源库的时候会创建这三个文件
/trunk 存放开发的“主线” 用来开发版本
/branches 存放支线副本分支 对发布给用户使用的版本进行bug修复
/tags 存放标签副本 存放发布给用户使用的版本(因为不会直接在该目录下进行修改,所以才有了上面那个文件)
基本操作:
/* 6.服务器基本创建 1.添加用户或组 2.创建仓库 1.选择是否创建空仓库 --- 2.访问权限 2.1都不能访问 2.2都可以访问 2.3设置权限 3.和仓库进行关联 3.1新建空白文件夹 3.2从仓库复制仓库url地址 3.3使用svn客户端和svn的仓库关联 4.svn检出 右键--svn checkout(检出)--粘贴url --设置检出文件位置(空文件夹) ---检出后会有 .svn影藏文件夹 7.提交文件到仓库(注意文件图标) 1.创建文件 2. 右键 --svn commit提交 3.输入提交信息 8.修改提交 1.修改文件 2.提交 (可以点击文件查看修改的内容) 9.查看历史版本 1.右键 --- svn ----show log查看日志 10还原版本 1.右键查看日志 2.选中需要还原的历史版本(还原前请更新) 3.右键 ---revert to this revison 4.还原后与服务器版本不一样 需要 再次提交 11备份还原仓库 1.备份 --- 找到仓库文件夹,复制 2.还原 --- 库 -- 右键 ---所有任务 -- import existing repository -- 选择路径 注意: 使用别人的仓库,他的用户名是固定的 (可能无法使用) 右键 --- 所有任务 ---manager security -- 添加用户 3.新建文件夹 检出文件 12常用图标介绍 1.绿色的对勾:新检出的工作复本 2.蓝色问号:表示是你个人的本地文件,不是svn上的 3.红色感叹号: 已经修改的文件,还未提交 4.黄色感叹号:文件冲突 13 代码冲突 原因: 在不是最新版本的代码上进行了修改,并提交 解决: 1.右键 -- update 黄色感叹号就是文件出现了冲突 2.解决 冲突文件--右键 -svn -- editconficts -- --编辑冲突代码 --- 将文件标记为冲突解决 -----提交代码 14提交代码的原则 1. 先更新,再提交 2.多提交 3.不要提交不能通过编译的代码 4.每次提交必须书写明晰的标注 5.提交时注意不要提交本地自动生成的文件 6.不要提交自己不明白的代码 7.慎用锁定功能 15创建带三个分支的仓库 右键 -- 创建分支库 truch: 主分支 开发主线 tags :发布版本 breachs: 修复bug 发布版本案例: 1.在truch上进行开发 2.发布 svn ---rebo browser --选择truch分支 右键--copy to --把truch路径改为 tag/v1.0(表示要发布的第一个版本) */
常见错误------不同行的冲突
同行冲突的错误提示,更新后提示如下
常见错误------同行的冲突
解决冲突 右击-TortoiseSVN-Edit conflicts 编辑冲突
全部为绿色就代表修改好了,保存退出就行,这时候生成的文件也就自动没了,最后标记为解决了冲突:右击冲突的文件-->TortoiseSVN-->Resolved... 弹出提示框,选择解决的冲突文件就行
查看日志,查看修改人,已经修改了什么内容:
有时候自己的文件做不下去了,想恢复到几个月之前的内容,就可以这样做(因为服务器保留了之前的版本,自己去拿就是),当然你可以再提交
在eclipse中修改冲突: 图中为 team
使用eclipse提交工程不需要提交的文件: .classpath .project bin目录 gen目录 因为这些都是eclipse自动生成的文件
关于studio中关联SVN与基本操作见:http://www.cnblogs.com/boonya/p/5105770.html
只安装客服端: 需注意,需安装 command line功能。(然后在bin目录才会有svn.exe文件)
svn小乌龟 汉化语言包下载:
svn下载:https://tortoisesvn.net/downloads.html 网址下有汉化语言包
忽略文件:一般需要忽略.idea文件夹、.gradle文件夹、所有的build文件夹、所有的.iml文件及local.properties文件。
在Studio中的基本使用如下:
1.AndroidStudio浏览SVN服务器上的项目文件夹:
步骤:Vcs–>Browse VS Repository–>Browse Subversion Repository.
2. 创建分支与tag,在Project视图下,项目右键,SubVersion–Branch or Tag… 一般会选择远程地址(不选择本地项目路径)
下图意思:将本地的代码复制一份出来 并创建一个分支
2.切换本地工作路径(比如将truch:主分支 开发主线 切换到 tags :发布版本 或者 切换到 breachs: 修复bug)
2.1在studio中操作切换分支:
可参考:http://www.cnblogs.com/Zachary46/p/9366981.html
3.分支的合并,比如将breachs合并到truch (可按照上图拿地址)
在Project视图下,项目右键,SubVersion->Compare With branch…比较合并代码
可参考: android studio中创建、切换svn分支
4.由于新添加的module或者文件,还没有添加忽略,需要导入项目后再添加,那就只能添加后再取消添加与配置忽略文件了: