你如何在SVN文件/文件夹属性的历史?(How do you get the history of

2019-06-27 22:37发布

什么是确定何时财产上的文件或文件夹设置最简单的方法? 基本上,我在寻找“SVN指责”,关于性工作的等效。

日志子命令使一个获得一个文件或文件夹,当属性已被修改,包括的完整历史。 但是,它不是一个属性修改和其他类型的修改,当然这也意味着它不会告诉你有关特定属性的历史什么区别。

status命令属性和其他类型的修改的区分,但只适用于工作副本。

怪,本身只支持文件,而不是目录,它的工作原理上的内容,而不是性能。

想法?

Answer 1:

我能想到的最好的是编写使用了svn propget子命令转储当前属性值到一个文本文件,一个脚本或应用程序,然后通过修改反倾销财产到另一个文本文件,并比较两个走回来。 当它检测到变化,它打印出的版本号与谁犯它的用户一起(实际上是进行了更改后的版本号)。

这里有一个例子命令转储的svn:在修订80忽略字典目录属性:

svn propget -r 80 svn:ignore dictionary


Answer 2:

获得当一个给定文件夹的属性已经改变列表的一种方法是:

svn log -v . |grep "   M /trunk/datacenter$" -B2

这给下面的输出:

r963 | someuser | 2013-08-26 20:32:37 +0200 (Mon, 26 Aug 2013) | 4 lines
Changed paths:
   M /trunk/datacenter
--
r908 | someotheruser | 2013-08-15 12:15:03 +0200 (Thu, 15 Aug 2013) | 1 line
Changed paths:
   M /trunk/datacenter
--
r413 | someuser | 2013-04-26 09:02:08 +0200 (Fri, 26 Apr 2013) | 1 line
Changed paths:
   M /trunk/datacenter

然后你可以看一下各个版本,看看有什么变化:

$ svn diff -c963

在底部:

...

Property changes on: .
___________________________________________________________________
Modified: svn:ignore
## -22,3 +22,5 ##

 .idea
 .classpath
+
+dev-config.groovy

缺点:

  • 没办法,指定你哪个属性感兴趣
  • 乏味

注:不知道-B2是在所有的情况下足够了,行了“M /中继/数据中心”可能不是第一线



Answer 3:

#!/bin/bash
# This is not a great solution, but it works for gathering the data

CURRENT_REVISION=95300
OLDEST_REVISION=93000
URL="file:///home/svn/repo/project/dir/target.c"
PROPERTY_NAME="svn:externals"

for i in `seq $OLDEST_REVISION $CURRENT_REVISION`
do
  svn -r$i propget "$PROPERTY_NAME" "$URL" | sed -e "s/^/$i\t/"
done


Answer 4:

我的SVN的扩展工具箱现已svn-prop-annotate和(作为专业化) svn-mergeinfo-annotate的命令。 他们表现不佳(因为它们运行svn logsvn diff每个潜在的变化),并且可能仍有一些依赖性和perculiarities我特别的工作作风,但尝试一下,如果你有足够的绝望。

下面是一些示例输出:

$ svn-mergeinfo-annotate --author karkat -l 5
67645 ingo.karka    Merged /branches/1.50/foobar:r67488
67423 ingo.karka    Merged /branches/1.50/foobar:r67315,67331
67339 ingo.karka    Merged /branches/1.50/foobar:r67279
53320 ingo.karka    Merged /branches/foo-1.01:r53317


文章来源: How do you get the history of a file/folder property in SVN?