Svn 在subversion中递归忽略整个源代码树中的文件
我对颠覆并不陌生,但到目前为止,我一直使用乌龟,从未使用过通信线路。我的问题是,我如何忽略来自整个源而不仅仅是根的所有文件,如*.o 例如,如果我有以下文件: /myfile.o /folder1/myfile2.o /folder1/folder1.1/myfile3.o /folder2/myfile4.o 如果svn在根目录中propedit svn:ignore“.”并添加*.o,它将忽略myfile.o,但不会忽略/folder1/myfile2.o、/folder1/folder1.1/myfile3.o、/folder2/myfile4.o。是否有一种方法可以为整个项目添加*.o(我不能为整个存储库添加,我知道这是可以做到的,因为这个项目与许多其他项目都在存储库中) 如果我需要澄清,请告诉我。谢谢 编辑 下面提供的原始答案是在Subversion v1.8之前给出的,它引入了一种设置默认存储库级别ignore(称为Svn 在subversion中递归忽略整个源代码树中的文件,svn,tortoisesvn,version-control,Svn,Tortoisesvn,Version Control,我对颠覆并不陌生,但到目前为止,我一直使用乌龟,从未使用过通信线路。我的问题是,我如何忽略来自整个源而不仅仅是根的所有文件,如*.o 例如,如果我有以下文件: /myfile.o /folder1/myfile2.o /folder1/folder1.1/myfile3.o /folder2/myfile4.o 如果svn在根目录中propedit svn:ignore“.”并添加*.o,它将忽略myfile.o,但不会忽略/folder1/myfile2.o、/folder1/folder1.
svn:global ignores
)的方法,而无需覆盖/替换根目录和每个子目录上的svn:ignore
属性。从1.8开始,实现所需功能的最佳方法是调用以下命令(归功于tmanhante):
在早期版本(以及更高版本)中,您仍然可以使用下面原始答案中指出的方法;但是,请注意,这假设您可以替换/覆盖每个子目录上的svn:ignore
属性。。。对于小型/新建的存储库来说,这可能很好,但如果您有一个大型/旧的存储库,其中一些子目录可能具有独立的svn:ignore
属性,而您不希望覆盖这些属性,那么这可能不是您想要的
原始答案
您可以将“-R”或“-recursive”选项与“svn propset”一起使用,如下命令所示:
svn propset svn:ignore '*.o' . --recursive
svn propset svn:忽略“*.o”--递归的
更多信息
对于这两种情况,可以使用以下命令了解有关svn propset的更多信息:
svn help propset
svn帮助道具集
只是一个更新:Subversion 1.8.0引入了继承属性和存储库指定的配置(用于自动道具和忽略),也可以在本例中使用 您可以在根路径中设置新的
svn:global ignores
属性。它将“仅影响以属性设置路径为根的子树”
此新属性的设置类似于svn:ignore
:
svn propset svn:global-ignores '*.o' .
如@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
属性。谢谢,效果很好!我仍然掌握着他们文档的窍门。正如我所说的,到目前为止,我只使用了乌龟,这为您提供了很好的对话框和解释:)。您还有--forcesvn propset svn:ignore“*.pdb*.db”c:\portal\--recursive--force
如果您有其他svn:ignore设置,则接受的答案将清除它们。你可能想知道我想附和hackmaster的警告并感谢他提供的链接解决方案。仅供参考,我选择了位于~/.subversion/config中的全局配置解决方案。hackmaster的注释应该固定在这个线程的顶部。“可接受的答案”,其中包含对存储库(至少部分存储库)进行包装的说明,这不是一件好事;)使用1.7.4挥拍出所有svn:ignore我真的想知道如何使用自动道具设置它?我已经添加了bin
debug
obj
到svn:global ignores
,但之后,当我svn-propget svn:global ignores
时,它只返回obj
(最后一个),如何忽略多个文件/文件夹@卢克:原因是您多次调用svnpropset
命令。每次调用propset
时,它都会用传递的新值替换属性的先前值。您需要做的是在单个propset
调用中添加所有忽略规则,或者使用而不是propset
。有关详细信息,请查看该命令的文档。
svn propset svn:ignore -R "*.pkl
> *.class
> Thumbs.db
> data.tmp" .