【问题标题】:How to check with svn if the trunk have just been tagged如果树干刚刚被标记,如何使用 svn 检查
【发布时间】:2016-08-11 13:02:01
【问题描述】:

我在shellscript中设置了一个自动编译过程,我只是想弄清楚主干是否没有收到上次标记的任何提交...有没有办法用简单 em> svn 命令行,无需读取和比较历史,“脚本”还是手动?

【问题讨论】:

    标签: bash svn


    【解决方案1】:

    在 SVN 中,标签既不是修订版的别名,也不是不可变的。相反,它只是一个副本!可以在创建标签后对其进行修改。所以唯一的方法是比较两条路径的修订号。 This 问题展示了如何获取它们。

    【讨论】:

    • 谢谢,正是我想要的。
    【解决方案2】:

    感谢@ceving,这是一个很好的示例,可以检查项目树是否是最新的标签。

    假设项目设置如下:

    rootdev/prj1/
    rootdev/prj1/trunk
    rootdev/prj1/tags
    

    脚本:

    #!/bin/bash
    tabs 30 # be fancy
    
    function last-rev ()
    {
        svn log "$1" -r HEAD:1 -l 1 -q | grep -ao '^r\S*'
    }
    
    find rootdev -ipath "*tags" |
    while read tags
    do
        module="$(dirname $tags)"
        modulename="$(basename $module)"
        lasttag="$(ls -1 $tags | tail -n 1)"
        lastrev=$(last-rev "$module")
        lasttagrev=$(last-rev "$tags/$lasttag")
        echo -ne "$modulename\t: $lasttag\t$lasttagrev/$lastrev "
        [[ "$lastrev" == "$lasttagrev" ]] && echo "[UPTODATE]" || echo "[OUTDATED]"
    done
    

    输出:

    DateUtils                     : 1.0.0                       r116/r116 [UPTODATE]
    ThisUtils                     : 1.0.0                       r116/r116 [UPTODATE]
    SomeUtils                     : 1.2.1                       r125/r125 [UPTODATE]
    ThatUtils                     : 1.0.1                       r101/r101 [UPTODATE]
    NotUtils                      : 1.0.0                       r101/r128 [OUTDATED]
    WhyUtils                      : 1.2.0                       r130/r130 [UPTODATE]
    

    【讨论】:

      猜你喜欢
      • 2010-11-20
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2018-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多