公司要求统一使用 svn 来管理代码,其实一开始我是拒绝的,我可是坚定的 git 党,不过钱是老板发的,那老板说啥,那就是啥吧。只能尽力开发一下 Android Studio 自带的 svn 系统,为开发寻求一点便利了。
刚开始用 svn 的时候,还是有点手忙脚乱的感觉,再加上 Ubuntu 上的 Rabbit VCS 的 GUI 界面对文件变化总是慢半拍,所以刚接手的项目,保存了副本后,对服务器上的文件进行了一顿操作,才勉强掌握 svn 的基本用法和一些特性。不过毕竟 Rabbit VCS 还是不太好用,某天尝试过 Android Studio 的 VCS 系统中的 svn 后,顿时惊为天人,果断转投阵营了。
但是,Android Stuido 对 svn 的支持有个很不方便的地方,就是不能像 git 一样,通过一个.gitignore
文件就能无痛设置好不需上传的文件,目前我只发现了在Settings->Version Control->Ignore Files
这个选项里手动设置一个个的忽略文件,然后再引入 svn 管理,这样设置才会生效。但由于工作性质的原因,基本上一两个月就要接手开发一个新项目,要是每次都手动输入一大堆忽略文件,那真是欲仙欲死了。所幸最后终于让我找到了无痛设置这个选项的办法。
下面记录一下我使用 Android Stuido 对项目代码引入 svn 的流程。
批量添加 ignore file
在项目的.idea.xml/workspace.xml
文件中加入以下代码即可,忽略文件列表是我从开源项目gitignore中的Android.gitignore
拷过来的:
<component name="ChangeListManager">
<list default="true" id="26e74bef-4dee-4cca-ae98-b6b631e11df1" name="Default" comment="">
...
</list>
<ignored mask="*.apk" />
<ignored mask="*.ap_" />
<ignored mask="*.dex" />
<ignored mask="*.class" />
<ignored path="bin/" />
<ignored path="gen/" />
<ignored path="out/" />
<ignored path=".gradle/" />
<ignored path="build/" />
<ignored path="local.properties" />
<ignored path="proguard/" />
<ignored mask="*.log" />
<ignored path=".navigation/" />
<ignored path="captures/" />
<ignored mask="*.iml" />
<ignored path=".idea/workspace.xml" />
<ignored path=".idea/tasks.xml" />
<ignored path=".idea/gradle.xml" />
<ignored path=".idea/dictionaries" />
<ignored path=".idea/libraries" />
<ignored path=".externalNativeBuild/" />
<ignored path="freeline.py" />
<ignored path="freeline/" />
<ignored path="freeline_project_description.json" />
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
...
</component>
然后rebuild project
,再打开Settings->Version Control->Ignore Files
选项,你会发现原本一片空白的 Ignore files 列表已经丰富起来了。
将当前项目添加到 svn 服务器
这一步就简单了,前置条件有两点:
- 该项目还未引入过 svn 管理系统
- 在 svn 服务器上为该项目准备的文件夹为空
在顶部菜单栏选择VCS->Import Into Version Control->Share Project(Subversion)
然后填入 svn 地址,按要求选择各种条件后即可。