【问题标题】:SVN keywords based on filetype基于文件类型的SVN关键字
【发布时间】:2021-01-05 19:56:10
【问题描述】:

我正在使用 subversion 来跟踪一组文件,并希望在工作流程中携带修订关键字。但是由于这种设置方式,我遇到了一些问题。

工作流程遵循以下格式:

  1. 文本文件(svn:keywords enabled)被导入到一个;
  2. 包含从文本文件导入的关键字的 XML 类型文件。然后该脚本运行并吐出另一个;
  3. Xml 类型文件,理想情况下包含 1 和 2 的修订信息。

文件修订要求为1

所以问题出现在文件 2 上,我显然不能启用 svn:keywords,因为这会在提交时覆盖文件 1 中的条目。

理想情况下,我希望根据文件类型使用不同的关键字,但这在 SVN 中似乎是不可能的。

我研究了提交前/提交后挂钩,但据我了解,不允许使用不同的关键字,这些都无济于事。

我想到了一个可能的解决方案,在文件 1 中输入一些对文件 2 唯一的关键字。然后,当我提交文件 2 时,我会编写一个小脚本来查找这些关键字并用类似的信息填充这些条目(即通过检查存储库修订号来预先占用修订号,添加一个并将其放入文件 2 然后提交)。但是,这需要外部脚本,这不是开发的问题,但如果可能的话,我想将其保留在 SVN 内部。

有没有办法单独使用 SVN 来实现这一点?

明确地说,我不想也不关心文件中包含文件 3 的修订号,只要文件 1 和 2 的修订存在。

感谢您的帮助!

【问题讨论】:

    标签: svn version-control revision


    【解决方案1】:

    恐怕,但您似乎做了一些错误的假设并且没有调试您的工作流程

    • 即使在旧的 pre-1.8 SVN 中(添加了“自定义关键字”,可以模拟每个文件类型的关键字),我无论如何不推荐使用今天扩展的关键字,粘贴到另一个版本化的对象将不会再次“扩展”
    • 使用 1.8+ SVN,您可以拥有一组名称不同但值相同的关键字%r,但在您的情况下不需要它

    详情:

    当您将关键字$Rev$ 添加到版本化文件中时(并执行正确的svn propset svn:keywords 或在配置中启用扩展),在提交/更新周期之后,您将在文件中看到类似$Rev: 12 $ 的WC 文件而不是只是关键字占位符,而这个字符串,粘贴在任何其他来源中,将“按原样”使用,而不是作为目标文件中的另一个关键字位置

    【讨论】:

    • 感谢懒獾的信息!据我所知,这确实澄清了一些事情。但是,我的特定情况(来自上面的工作流程)要求文件 2 的关键字必须嵌入文件 1 中。所以看来我可以为 2 种文件类型使用自定义关键字,并且同时拥有“标准”关键字对于文件 1 和文件 2 中的自定义关键字。我尝试使用 svn:auto-props 执行此操作,但似乎无法让自定义关键字适用于第二个文件(它们甚至没有出现在我检查文件具有哪些属性)。是的,我已经删除/添加了第二个文件以启用新的自动道具。
    【解决方案2】:

    所以我能够弄清楚这个特殊情况。在总体文件夹中,我为两种文件类型设置了 svn:auto-props,例如 *.txt = svn:keywords=修订作者 *.xml = svn:keywords=XMLRevision=%r XMLAuthor=%a 现在我在第一个文件中有两组关键字,其中第一组由 txt 文件的提交拾取,第二组由 xml 提交拾取。这两个集合也显示在第三个文件中。 注意:可以从 repo 浏览器设置 auto-props,但它似乎不起作用。检查总体文件夹并从工作副本中进行操作就可以了。 注意 2:显然还必须从 repo 中删除文件 2 (xml) 并再次添加它以获取新的自动道具。

    【讨论】:

      猜你喜欢
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多