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的主要内容,如果未能解决你的问题,请参考以下文章

在docker容器中的svn-server创建一个svn仓库

怎样快速去除项目中的svn标记

删除Eclipse中的SVN账号信息-SVN切换用户

SVN:删除目录树中的所有.SVN文件夹

获取 SVN 中的最新修订号?

如何清除Eclipse中的SVN账号信息 | SVN 如何切换用户