【问题标题】:Accessing the latest label in perforce through Linux通过 Linux 访问 perforce 中的最新标签
【发布时间】:2012-06-29 22:56:08
【问题描述】:

当我在 Linux 中输入以下命令时,我会得到一个标签列表:

p4 labels -e '< pattern-for-required-label >'

但我只想获取列表中的最新标签。如果有任何命令可以让我从长列表中选择最新的标签?

【问题讨论】:

    标签: linux unix label perforce p4v


    【解决方案1】:

    p4 labels -e ''|head(或“|tail”,取决于您想查看列表的顶部还是底部)。

    【讨论】:

    • 那没有用,即使我使用head或tail,我仍然会得到一堆标签作为输出
    • 好吧,看看"man" page,我想问一下:p4 labels|head(没有“-e”)有用吗? p4 labels|tail -25 是否只显示最后 25 行?如果不是,p4 labels &gt; /tmp/tmp.txt 是否不显示任何内容,而是重定向到“/tmp/tmp.txt”???
    • @paulsm4 你能给出上面的命令os independent。获取最新标签的通用命令是什么?我试过p4 labels -E "pattern" -m 1,但这给出了最旧的标签
    • 似乎p4 labels 返回按字母顺序而不是按日期排序的标签。似乎没有根据documentation 按日期排序的选项。你最好的选择是@Garrett Waiss 的回答:p4 labels &lt;branch&gt; | sort -k3
    【解决方案2】:

    您可以使用sort 命令执行此操作:

    p4 labels &lt;branch&gt; | sort -k3

    第三列是日期。这已经困扰了我好几个月,终于有一个惊喜时刻了。

    【讨论】:

      【解决方案3】:

      要限制返回的标签数量,您可以使用-m 选项:

      p4 labels -m 1 -e 'your pattern'
      

      这只会返回一个标签。另外值得注意的是,许多 p4 命令将采用-m 参数来控制返回的结果数。还有一件事:如果您希望/需要,-E 版本的模式参数使过滤模式不区分大小写。

      参考:http://www.perforce.com/perforce/doc.current/manuals/cmdref/labels.html

      如果 p4 标签命令不能满足您的需求,我建议您查看 perforce 提供的 PerlPythonRuby API - 这些都是工作人员支持的库Perforce,并且非常有能力满足您的自定义代码需求。

      http://www.perforce.com/product/components/apis

      【讨论】:

      • 有些标签是测试用例。我不能真正抓住列表中我需要的那个。知道是否可以通过 git 完成吗?
      • 类似 git describe --tags
      • 您真正想要完成什么 - 似乎标签方法可能不是正确的方法?实际上,标签的最佳用途是将一组文件放在一个或多个更改列表中。可能有更好的方法来实现您想要做的事情。
      • 当您说“最新”标签时,您是指标签列表中的最新标签,还是要更新/访问的最新标签? -m1 选项为您提供集合中与 -e 过滤器匹配的第一个标签,但这不一定是最近使用的标签。 (据我所知,没有办法让 Perforce 按日期对标签列表进行排序。)
      【解决方案4】:

      补充@Garrett Waiss 和@Zulu 的回答:

      您还可以使用-t 开关告诉p4 labels 输出时间,然后按日期和时间排序。通过tail 传递此消息以获得您问题中的最新结果:

      p4 labels -t <expression> | sort -k3,3 -k4,4 | tail -n1

      另请注意:

      • 某些 p4 客户端版本希望您在标签表达式之前指定 -e
      • 如果您使用标签命名方案,例如 mylabel_001、mylabel_002...,那么您希望表达式为 mylabel_*,即: p4 labels -t -e mylabel_* | sort -k3,3 -k4,4 | tail -n1

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-28
        • 2022-07-31
        • 1970-01-01
        相关资源
        最近更新 更多