6

对于我们的项目,我们有一些 svn 属性应该应用于 repo 中的所有文件夹。例如bugtraq:xxx, 和svn:ignore属性。

并且在创建新文件夹并将其添加到存储库时,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

4

3 回答 3

7

Subversion 1.8 客户端的新功能

Subversion 1.8 客户端中有两个新的标准属性:

  • svn:global-ignores
  • svn:auto-props

这些属性是可继承的。也就是说,当您在父目录上设置这些属性之一时,它也适用于所有子目录。这允许您创建一种设置自动属性和项目范围全局忽略的新方法。

这将解决您的问题。但是,您必须确保每个人都使用最新版本的 TortoiseSVN 才能利用这一点。

我还建议您使用我的pre-commit 钩子,它可以强制使用文件和目录的属性。除非在提交中添加或修改的所有文件上正确设置了属性,否则此挂钩将拒绝评论。

于 2014-05-08T18:37:21.830 回答
3

在 Subversion 中,属性永远不会被继承。您可以在设置属性时单击“递归应用属性”复选框,TortoiseSVN 会自动在每个降级文件夹上制作属性的副本,但这只是您的 Subversion 客户端提供的节省时间的功能。

bugtraq:属性族是TortoiseSVN 和 Subclipse 开发团队实现的自定义功能。当 TortoiseSVN 在你的工作副本的根文件夹中找到给定的标签时,它就会使用 bugtracker 功能——不需要在每个文件夹上都有该属性。

情况并非如此,svn:ignore因为它是一个标准的 Subversion 属性,这就是它的设计方式。

于 2013-02-28T15:51:17.490 回答
2

TortoiseSVN 可能正在使用称为auto props的 SVN 功能。你也可以在 TortoiseSVN 文档中看到它们因为也有特殊tsvn:autoprops的。

于 2013-02-28T15:29:16.427 回答