使用过 git 忽略文件的人可能初次接触 svn 的忽略文件的方式不是很习惯,在 git 中,只要添加 .gitignore 文件,然后将要忽略的文件名加入即可,简单、易理解。但是 svn 不是用这种方式,而是使用到内部的命令,而且设置的东西还找不到对应的文件,类似 .gitignore 的文件,这一度让我费解,几经周折,总结如下。
svn help 中有 propset propget propdel proplist propedit 五个 svn 的设置
propset 命令只能设置一个或者一类文件,多次执行,只会保留最后一次设置的
> svn ps svn:ignore file . # ps 是 propset 的缩写
propget 则会获取当前忽略的文件
> svn pg svn:ignore # pg 是 propget 的缩写
proplist 会列出 svn 的内部属性
> svn proplist
Properties on '.':
svn:ignore # 当前忽略的文件
svn:mergeinfo # svn 合并历史信息
propedit 会弹出一个编辑文件,在里面批量添加你想忽略的文件即可,类似 .gitignore
> svn pe svn:ignore . # pe 是 propedit 的缩写
所以如果你只想忽略一个文件或者一类文件,例如 .apk 结尾的文件,可使用 propset 一条命令搞定。但是如果你想忽略多个不同类型的文件,比如 .iml、.apk 等等,可以使用 propedit,指定文件所在的目录,在弹出的文本文件中添加文件名即可,这很像 git 里面的 .gitignore 文件,也是我比较常用的在 svn 中忽略文件的方式。