svn使用技巧:使用命令行添加忽略文件和目录

之前一直在团队中推荐自己在TortoiseSVNSetting->General->Global ignore pattern中定义排除规则。比如,我一直用的是*.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo __pycache__ *.rej *~ #*# .#* .*.swp .DS_Store [Tt]humbs.db。但有些人就不喜欢用,而且随着项目类型的转换,比如新的android团队需要定义不同的规则,这时就得重新在群里发新的规则比较麻烦。

想到git项目中有.gitignore文件,就想svn中是否有一样的文件,寻找了一圈发现应该是没有类型的文件可以用,仅仅是在项目的svn Propertys设置对话框中在Edit时可以Load一个文件,这个文件的规则和.gitignore类似。

顺便看到更改项目的svn:global-ignores和svn:ignore的命令行,就直接写了个批处理,外加三个规则文件,在批处理里分别导入三个规则文件到svn属性里,然后在工程根目录执行后提交svn即可,然后同事们再add时就不容易带入垃圾文件了。

批处理如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo off
rem 此批处理的用途

rem 参考链接:http://stackoverflow.com/questions/17298668/svn-ignore-like-gitignore
rem 参考命令行
rem svn propset svn:ignore -RF /root/svn-ignore.txt . [dot for current dir]
rem 各语言通用

set txt_path=%~dp0%
svn propset svn:global-ignores -F "%txt_path%svn_ignored_common.txt" %cd%

rem java开发
svn propset svn:global-ignores -F "%txt_path%\svn_ignored_java.txt" %cd%

rem android studio
svn propset svn:ignore -F "%txt_path%\svn_ignored_android_studio.txt" %cd%
pause

具体的几个规则文件由于可能会经常变更,并且不同项目有不同的需求,在这里就只放个链接了,https://github.com/k1988/win_mini_tool/tree/master/bats