【问题标题】:SVN revision number of latest change for a folder containing externals包含外部文件的文件夹的最新更改的 SVN 修订号
【发布时间】:2014-02-19 08:20:34
【问题描述】:

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

svn info | grep "Last Changed Rev"

返回类似这样的东西

Last Changed Rev: 3303

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

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

【问题讨论】:

    标签: svn


    【解决方案1】:

    好的,我想出了一个解决方案。 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 脚本可以获得第三列的最大值,这是该文件的最后一次更改。

    {
    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}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-26
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 2010-10-09
      • 2012-06-12
      相关资源
      最近更新 更多