2009-08-05 106 views
46

我并不是Subversion的新手,但是我一直使用Tortoise并且从未使用过commadn行。我的问题是,如何忽略来自整个源的* .o等所有文件,而不仅仅是根目录。在颠覆中递归忽略整个源树中的文件

举例来说,如果我有以下文件: /myfile.o /folder1/myfile2.o /folder1/folder1.1/myfile3.o /folder2/myfile4.o

如果SVN propedit svn:忽略“。”在根目录中添加* .o,它将忽略myfile.o,但不会忽略/folder1/myfile2.o,/folder1/folder1.1/myfile3.o,/folder2/myfile4.o。有没有办法为整个项目添加* .o in(我无法完成整个存储库,我知道这是可以完成的,因为这个项目与许多其他项目在一个存储库中)?

请让我知道,如果我需要澄清。谢谢!

回答

63

编辑

下面提供的原始答案之前其引入的方式来设置默认的储存库级忽略(称为svn:global-ignores),而不重写/更换上的根目录的属性svn:ignore颠覆V1.8给定和每一个子目录。由于1.8,达到你想要什么,最好的方法是调用下面的命令(归功于TManhente):

svn propset svn:global-ignores '*.o' . 

在早期版本(和更高版本),你仍然可以使用指定的方法下面的原始答案;但是,请注意,这里假设您可以替换/覆盖每个子目录中的svn:ignore属性...对于小型/新式存储库而言,这可能没有问题,但如果您有大/旧其中一些子目录可能具有您不希望覆盖的独立svn:ignore属性。

原来的答复

您可以使用 “-R” 或 “使用svn propset命令”, “ - 递归” 选项,在下面的命令:

 
svn propset svn:ignore '*.o' . --recursive 

更多信息

对于这两种情况,您可以使用以下命令获取有关svn propset的更多信息:

 
svn help propset 
+0

谢谢,这真是棒极了!我仍然掌握着他们的文档。正如我所说的那样,直到现在,我已经完全使用乌龟,这给你很好的对话框和解释:)。 – alanquillin 2009-08-05 21:35:12

+1

你也--force'的svn propset命令的svn:忽略“* .PDB * .db的” C:\门户\ --recursive --force` – 2011-05-12 20:05:17

+43

接受的答案将消灭所有其他的svn:如果你有忽略的设置他们。你然后可以想http://stackoverflow.com/questions/3086418/svn-revert-all-properties-changes – 2012-02-22 14:48:50

38

只是一个更新:引进颠覆1.8.0继承的属性库口述配置(自动道具和忽略),也可在这种情况下使用。

您可以在根路径中设置新的svn:global-ignores属性。它将“只影响植根于该属性路径的子树”。

这个新的属性设置就像svn:ignore

svn propset svn:global-ignores '*.o' . 

的更多信息,可在Subversion 1.8.0 Release Notes

3

正如评论指出通过@ hackmaster.a,在接受的答案给出的例子有消灭所有以前svn:ignore设置的副作用。使用propedit而不是propset也不工作。

添加多个文件,递归的是把自己的名字被新线在svn:ignore属性设置分隔的列表与svn propset svn:ignore "[LIST]" .

例如正确的做法:

svn propset svn:ignore -R "*.pkl 
    > *.class 
    > Thumbs.db 
    > data.tmp" . 

当然的>的只是shell提示符。

此命令将递归更改.当前目录及其每个子文件夹的svn:ignore属性。