【问题标题】:How to set a custom property in SVN (and get back all files having it set)?如何在 SVN 中设置自定义属性(并取回所有已设置的文件)?
【发布时间】:2012-12-06 07:34:31
【问题描述】:

我有一个 svn 存储库,正在寻找向文件添加自定义属性的可能性。

稍后我想从存储库中获取所有包含具有给定值的给定属性的文件。

例子:

我想设置一个名为label 的文件属性,其值为123_ABC

之后我想从存储库中取出所有标记为“123_ABC”的文件。

这有可能吗?

我正在使用 SVN 和 TortoiseSVN

【问题讨论】:

  • 这是第二次,当我看到 变态的使用方法 自定义 SVN 属性时。你们都是怎么来的?

标签: svn tortoisesvn


【解决方案1】:
  1. 您应该理解属性使用的相反方向暗示
  2. 您无法获取仅具有已知属性值的文件,忽略属性名称,因为同一文件的不同属性可以具有相同的值
  3. 对于您的任务(从属性到文件),您必须
    • 对存储库中的所有文件使用枚举
    • 申请svn propget label(或svn proplist)并验证结果

【讨论】:

    【解决方案2】:

    您是否正在为所有修订搜索具有此属性的所有文件?是的,有可能,但速度慢且不容易做到:

    $ svn log --diff $REPO
    

    这将对日志进行比较。当它看到属性差异时,它会打印出属性差异,就像 Subversion 在您比较文件时所做的那样。当然,这将区分日志中的所有文件,这非常非常慢并产生大量输出。您可以使用grep 或类似的方式来查找版本。

    不过,如果你这样做,你还不如跑下楼去星巴克,一边等一边喝杯咖啡。哎呀,沿着街区跑到那家不错的咖啡店,在你等待的时候喝一杯拿铁。更好的是,飞到意大利,跑到海岸,在等待的时候在咖啡馆里喝一杯拿铁。这需要一段时间。

    如果您发现这会阻止您进行这种练习,那很好!


    或者,您只是在当前工作目录中的特定文件上搜索此属性?如果是这样,事情还没有那么糟糕:

    $ svn plist --depth=infinity --verbose .
    

    这将打印出工作目录中所有文件的所有属性及其值。这将需要一段时间,但不会很长。你会很幸运能在它完成之前下楼到星巴克。同样,我会将其发送到less,然后搜索我正在寻找的属性。由于您使用的是 Windows,因此请保存此命令生成的输出,然后使用 Notepad++ 之类的工具来搜索该文件。

    【讨论】:

    • svn proplistsvn pl(对于真正缩写命令),我认为
    • 这三个都有效。我知道我可以做到svn proplistsvn plist,但没有意识到svn pl。每天学习一些东西。
    猜你喜欢
    • 2011-03-24
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    相关资源
    最近更新 更多