svn中的ignore
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了svn中的ignore相关的知识,希望对你有一定的参考价值。
1.相关命令
svn propdel (pdel, pd)
svn propedit (pedit, pe)
svn propget (pget, pg)
svn proplist (plist, pl)
svn propset (pset, ps)
参考:http://svnbook.red-bean.com/en/1.7/index.html
2.相关可设置属性
参考:http://svnbook.red-bean.com/en/1.7/svn.ref.properties.html
3.svn:global-ignores和svn:ignore以及小乌龟settings中的global ignore patterns的区别
svn:global-ignores配置当前目录的全局ignore,对当前目录的所有文件和文件夹起作用.
相当于在当前目录,配置-R svn:ignore,不是对当前仓库的的.
svn:ignore只对当前目录有效,如果使用-R参数,对子目录也有效.
global ignore patterns的配置文件在svn %APPDATA%/Subversion/config中,###是注释,#是配置,对所有仓库有效.
也可以在小乌龟中右键setting
4.svn的ignore配置
首先需要注意的一点:svn的ignore可能无法区分文件夹和文件,比如.idea,会同时忽略.idea文件夹和文件.(反正我没找到区分方法)
通配符就是?* [],?匹配单字符,*多字符,[]任意一个,比如[0-9]和[Tt],应该和正则用法一致.
5.已经commit过的如何忽略?
svn又一次被git完爆的原因
如果是编译等产生的中间文件,比如target,bin我觉得直接svn delete就行.
如果是配置文件,比如idea,.project,再接着看
已经commited了再.ignore也不管用了.
比如已经commit了.idea文件夹,后面给.idea加了ignore.
如果自己一个人用svn,可以先备份一份,然后svn del掉.idea文件夹,备份的再改回.idea就好了.
如果团队用,A,B,C三个人,A备份为idea1,A用svn del .idea删除掉,或者A不用备份,--keep-local也行,然后B和C在update之前,备份为idea1,update好了再改回来.
如果需要备份的文件太多,几十个之类的,可以尝试花点时间写个脚本,先根据需要备份的ignore,找到匹配的文件和目录,cp备份,更新完了,再还原回来.
查了有点相关的svndumpfilter,感觉有点难,而且貌似也达不到效果.
如果能在server端的版本库中删除文件,本地库不更新,就好了.
6.小乌龟的右键ignore
没有 recursively的,是global-ignore,对当前目录以及子目录有效.
有recursively的,只对当前目录有效.
以上是关于svn中的ignore的主要内容,如果未能解决你的问题,请参考以下文章