首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

linux清楚svn信息以及 SVN忽略整个目录

作者:  时间: 2011-06-11
svn信息是根据文件夹里面的 .svn 文件夹保存相关配置的,删除此文件夹即可去掉svn信息:

linux下:

find . -type d -name ".svn"|xargs rm -rf

find . -type d -iname ".svn" -exec rm -rf {} \; 

忽略目录:

用svn管理代码,一直以来都受到一件不爽事情的困扰:

1)有些文件或文件夹不想在commit的时候看到,虽然他们是non-versioned,比如*.bak.*.class,*.scc(vss文件),目录比如bin/, classes/,还有一些是eclipse之类开发工具生成的文件

2)当错误的将以上那些不想看到的文件加入svn后,该怎么忽略它们

google了一下svn ignore,看到了些方法:

转自http://www.svn8.com/SVNSY/20090405/4410.html 写道
若想创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容:

$ svn mkdir spool
$ svn propset svn:ignore '*' spool
$ svn ci -m 'Adding "spool" and ignoring its contents.'

若想创建一个文件夹,但不加入版本控制,即忽略这个文件夹:

$ mkdir spool
$ svn propset svn:ignore 'spool' .
$ svn ci -m 'Ignoring a directory called "spool".'

若已经创建了文件夹,并加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容:

$ svn export spool spool-tmp
$ svn rm spool
$ svn ci -m 'Removing inadvertently added directory "spool".'
$ mv spool-tmp spool
$ svn propset svn:ignore 'spool' .
$ svn ci -m 'Ignoring a directory called "spool".'

我看了网上关于svn:ignore的介绍, 说对于没有加入版本控制的,可以直接设定成ignore,但不能对加入版本控制的文件和目录这么做。解决办法是,先删除再ignore, 上面的命令其实也是这个方式,只不过有导出再mv的过程。