2

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

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

例子:

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

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

这有可能吗?

我正在使用 SVN 和 TortoiseSVN

4

2 回答 2

0
  1. 你应该明白,属性使用的相反方向隐含
  2. 您无法获取仅具有已知属性值的文件,而忽略属性名称,因为同一文件的不同属性可以具有相同的值
  3. 对于您的任务(从属性到文件),您必须
    • 对存储库中的所有文件使用枚举
    • 应用svn propget label(或svn proplist)并验证结果
于 2012-12-06T11:39:16.920 回答
0

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

$ svn log --diff $REPO

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

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

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


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

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

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

于 2012-12-06T16:50:43.923 回答