Android studio 中使用svn
注:本文的Android Studio版本是 2.1.2,svn版本是:TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi,如有的地方表示不同,可能是版本差异。
Android Studio 是 Google 公司目前支持的 Android 开发工具,它集成了许多强大的功能。比如常用的代码的版本控制系统(git,svn等)。本文先介绍svn的常用功能。
一、配置svn
1.安装带有command line功能的svn客户端,我是用的是TortoiseSVN。安装时必须自定义选择command line(即点击安装时红色X的那一个条目) 。
2.安装完成后,打开IDE的setting配置面板,选择 Version Control 下的 Subversion
在右边 General 下的 Use command line client:右面的地址为你安装到本地的TortoiseSVN的下的svn.exe文件路径,如图所示:

二、从svn 中导入项目
方法一:(当前页面为工作空间)
1. 在菜单栏选择 VCS --> Checkout from Version Control --> Subversion
2. 弹出Checkout from Subversion 对话框 ,选择“+”,在弹出的 New Repository Location 中输入项目所在的地址
3. 点击将要使用的url的左边箭头, 在弹出的Authentication Required 中输入用户名及密码
Save credentials 为是否记住密码 选择ok
4. 最后,点击 Checkout 就将svn中的项目检出到本地了。


方法二:(当前页面为欢迎页面)
顺便说一下,怎么从工作空间进入到欢迎页面,在菜单栏选择 File --> Close Project.
1. 欢迎页面右侧,选择Check out from Version Control --> Subversion
2. 接下来的步骤同第一种方法
三、提交,更新
更新:
方法一:
点击工具栏中的更新图标,如图所示:

在Update Project中选择 " ok "
方法二:
右键单击你要更新的文件或文件夹,选择 Subversion --> Update Directory...

在弹出的Update Project对话框中选择 “ ok ”。

Update/Switch to specific url:
Use branch 后的 ... 表示选择需要更新的分支
URL 后的 ... 表示项目所在的选择url

选择 Update/Switch to specific revision 后,点击 ... 可以查看历史版本。

Depth 中的选项,这一部分是参考网上的资料,具体功能大家一起探索。通常我是默认 working copy。
提交:
方法一:点击工具栏的提交图标,如图所示:

在弹出的Commit Changes对话框中:
左上部分,选择本次要提交的文件;
左下部分,主要是对本次提交内容的概述,便于版本管理;
右上部分,
Auto-update after commit :先更新后提交
keep files locked:把文件锁上,(即不想其他人修改这些文件的代码)
右下部分(在提交代码前),
Reformat code:重新格式化代码
Rearrange code:重新整理代码
Optimize imports:优化导入
Perform code analysis:执行代码分析[ 默认选择]
Check TODO(show all):检测需要修改的代码[显示所有默认选择]
clean up: 清除所有
Update copyright:更新版权
设置好你的选项之后,点击 Commit 完成提交。

方法二:
右键选中文件或文件夹,选择 Sunversion--> Commit Directory...

如果没有要提交的文件,会弹出

直接点击 " ok "。
四、解决代码冲突
代码冲突(本地和服务器均修改了同一个文件)有三种情况:
1. 服务器的代码为无效代码,可直接将本地代码覆盖服务器的代码。
2. 本地代码修改为无效代码,即不需要传到服务器的情况,将服务器的代码直接覆盖本地代码。
3.本地代码和服务器的代码均为有效代码,将本地代码和服务器的代码合并。

当你选择merge合并时,会弹出代码合并对照窗口,一共有三个屏,左右两侧时你和服务器不同的代码并高亮显示不同的部分,带有箭头和叉号,通过点击箭头将两边冲突的代码添加到中间的合并区域中去,点击叉号则辨识放弃那一段代码,待所有冲突处理完成后merge就成功了。

五、将本地代码上传至svn服务器
在菜单栏下选择 VCS-->Import into Version Control-->Import into Subversion...
在弹出的 Import into Subversion 对话框中,点击 “+”添加路径 ,点击“-”删除路径
然后选择你要提交的分支,点击“ Import” 即可。


六、添加忽略文件
在Android Studio中一般建议忽略的文件,这个过程在导入项目之前:
-.idea文件夹
-.gradle文件夹
- 所有的build文件夹
- 所有的.iml文件
-local.properties文件
这就需要我们将这些问价添加到忽略文件中。
步骤:
File-->Version Control-->Ignored Files
添加忽略文件:点击右侧的 蓝色“+”,在弹出的对话框中选择:

对话框中的选项:
Ignore specified file:忽略指定的单个文件;
Ignore all files under:忽略指定的文件夹下的所有文件;
Ignore all files matching:忽略匹配文件(如:在编辑框中写入 *.txt ",即忽略所有的txt文件)
删除添加的文件:选中你要取消的忽略文件,点击右侧的 红色“-”即可。
七、在svn使用中的不同颜色
1.直接在Android Studio 中提交文件
在Android Studio 中的某个项目关联到svn中后,如果你所修改的文件(与资源库中不同的文件),文件名会以蓝色显示。提交的时候直接选择蓝色文件即可。新创建的文件还没有与svn关联,文件名称是红色的,必须先将文件与svn资源库关联,才能进行提交等操作,(右键点击选择 Subversion 然后选择 Add As VCS... 即先将文件与资源库关联)然后文件名变成绿色,就可以进行提交,更新等操作。
2.通过客户端提交文件:
在关联svn的文件夹下的文件:
红色(感叹号):表示本地文件与资源库中的文件不同。
绿色(对号):表示本地文件同资源库文件相同。
蓝色(问号):忽略的文件。
在提交文件时,弹出文件对比页面,页面右侧项目结构中标志为绿色的部分为本地文件与服务器文件不同的地方。
八、创建svn分支
1.项目右键,SubVersion->Branch or Tag...
2.在弹出的对话框里面,Copy To的菜单下面的Base URL里面选路径,点下面的加号,确定分支的路径,点击OK
3.然后写个注释(comment),点击OK,分支创建完毕。
4.比较的时候,项目右键,SubVersion->Compare With branch...比较合并

九、恢复资源库文件
当文件修改了之后,发现修改的无效,需要恢复资源库最后一个版本的内容,在所选文件单击右键,选择 Subversion ,再选择Reset ,即回到了资源库中的版本。