SVN 忽略文件夹

1、若创建了一个文件夹,并且把它加入版本控制,但忽略文件夹中的所有文件的内容

$ svn mkdir cache 

$ svn propset svn:ignore '*' cache 

$ svn ci -m 'Adding "cache" and ignoring its contents.'

 

2、若想创建一个文件夹,但不把它加入版本控制,即忽略这个文件夹和里面的内容

$ mkdir cache 

$ svn propset svn:ignore 'cache' .        // 一定要记得最后有一个小点

property 'svn:ignore' set on '.'

$ svn ci -m 'Ignoring a directory called "cache".'

查看被忽略的文件夹:

$ svn st cache
I       cache

 

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

$ svn export cache cache-tmp 

$ svn rm cache 

$ svn ci -m 'Removing inadvertently added directory "cache".' 

$ mv cache-tmp cache 

$ svn propset svn:ignore 'cache' . 

$ svn ci -m 'Ignoring a directory called "cache".'

 

4、若已经创建了文件夹,并已加入了版本控制,现在想忽略这个文件夹以及里面的内容:

实际上分两步:

1)SVN删除这个文件夹;

svn rm 'cache'

svn ci -m "svn rm cache"

2)创建同名文件夹并SVN忽略此文件夹,按照步骤2

$ mkdir cache 

$ svn propset svn:ignore 'cache' .        // 一定要记得最后有一个小点

property 'svn:ignore' set on '.'

$ svn ci -m 'Ignoring a directory called "cache".'

查看被忽略的文件夹:

$ svn st cache
I       cache

 

 

SVN 忽略文件

如果想在SVN提交时,忽略某个文件,也就是某个文件不提交,可以使用

svn propedit svn:ignore 命令

 

详细步骤

svn propedit svn:ignore 目录名称

注意,在使用这个SVN的属性编辑前,你得确保后面的“目录名称”已经是SVN版本控制的目录。

如果要忽略此目录下的文件,可以如下操作。

比如,想忽略 /product 目录下的test.php文件,前提是/product目录必须在svn版本控制下,而test.php文件不在svn版本控制。

svn st 先看一下状态,会显示如下:

$svn st

?     /product/test.php

我们需要将test.php文件加入忽略列表。

此时先设置SVN默认的编辑器

export SVN_EDITOR=vim

然后,使用svn propedit svn:ignore , 用法如下

svn propedit svn:ignore /product

此时会出现一个VIM的编辑窗口,表示需要将某个文件加入到忽略列表里

我们在编辑窗口中,写入

test.php

然后保存,并退出VIM编辑器。

这时候会有一个提示:属性 “svn:ignore” 于 “product” 被设为新值。

Set new value for property 'svn:ignore' on 'product'

表示文件test.php的svn:ignore属性设置成功。

然后使用svn st查看,会显示:

$svn st

M        product

我们需要提交,然后这个svn:ignore属性才会起作用

svn ci -m '忽略test.php文件'

这时候,无论你如何修改test.php文件,再使用svn st时,也不会出现修改提示符合M了。

 

 

svn global-ignores svn:ignore用法

一、svn:ignore 

1、定义:svn:ignore 是 Subversion的属性,作用是忽略未版本控制的条目,

要注意是“未加入版本控制的版本条目”,我们主要就是用它来忽略一些我们不想上传到版本服务器的文件或者目录;

2、命令行格式:

svn propedit svn:ignore project1 --editor-cmd notepad

 则会打开记事本,在记事本中输入过滤规则,关闭记事本,就完成编辑了。 

 --editor-cmd参数指定了用来编辑属性的命令

3、注意:svn:ignore仅作用于当前目录;

 

二、svn global-ignores

1、定义:忽略未版本控制的条目,全局参数;

2、在Windows注册表中,位于HKEY_CURRENT_USER\Software\Tigris.org\Subversion\Config\Miscellany\global-ignores下;

3、通过TortoiseSVN设置global-ignores:

svn-ignore-hu-lve-wen-jian-ji-mu-lu-01

svn-ignore-hu-lve-wen-jian-ji-mu-lu-02

 

三、svn:ignore、global-ignores区别:

1、svn:ignore:只对当前目录有效;

global-ignores:是全局有效,就是所有项目都有效;

2、svn:ignore:必须每个工作目录都要设置,个性化配置;

global-ignores:只需要配置一次,使用方便;

 

 

SVN的ignore属性

svn通过属性来判断如何处理仓库中的文件,其中有一个属性便是 svn:ignore

你可以使用 svn propset 来设置svn:ignore在单独的目录。

你也可以给svn:ignore设置一个值,文件名或者是表达式,例如圆点目录(.)

例如:

svn propset svn:ignore *.class .

这时你使用svn status命令,就看不到 *.class文件了。如果你也想查看忽略的文件,你可以输入:

svn status --no-ignore

 

忽略文件夹

忽略文件夹,千万不要加斜杠。

svn propset svn:ignore bin . # yes  
svn propset svn:ignore /bin . # nope   
svn propset svn:ignore bin/ . # nope

 

使用 -R 递归属性配置

使用上面的方法只能忽略当前目录,如果你想要自己的子文件夹也进行忽略 要使用-R惊醒操作。

svn propset svn:ignore -R *.class .

 

忽略多种类型的文件

通过以下的命令你可以忽略 *.class, *.apk,   Thumbs.db

svn propset svn:ignore -R *.class .  
svn propset svn:ignore -R *.apk .   
svn propset svn:ignore -R Thumbs.db .

或者,你可以这样:

svn propset svn:ignore -R "*.class
> *.apk
> Thumbs.db" .

 

使用-F通过配置文件来忽略

如android的,eclipse工程中需要忽略一些文件。
于是新建一个文本文档.svnignore并在其中写入:

bin  
gen  
proguard  
.classpath  
.project  
local.properties  
Thumbs.db  
*.apk  
*.ap_  
*.class  
*.dex

然后执行:

svn propset svn:ignore -R -F .svnignore .

全局忽略完成。

 

注意事项

进行上述步骤之后,每个文件夹内的bin,gen等目录都会被忽略。

所以起名字的时候不要起和忽略的名字相同的文件。

 

对忽略进行查看,删除

查看全部

# svn status --no-ignore
I       wp-content/cache
I       wp-content/themes/post_baidu_link_mimvp-blog.txt

查看指定目录

svn proplist -v [PATH]

# svn proplist -v wp-content/
Properties on 'wp-content':
  svn:ignore
    cache

删除忽略

svn status --no-ignore

 

到这里就结束了?

svn还有坑。。。

当你使用add的时候,千万不要使用

svn add *

这样会把忽略中的文件也添加到仓库,应该使用下面的命令行代替

svn add --force .

注意是点,千万别写成 *

如果在忽略之前,文件应经被add,应先删除

svn delete [path]

只从svn中忽略,而不删除文件

svn delete --keep-local [path]

 

 

参考推荐

SVN 提交部分文件和文件夹

SVN 代码正确提交方法

SVN 常用命令

Linux(Ubuntu)下保存SVN账户密码

CentOS 搭建 SVN Server

svn代码量统计工具

SVN 实用命令快速学习总结

git/svn reset/revert 回滚到服务器上的某一个版本