我有一个不得更改的SVN配置文件。此配置文件定义了一些自动属性分配规则。这是配置文件的相关部分:
enable-auto-props = yes
[auto-props]
*.xlsm = svn:needs-lock=*
对于一个特定的存储库,我不想将属性svn:needs-lock
分配给*.xlsm
文件。为此,我想使用“存储库专用配置”。我将值为svn:auto-props
的属性*.xlsm = svn:mime-type=application/vnd.ms-excel
分配到存储库根目录。
根据this信息,只要我将文件添加到各自的存储库根目录及其子项,来自属性*.xlsm
的模式svn:auto-props
就会覆盖配置文件中的模式。
示例:
/ Repository root with the "svn:auto-props" property
assigned, as described above.
/file.xlsm The file I want to add to the repo.
添加文件file.xlsm
时,我希望该文件的属性为
svn:mime-type application/vnd.ms-excel
因为来自存储库根目录的svn:auto-props
会覆盖我的配置文件中的模式。但是,规则似乎已合并,file.xlsm
的结果属性为:
svn:mime-type application/vnd.ms-excel
svn:needs-lock *
我对覆盖的理解是用另一个规则代替一个规则,而不是同时应用这两个规则。如何获得预期的结果?
我正在运行Windows 10和SVN 1.9.5:
$ svn --version
svn, version 1.9.5 (r1770682)
compiled Nov 26 2016, 14:22:31 on x86-microsoft-windows
Copyright (C) 2016 The Apache Software Foundation.
更新:我已经安装了最新版本的SVN,但无法解决问题。
$ svn --version
svn, version 1.11.1 (r1850623)
compiled Jan 9 2019, 19:28:50 on x86-microsoft-windows
Copyright (C) 2019 The Apache Software Foundation.
答案 0 :(得分:1)
在这种情况下,我了解错误覆盖的行为。
不会覆盖模式,但是会覆盖属性。这意味着,如果我两次定义一个属性,那么覆盖将按属性值的定义而不是整个模式应用。
不幸的是,到目前为止,覆盖已被破坏。参见https://issues.apache.org/jira/browse/SVN-4699
此外,如果设置一次,则无法覆盖svn:needs-lock
。 svn:needs-lock
不带任何值,该属性代表自身。我只能通过定义新值来覆盖属性(我仍然可以为该属性分配任何值,但这不会改变行为)。
对于我来说,这意味着:我在SVN配置文件中定义了svn:needs-lock
。 svn:needs-lock
已启用。我无法覆盖此属性,以致该属性被删除。
我的问题没有解决方案。