jj-hunk 是面向 Jujutsu(jj)版本控制系统的命令行工具,用于以编程方式选择代码块(hunk),无需交互式提示即可拆分、提交或压缩指定 hunk,适合做部分提交或选择性提交。
主要能力:通过 jj-hunk list 列出可用 hunk,支持 --format text 输出人类可读结果、--files 仅显示文件与 hunk 数量;通过 --spec-file 指定 YAML 规格文件,执行 split(拆分)、commit(提交指定文件、其余保留未提交)、squash(压缩进父修订)等操作。可用 -r <rev> 指定任意修订,默认 @ 为工作副本;规格可从标准输入读取(用 -)。
规格格式:YAML 中按文件配置 hunks(按 0 起始索引或稳定 id 选择)、ids(sha256 生成的稳定 id)、action: keep/reset(保留或丢弃文件全部改动),default 指定未列出文件的默认动作。可用 jj-hunk list --spec-template 生成基于 id 的起始规格。
使用方式示例:jj-hunk list --format text 查看 hunk;编写规格后执行 jj-hunk split --spec-file /tmp/spec.yaml "feat: add feature A"、jj-hunk commit --spec-file /tmp/commit-spec.yaml "fix: handle edge case"、jj-hunk squash --spec-file /tmp/squash-spec.yaml。
提示:id 基于 sha256、跨运行稳定,索引不稳定,建议优先用 id;操作后验证时使用原始 change ID。
限制:资料未提供安装方式、平台支持、收费与价格等信息。