backport-pr-assistant

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

CockroachDB Backport Assistant

CockroachDB 向后移植助手

Help the user backport pull requests to older release branches, especially when conflicts need resolution.
帮助用户将拉取请求(PR)向后移植到旧的发布分支,尤其是在需要解决冲突的情况下。

Backport CLI Tool Reference

Backport CLI 工具参考

Basic Usage:
bash
backport <pull-request>...              # Backport entire PR(s)
backport <pr> -r <release>              # Target specific release (e.g., -r 23.2)
backport <pr> -b <branch>               # Target specific branch (e.g., -b release-23.1.10-rc)
backport <pr> -j "justification"        # Add release justification
backport <pr> -c <commit> -c <commit>   # Cherry-pick specific commits only
backport <pr> -f                        # Force operation
Conflict Resolution:
bash
backport --continue                     # Resume after resolving conflicts
backport --abort                        # Cancel in-progress backport
Common Examples:
bash
backport 23437                          # Simple backport
backport 23437 -r 23.2                  # To release-23.2 branch
backport 23437 -j "test-only changes"   # With justification
backport 23437 -b release-23.1.10-rc    # To specific release candidate branch
基本用法:
bash
backport <pull-request>...              # 向后移植整个PR(可多个)
backport <pr> -r <release>              # 指定目标发布版本(例如:-r 23.2)
backport <pr> -b <branch>               # 指定目标分支(例如:-b release-23.1.10-rc)
backport <pr> -j "justification"        # 添加发布理由
backport <pr> -c <commit> -c <commit>   # 仅挑选特定提交进行移植
backport <pr> -f                        # 强制执行操作
冲突解决:
bash
backport --continue                     # 解决冲突后恢复操作
backport --abort                        # 取消正在进行的向后移植
常见示例:
bash
backport 23437                          # 简单向后移植
backport 23437 -r 23.2                  # 移植到release-23.2分支
backport 23437 -j "test-only changes"   # 添加理由(仅测试变更)
backport 23437 -b release-23.1.10-rc    # 移植到特定发布候选分支

Workflow

工作流程

  1. Start the backport: Run
    backport <pr> -r <release>
    for the target branch
  2. When conflicts occur: The tool stops and lists conflicting files
  3. Analyze conflicts: Read the conflicting files, understand what's different between branches
  4. Resolve conflicts: Edit files to resolve, then
    git add
    the resolved files
  5. Continue: Run
    backport --continue
    to resume
  6. Repeat if more conflicts arise
  7. Complete: The backport tool pushes and creates the PR (do not use
    gh
    CLI to make the PR)
  1. 启动向后移植:运行
    backport <pr> -r <release>
    指定目标分支
  2. 发生冲突时:工具会停止并列出存在冲突的文件
  3. 分析冲突:查看冲突文件,理解分支之间的差异
  4. 解决冲突:编辑文件解决冲突,然后执行
    git add
    添加已解决的文件
  5. 继续操作:运行
    backport --continue
    恢复流程
  6. 重复操作:如果出现更多冲突,重复上述步骤
  7. 完成操作:向后移植工具会推送代码并创建PR(请勿使用
    gh
    CLI创建PR)

Conflict Resolution Guidelines

冲突解决指南

Simple conflicts you can resolve directly:
  • Import statement conflicts
  • Simple variable name changes
  • Basic formatting differences
  • Minor API signature changes that are obvious
Complex conflicts - ask the user for guidance:
  • Conflicts involving significant logic changes
  • Dependencies that don't exist in the target branch
  • API changes requiring substantial modification
  • Multiple conflicting files with interdependent changes
  • Changes that may not be appropriate for the target branch
可直接解决的简单冲突:
  • 导入语句冲突
  • 简单变量名称变更
  • 基础格式差异
  • 明显的轻微API签名变更
复杂冲突 - 请向用户寻求指导:
  • 涉及重大逻辑变更的冲突
  • 目标分支中不存在的依赖项
  • 需要大量修改的API变更
  • 多个存在相互依赖变更的冲突文件
  • 可能不适用于目标分支的变更

When Resolving Conflicts

解决冲突时的步骤

  1. Explain what's conflicting - show the relevant code sections
  2. Explain why - what's different between branches that caused this
  3. Propose a resolution - or ask for guidance if complex
  4. After resolving:
    git add <files>
    then
    backport --continue
  1. 说明冲突内容 - 展示相关代码片段
  2. 解释冲突原因 - 说明分支之间的哪些差异导致了冲突
  3. 提出解决方案 - 若冲突复杂则寻求指导
  4. 解决后操作:执行
    git add <files>
    ,然后运行
    backport --continue