对于我们的项目,我们有一些svn属性应该应用于repo中的所有文件夹。例如bugtraq:xxx
和svn:ignore
属性。
在创建和添加新文件夹到repo时,bugtraq:xxx
属性将应用于新文件夹,但svn:ignore
不是......
为什么?
修改 所以我要添加一个树例子:
[Root]
|-- Admin [no props]
|-- Software [no props]
|-- MySoftwareProject [B (=Bugtraq)]
|-- tags [B]
|-- branches [B]
|-- trunk [B]
|-- Folder_A [B & I (=Ignore)]
|-- Folder_B [B & I]
|-- New_Folder_C [B]
好的,所以当我创建&添加New_Folder_C
它会自动获取Bugtraq
但不会svn:ignore
答案 0 :(得分:7)
Subversion 1.8客户端有两个新的标准属性:
svn:global-ignores
svn:auto-props
这些属性可继承。也就是说,当您在父目录上设置其中一个属性时,它也适用于所有子目录。这允许您创建一种设置自动属性和项目范围全局忽略的新方法。
这将解决您的问题。但是,您必须确保每个人都使用最新版本的TortoiseSVN才能利用这一点。
我还建议您使用我的pre-commit hook,它可以强制使用文件和目录的属性。除非在提交中添加或修改的所有文件上正确设置了属性,否则此挂钩将拒绝注释。
答案 1 :(得分:3)
在Subversion中,属性永远不会被继承。您可以在设置属性时单击“递归应用属性”复选框,TortoiseSVN将自动在每个降序文件夹上复制属性,但这只是Subversion客户端提供的省时功能。
bugtraq:
属性系列是custom feature implemented by the TortoiseSVN and Subclipse development teams。发生的事情是TortoiseSVN一旦在工作副本的根文件夹中找到给定的标签就会使用bugtracker功能 - 不需要在每个文件夹上都有该属性。
svn:ignore
不是这种情况,因为它是一个标准的Subversion属性,而且它是如何设计的。
答案 2 :(得分:2)
TortoiseSVN可能正在使用名为auto props的SVN功能。你也可以在TortoiseSVN文档中看到它们here,因为还有特殊的tsvn:autoprops
。