源文件中的 SVN 注释

发布于 2024-12-20 21:18:13 字数 45 浏览 0 评论 0 原文

是否有任何规定可以解析 svn 注释以及源文件中的日期...提前感谢您的想法

Is there any provision to parse svn comments along with date in source file...thank you in advance for your ideas

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

℡Ms空城旧梦 2024-12-27 21:18:13

阅读此处的其他答案和您的评论,它读起来就像您试图在提交期间修改源文件。这是积极劝阻的;请参阅 http://svnbook。 red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks 其中有一个红色大警告框,指出:

虽然钩子脚本几乎可以做任何事情,但它有一个维度
哪些钩子脚本作者应该表现出克制:不要修改
使用挂钩脚本提交事务
。虽然这可能很诱人
使用钩子脚本自动纠正错误、缺点或
正在提交的文件中存在策略违规行为,这样做可以
造成问题。 Subversion 保留某些位的客户端缓存
存储库数据,如果您以这种方式更改提交事务,
这些缓存变得难以察觉地陈旧。这种不一致可能会导致
令人惊讶和意想不到的行为。
而不是修改
交易,您应该简单地验证交易
预提交钩子,如果不符合期望则拒绝提交
要求。作为奖励,您的用户将了解谨慎的价值,
遵守法规的工作习惯。

然而,听起来你真正想看的是 svn:keywords。这些允许您在提交时将元数据嵌入到文件中。您唯一不能做的就是嵌入提交日志消息。

实际上,这意味着您需要将包含以下内容的行放入

$Id$

源文件中,然后针对该文件设置属性 svn:keywords 的值为 Id,然后SVN 将在提交时自动扩展它。还有许多其他特殊关键字;请参阅http://svnbook.red-bean。 com/en/1.5/svn.advanced.props.special.keywords.html 了解如何使用这些的所有详细信息。

Reading the other answers here and your comments, it reads like your trying to modify the source file during commit. This is actively discouraged; see http://svnbook.red-bean.com/en/1.5/svn.reposadmin.create.html#svn.reposadmin.create.hooks which has a big red warning box that states:

While hook scripts can do almost anything, there is one dimension in
which hook script authors should show restraint: do not modify a
commit transaction using hook scripts
. While it might be tempting to
use hook scripts to automatically correct errors, shortcomings, or
policy violations present in the files being committed, doing so can
cause problems. Subversion keeps client-side caches of certain bits of
repository data, and if you change a commit transaction in this way,
those caches become indetectably stale. This inconsistency can lead to
surprising and unexpected behavior.
Instead of modifying the
transaction, you should simply validate the transaction in the
pre-commit hook and reject the commit if it does not meet the desired
requirements. As a bonus, your users will learn the value of careful,
compliance-minded work habits.

However it sounds like what you really want to look at is svn:keywords. These allow you to embed metadata into the file at commit time. The only thing you can't do is embed the commit log message.

Effectively, this means you'd drop a line that contains this:

$Id$

into your source file, then set the property svn:keywords with a value of Id against that file, and SVN will auto-expand it on commit. There's a number of other special keywords as well; see http://svnbook.red-bean.com/en/1.5/svn.advanced.props.special.keywords.html for all the details on how to use these.

遗忘曾经 2024-12-27 21:18:13

您有不同的选项(awk、xml 解析器)来解析 svn 日志:请参阅“是否需要解析 svn 日志以查找自特定日期以来特定用户提交的文件?"

您有 这里是使用 --xml 选项的 Perl 脚本的示例(带有 svn info 但您可以将相同的想法应用于 svn log),以及 XML::Twig 库。

You have different options (awk, xml parser) to parse svn log: see "Ever need to parse the svn log for files committed by a particular user since a certain date?"

You have here an example of a Perl script using the --xml option (with svn info but you can apply the same idea to svn log), and the XML::Twig library.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文