首先,感谢您花时间阅读本文并可能发表评论。
总结
在文件上设置自定义 SVN 属性并提交后,我无法使用设置了各种选项的“svn log”命令在提交后显示该属性。我已经关注了这个example从 SVN 红皮书无济于事(可搜索性子部分)。
我的环境
服务器:我使用的是运行在 64 位 Windows Server 2008 R2 上的 32 位 SubVersion Server 版本 1.6.15
客户端:运行在 32 位 Windows XP Pro SP3 上的 TortoiseSVN 1.6.16。
该存储库是一个测试存储库,没有任何可用的 Hook 。
我的场景
在名为 test.txt 的文件上设置名为 active-projects 的自定义属性并将更改提交到存储库后,我尝试执行以下操作:
svn log --with-all-revprops --xml [url_to_test.txt]
--with-all-revprops 的使用本应向我显示我的自定义 属性 但遗憾的是,以上内容以 XML 格式返回了有效信息,但没有包括 revprops 元素和一个名为 active-projects 的 property 及其各自的值。
尝试在包含 test.txt 的本地目录中执行以下命令会产生与上述相同的结果:
svn log --with-all-revprops --xml test.txt
有趣的是,我可以通过我的存储库浏览器在该 URL 上看到该文件的上述属性。如果我在包含 test.txt 的本地目录中执行以下命令,则会按预期返回 property 的值:
svn propget active-projects test.txt
结论
所以,关于为什么我无法通过 svn log 命令使用 URL 或本地路径?可能是我误解了这个概念,或者遗漏了一些重要的服务器配置。感谢您的见解。
最佳答案
您混淆了修订属性和常规属性。修订属性是为整个修订设置的,并且仅适用于该修订(它们是未版本化的),常规属性是按项目(目录/文件)设置的并且是版本化的(即如果您更改它们,它们将仍然存在于该项目的早期修订中;它们可以被区分,等等)。
您设置了项目属性,而 svn log --with-all-revprops
返回修订属性,而不是项目属性。
这是来自 svn propset --help
的更多信息:
$svn propset --help
propset (pset, ps): Set the value of a property on files, dirs, or revisions.
usage: 1. propset PROPNAME PROPVAL PATH...
2. propset PROPNAME --revprop -r REV PROPVAL [TARGET]
1. Changes a versioned file or directory property in a working copy.
2. Changes an unversioned property on a repository revision.
(TARGET only determines which repository to access.)
希望这能消除混淆。
关于xml - 关于使用 : svn log --with-all-revprops --xml [URL] 显示属性的不一致行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10015528/