svn:ignore的使用

来源:互联网 发布:移动机顶盒软件下载 编辑:程序博客网 时间:2024/05/21 07:06

用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的过程。
命令行方式固然好,但我用的是tortoisesvn,界面操作更加人性化和easy。tortoisesvn下页可以类似的这么做:
1)找到这些文件,直接右键,add to ignore list, 之后可以选择by name,by extention, 选择by extention就能忽略同类文件了。
2)直接在命令模式del /s *.bak ,先把*.bak在本地工作目录删除掉,然后再commit;看需要,再将*.bak 加入ignore


使用svn propget svn:ignore .  来查看svn:ignore属性。


使用 svn propedit svn:ignore project1 来打开一个编辑器编辑project1的svn:ignore 属性。
(之前设置一下SVN默认使用的编辑器:export SVN_EDITOR=/usr/bin/vim,  为了方便就加入到.bash_profile里面去)




0 0
原创粉丝点击