本文介绍Linux 命令行下 svn 设置忽略文件列表的相关内容,也会涉及 Win 下使用 Tortoise SVN 的相关配置。
本文欢迎自由转载,但请标明出处和本文链接,并保持本文的完整性。
CU: Godbach
Blog:http://blog.chinaunix.net/u/33048/index.html
Jan 11, 2011
Linux命令行下使用 svn st 查看当前版本库状态的时候,经常会出现一些临时生成的一些文件,状态的标记为 "?"。尤其是如果工程比较大,比如编译完 Linux 内核,有大量的临时文件生成。这些临时文件中,有些是诸如 *.o 之类文件,这样 svn 默认会自动过滤的,执行 svn st 的时候并不会显示出来。但是也有不少的临时文件,是不会被过滤的。因此,我们应该可以根据需求来配置需要过滤的文件列表。
配置的方法有以下几种:
1. 修改版本库的相关属性
- $ svn propedit svn:ignore dir
其中 dir 就是你所想设置过滤文件列表的目录,执行命令之后,会出现编辑界面,按照空格将你想过滤文件(通常使用通配符的方式)以空格分开,保存退出即可。
这个属性是针对版本库进行的修改,因此需要提交这个修改。
注意:这个设置无法递归,也就是如果 dir 目录下还有子目录的话,是单独设置的。
2. svn 客户端的配置
对 svn 命令的配置文件修改即可。进入个人用户目录
- $ vi .subversion/config
找到包含 [miscellany] 这一行,取消注释
然后编辑包含 global-ignores 的那一行,取消注释,并添加需要过滤文件的通配符即可。
以下是我添加了对编译内核过程中一些临时文件的过滤:
- global-ignores = *.ko *.ko.cmd *.cmd *.o.cmd *.mod.c *.so *.a *.o *.lo *.la .*.rej *.rej .*~ *~ .#* .DS_Store
以上是简单介绍 Linux 上两种配置 svn 设置忽略文件列表的方式。下面简单介绍一下 Win 使用 Tortoise SVN 如何设置。
其实核心的思路是和 Linux 上一样的。一种是对 svn 版本看的配置,一种是对 svn 客户端工具的配置。由于 Tortoise SVN 是图像化界面,这里仅简单说一下过程,不进行图片展示。
3. Tortoise SVN 上修改版本库的属性
右键单击一个处于 svn 管理的目录,也就是你想设置过滤文件列表的目录,依次点击 Tortoise SVN->属性->新建,下拉列表选择 svn:ignore,然后在文本框里面编辑过滤文件列表。如果希望递归该属性,请选择左下角的复选框"递归应用该属性"即可。
这个设置和 1 中介绍的方法是同一个效果,只是多了个递归。
4. Tortoise SVN 客户端工具的配置
如同 2 中介绍的一样,这个配置和 svn 版本库没有关系。
在任何目录右键单击,依次点击 Tortoise SVN->设置->常规设置,全局忽略样式 中添加忽略文件列表即可。
以上是 svn 设置忽略文件列表的几种方法。本人进行了简单测试,欢迎多多交流。