包含外部的文件夹的最新更改的SVN修订版号

时间:2014-02-19 08:20:35

标签: svn

对于脚本,我需要获取版本化文件夹(而不是整个仓库)中最新更改的修订版号,以确定当前版本是否已经过测试。我用:

svn info | grep "Last Changed Rev"

返回类似这样的内容

Last Changed Rev: 3303

我可以轻松地将此结果与保存的值进行比较。

我想对包含外部的文件夹执行此操作。我的想法是使用上面的svn info -Rgrepsort输出并检查输出的最后一行。但是,svn info -R仅包含当前仓库中的文件和文件夹,不包括外部!有没有办法让它包括外部?或者我自己(使用脚本)浏览文件夹层次结构?

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。 svn status也可以处理外部因素。

$ svn status -v

              7753     5689 user1        D:\checkout\file1.txt
?                                        D:\checkout\unversioned_file1.txt
?                                        D:\checkout\unversioned_file2.txt
              7753     6693 user2        D:\checkout\file2.txt
M             7753     5683 user2        D:\checkout\file3.txt
              7753     5683 user1        D:\checkout\file4.txt

awk脚本可以获得第3列的最大值,这是该文件的最后一次更改。

{
revnum = ($1 ~ /[0-9]+/) ? $2 : $3    # $1 is number => get $2, else $3
if(revnum ~ /[0-9]+/)                 # a number? (ignore text-only lines)
  {if(revnum>max) max=revnum}         # look for maximum
}
END{print max}