首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何抛弃格瑞特的整个话题?

如何抛弃格瑞特的整个话题?
EN

Stack Overflow用户
提问于 2017-08-09 16:07:35
回答 2查看 2.1K关注 0票数 2

因此,问题的长短在于,在对代码评审原则和用户属性的狂热遵守中.

我推动了大约834次从上游分支提交到项目的gerrit服务器。

从那时起,我就被告知我应该(合理地)首先在gerrit上推一个压缩的提交测试,然后将它们指向我的回购以进行合并……

幸运的是,我在上传时用一个主题标记了提交(为了便于测试.-)

我现在怎么能彻底放弃这个该死的话题呢?(用压缩提交替换)

也许应该有某种终端机指令?我的格瑞特-福很弱,我没有任何特权访问服务器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-09 16:50:31

AFAIK,没有现成的方法来实现这一点。然而,gerrit是一个很棒的工具,您可以通过编写自定义脚本来解决这个问题。

对不起,我太懒了,无法让您准备好使用解决方案,但我的脚本将这样做:

  1. 准备环境 别名gerrit="ssh -p 29418 gerrit.yourdomain.com gerrit“
  2. 列出所有提交的主题: gerrit查询主题:
  3. 条形Change-Id's
  4. 一个接一个地放弃: 格瑞特评论--放弃

更新

感谢Marcelo Avila de Oliveira,您现在拥有了可以使用的脚本:

代码语言:javascript
运行
复制
#!/bin/bash

alias gerrit="ssh -p 29418 gerrit.yourdomain.com gerrit"

for c in $(gerrit query topic:trololo | grep "сhange" | cut -d ' ' -f 2);
    do gerrit review $c --abandon;
done

用您需要的任何东西替换trololo,或者修改脚本以接受参数。

票数 3
EN

Stack Overflow用户

发布于 2021-07-03 01:30:47

注释因为在答案中缺少代码意味着我不理解lanyusea用原来的答案解决了我的1/2的问题。不幸的是,由于缺乏格式,我无法判断:( .但我要增加一些新的..。我发誓

我发现了一些问题(我们刚刚更新了gerrit .所以这可能只是一个暂时的错误)

  • 提交-Id和更改号都不有效。
  • 空格--消息不起作用

因此,改变:

  • 添加查询-当前修补程序集
  • grep用于“修订”
  • 插入“:”而不是空间(不确定它是否需要.我只是觉得与领先的空格)
  • 转义消息中的所有空格(我需要记住为这个错误提交一个bug )
代码语言:javascript
运行
复制
#!/bin/bash

alias gerrit="ssh -p 29418 gerrit.yourdomain.com gerrit"

for id in $(gerrit query topic:yolo --current-patch-set | grep "revision" | cut -d ':' -f 2); do
    gerrit review --abandon $id -m "Abandoning\ for\ reasons"
done

所有的功劳都归功于安德烈日和这条线上的每一个人

变成了一个可重用的函数。它处理转义,给出它所做的事情的反馈,并且不受通常的查询限制地运行:

代码语言:javascript
运行
复制
#!/bin/bash

alias gerrit="ssh -p 29418 gerrit.yourdomain.com gerrit"

gerrit_abandon_patches() {(
    set -e

    local message="$1"
    shift 1 # remove message

    local id=
    local commit=

    #Quote spaces in message to work around gerrit bug
    message=${message//[ ]/\\ }
    

    IFS=$'\n' # We don't need to scope because we are in a closure
    
    for commit in $(gerrit query "$@" --current-patch-set --no-limit --format JSON | grep -e '"id":' ); do
        commit=$( echo "$commit" | sed -e 's/["{}]//g' -e 's/,/\n/g' )
        id=$(echo "$commit" | grep -e 'revision' | cut -d ':' -f 2 )

        echo "Abandoning: $id"
        echo "$commit" | grep \
            -e url \
            -e id \
            -e revision \
            -e commitMessage
        echo

        gerrit review --abandon $id -m "$message"
    done

)}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45595704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档