Linux命令行下svn ignore忽略文件或文件夹用法
Posted yang1010
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令行下svn ignore忽略文件或文件夹用法相关的知识,希望对你有一定的参考价值。
一、忽略单个目录
1、忽略文件夹
假如目录oa.youxi.com是从svn checkout出来的,在服务器本地目录添加了material,但是不希望把material加入版本控制,因此我们需要忽略掉这个目录
首先使用svn status命令查看当前状态
[[email protected] oa.youxi.com]# svn status
? htdocs/admin/adv/material
添加需要忽略的目录,貌似必须得进入该目录之下
[[email protected] oa.youxi.com]# cd htdocs/admin/adv/
[[email protected] adv]# svn propset svn:ignore ‘material‘ ./
property ‘svn:ignore‘ set on ‘.‘
[[email protected] adv]# svn ci -m ‘ignore a directory called "material".‘
Sending adv
Committed revision 2.
再次查看状态
[[email protected] adv]# svn status
[[email protected] adv]#
此后无论material目录如何修改,都不会提交到仓库去
2、提交文件夹,忽略文件夹内内容
[[email protected] adv]# svn propset svn:ignore ‘*‘ material
[[email protected] adv]# svn ci -m ‘adding "material" and ignore its contents.‘
3、若已经创建了文件夹,并加入了版本控制,现在想忽略这个文件夹,但要保持文件夹的内容:
[[email protected] adv]# svn export material material-tmp
[[email protected] adv]# svn rm material
[[email protected] adv]# svn ci -m ‘Removing inadvertently added directory "material".‘
[[email protected] adv]# mv material-tmp material
[[email protected] adv]# svn propset svn:ignore ‘material‘ ./
[[email protected] adv]# svn ci -m ‘Ignoring a directory called "material".‘
对于没有加入版本控制的,可以直接设定成ignore,但不能对加入版本控制的文件和目录这么做。解决办法是,先删除再ignore, 上面的命令其实也是这个方式,只不过有导出再mv的过程。
二、忽略多个目录
如果有多个目录需要删除,逐个目录按照上面步骤操作,那么操作完成后,前面操作的目录执行svn st又会显示成 ? 状态,而最后执行的那个目录才不会显示出来,所以说这样前面的目录都白弄了
如果有多个目录需要同时忽略,需要这样弄
[[email protected] adv]# svn st
? ad
? material
? logs
? images
[[email protected] adv]# svn delete url -m="delete ad" #删除版本库相应目录
[[email protected] adv]# mv ad material logs images /tmp #先备份
[[email protected] adv]# svn propset svn:ignore ".svnignore
> ad
> material
> logs
> images
> " ./
property ‘svn:ignore‘ set on ‘.‘
[[email protected] adv]# svn propget svn:ignore .
.svnignore
ad
material
images
logs
[[email protected] adv]# svn ci -m "ignore some directory"
Sending adv
Committed revision 6.
[[email protected] adv]# svn st
[[email protected] adv]#mv /tmp/{ad,images,logs,material} ./ #恢复备份
到这里就大功告成了,无论怎么修改上面的几个目录里面文件svn st都不会列出来,无论怎么svn up当前目录,上面几个目录都不会受到影响。
以上是关于Linux命令行下svn ignore忽略文件或文件夹用法的主要内容,如果未能解决你的问题,请参考以下文章