版本控制工具因为我是先用Git的,换公司了之后需要使用SVN,就花了一天时间来研究了一下.
首先要吐槽一下,SVN真心不好用…好吧,我承认是我不会用,不要喷我~
至于我为什么一开始就研究文件过滤,呵呵~强迫症的世界你们不懂.
其他的一些操作,像提交下拉合并(抱歉,Git用习惯了)等等等等,都大同小异也不用多说.
言归正传,我们知道Git配置过滤很简单,只需要在项目目录下面写一个.gitignore文件,就可以轻松过滤掉对应的文件或者文件夹,也可以包括子文件夹内对应的文件或者文件夹.比如以下这个规则,就是我常用的:
# Git
*/.gitignore
# Eclipse
.classpath
.project
.settings/
# IntelliJIDEA
.idea/
*.iml
*.ipr
*.iws
# AndroidStudio
build/
captures/
local.properties
.externalNativeBuild
# Mac
.DS_Store
# Maven
logs/
target/
# Gradle
.gradle/
我是使用AndroidStudio,上面的规则基本就过滤了一些不必要进版本库的临时文件.
切换到SVN之后,不能再通过文件的方式编写过滤规则,SVN配置是通过SQLite存储,使用AndroidStudio或者TortoiseSVN可以快速编辑.
过滤规则在SVN里面叫做属性,而过滤文件对应的属性是svn:ignores和svn:global-ignores,前者描述当前目录过滤规则,后者描述当前目录和子目录的过滤规则;在AndroidStudio内通常使用svn:global-ignores来全局配置;例如:
属性key:
svn:global-ignores
属性value:
.classpath
.project
.settings
.idea
*.iml
*.ipr
*.iws
build
captures
local.properties
.externalNativeBuild
.DS_Store
logs
target
.gradle
对应Git中.gitignore文件的描述规则;
##警告:前方高能!!!初接触SVN的友军请握紧鼠标,抱紧电脑!!!
最后,还有很重要的一点!!!
添加了过滤规则后,提交的时候发现SVN过滤规则往往不生效~说实话这个对于用惯了Git的猿巨坑!
这是为什么呢,因为:提交新的过滤规则时,必须要保证本地项目内过滤规则内对应的目标不存在并且同时提交对应的删除操作,否则规则不会生效.这也解释了为什么使用客户端添加过滤的时候会删除对应的项目的原因.
好了,以上就是目前我对于SVN过滤这一块的研究结果,如果大家发现有错误的地方,还请多多指正~