news 2026/10/16 3:08:27

如何从Go版beads(bd)迁移到beads_rust:完整迁移指南与JSONL互通要点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何从Go版beads(bd)迁移到beads_rust:完整迁移指南与JSONL互通要点

【免费下载链接】beads_rust

Fast Rust port of Steve Yegge's beads: local-first, non-invasive issue tracker storing tasks in SQLite with JSONL export for git collaboration

项目地址:https://gitcode.com/gh_mirrors/be/beads_rust
点击查看免费下载

beads_rust是一个用 Rust 重写的本地优先(local-first)issue 跟踪工具,命令名为br。它将任务存储在仓库内的 SQLite 数据库中,并导出issues.jsonl供 git 协作,完全离线可用。如果你之前一直在用 Go 版 beads(命令bd),好消息是:两者的数据架构一脉相承,迁移本质上是一次机械式的改名 + 一个行为差异的适配,绝大多数人 10 分钟即可完成。

本文带你走一遍完整流程:安装初始化、JSONL 数据互通、命令映射、文档迁移,最后附常见坑点清单。

为什么要迁移到 br?

原版 beads 正在向新的 GasTown 方向演进,而br冻结了经典的 "SQLite + JSONL" 混合架构,保持长期稳定:

维度bd(Go 版 beads)br(beads_rust)
存储SQLite + JSONLSQLite + JSONL(同构)
sync行为自动提交 git永不执行 git 命令,仅导出 JSONL
守护进程 / RPC有无
速度快更快(Rust 原生,冷启动低延迟)
数据目录.beads/.beads/(完全兼容)

核心结论:数据不用搬,格式不用改——因为 JSONL 互通就是为互操作设计的。

一键安装并初始化 br 工作区

安装脚本会自动检测平台并下载对应二进制(支持 Linux、macOS、Windows WSL),仓库内的 install.sh 即为入口:

curl -fsSL <install.sh 地址> | bash

进入你的项目目录后执行:

cd my-project br init # 在 .beads/ 初始化工作区 ls -la .beads/ # beads.db # SQLite 数据库(本地权威存储) # issues.jsonl # git 友好的导出文件

💡 如果.beads/是旧 bd 留下的目录,br可以直接打开它——这就是 JSONL 互通的基础。

数据互通:JSONL 是 bd 与 br 之间的桥梁

br对数据目录采用JSONL 为 git 协作权威、SQLite 为本地索引的双轨模型,配置见 README.md 的 Configuration 一节(.beads/config.yaml中auto_flush与auto_import默认开启)。

导入旧 beads 数据

如果.beads/issues.jsonl中存在 bd 时代的数据,而beads.db缺失或希望以 JSONL 为准,一条命令重建:

# 以 JSONL 为权威,重建 SQLite 并清理库内多余条目 br sync --import-only --rebuild # 若旧数据的 issue ID 前缀不是 br-(例如仍是 bd-xxx),导入时自动改写前缀 br sync --import-only --rebuild --rename-prefix

关于--rename-prefix的三个要点(详见 docs/CLI_REFERENCE.md 的 sync 章节):

  1. 只替换前缀段,ID 的 slug 与 hash 部分原样保留:bd-cargo-license-spdx-ay8→br-cargo-license-spdx-ay8;
  2. 旧 ID 会存入新条目的external_ref字段,输出中的prefix_renames列表会完整报告每次改写,方便你修正外部引用;
  3. 即使不改前缀,br也容忍bd-前缀的旧 ID(如br show bd-abc123可正常工作),属于刻意保留的跨工具兼容特性。

导出与提交:唯一的"行为差异"

这是迁移中唯一需要改变肌肉记忆的地方:

# bd 时代:bd sync 会自动 commit bd sync # br 时代:只导出 JSONL,git 操作由你自己执行 br sync --flush-only git add .beads/ git commit -m "sync beads"

br是非侵入式(non-invasive)工具,永不执行任何 git 命令、不安装 hook——这既更安全,也意味着文档里必须显式写清 git 步骤(下面会讲)。日常使用中,变更默认会自动 flush 到 JSONL,br sync --flush-only只作为提交前的最终检查。

命令映射表:把 bd 换成 br 就对了

除 sync 外,其余命令都是纯改名(s/bd/br/g即可),完整对照参考 skills/bd-to-br-migration/SKILL.md 的 Command Map:

bdbr变更类型
bd ready/bd list/bd show <id>br ready/br list/br show <id>仅改名
bd create/bd update/bd closebr create/br update/br close仅改名
bd dep add/bd statsbr dep add/br stats仅改名
bd syncbr sync --flush-only+ 手动 git⚠️ 行为变更

优先级体系(P0-P4)、issue 类型、依赖跟踪、.beads/权威地位全部保持不变,无需额外学习成本。

文档与 AGENTS.md 迁移:7 步机械式转换

如果你的仓库里AGENTS.md、工作流文档或 agent 提示词中写满了bd指令,仓库内置了完整的迁移技能包,路径在 skills/bd-to-br-migration/,按 SKILL.md 规定的顺序执行 7 步转换:

  1. 章节标题:bd (beads)→br (beads_rust)
  2. 标题后补充非侵入式说明("br 永不执行 git,sync 后需手动git add .beads/ && git commit")
  3. 命令改名:bd X→br X(ready/list/show/create/update/close/dep/stats)
  4. sync 转换:bd sync→br sync --flush-only
  5. 每处sync 后补上git add .beads/+git commit
  6. issue ID 改写:bd-###→br-###
  7. 彻底删除 daemon、auto-commit、hook 安装、RPC 模式的描述(这些在 br 中不存在)

改完立即验证,bd残留必须为 0:

grep -c '`bd ' AGENTS.md # 必须为 0 grep -c 'bd sync' AGENTS.md # 必须为 0 grep -c 'br sync --flush-only' AGENTS.md # 必须 > 0 # 或使用官方脚本 ./skills/bd-to-br-migration/scripts/verify-migration.sh AGENTS.md

前后可对照示例见 references/TRANSFORMS.md。

批量迁移(10 个文件以上)

多文件项目建议按批处理:先用 scripts/find-bd-refs.sh 列出所有需要迁移的文件,然后每批约 10 个文件交给一个 subagent 顺序转换,每批之间必须跑一次验证再进入下一批。策略细节在 references/BULK.md。

五大常见坑点(附排查方法)

以下内容整理自 references/PITFALLS.md:

#坑点症状排查命令
1sync 后漏写 git 步骤(最大坑)会话结束后数据"丢失"grep 'br sync --flush-only' f.md && ! grep 'git add .beads/' f.md
2只改成br sync,漏掉--flush-only行为不符合预期grep -n 'br sync$' f.md
3同一文件里bd-123与br-123混用文档混乱grep -n 'bd-[0-9]' f.md
4漏加"非侵入式"说明读者仍期待自动提交grep -c 'non-invasive' f.md应为 > 0
5残留 daemon / hook / RPC 描述误导 agentgrep -in 'daemon\|hook\|rpc' f.md

⚠️ 第 5 项的残留内容要直接删除而不是转换——br 中这些机制根本不存在。

迁移完成度自检清单

  • .beads/beads.db与.beads/issues.jsonl均能被br正常打开(br list无报错)
  • 执行br sync --status(只读)确认同步状态一致
  • 若做了--rename-prefix,按输出的prefix_renames列表修正外部引用
  • grep确认文档中bd命令残留为 0,br sync --flush-only后均带 git 步骤
  • 提交一次git add .beads/ && git commit作为迁移基线

参考文档

  • 迁移技能主文档:skills/bd-to-br-migration/SKILL.md
  • 转换前后完整对照:skills/bd-to-br-migration/references/TRANSFORMS.md
  • 批量迁移策略:skills/bd-to-br-migration/references/BULK.md
  • 命令全量参考(sync 各模式详解):docs/CLI_REFERENCE.md
  • 同步安全模型:docs/SYNC_SAFETY.md

【免费下载链接】beads_rust

Fast Rust port of Steve Yegge's beads: local-first, non-invasive issue tracker storing tasks in SQLite with JSONL export for git collaboration

项目地址:https://gitcode.com/gh_mirrors/be/beads_rust
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/16 3:08:12

STM32CubeMX配置GPIO全指南:从推挽开漏到实战点灯

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/16 3:08:04

拆掉哈默纳科的专利墙——国产谐波减速器如何实现“零的突破“

在精密减速器领域&#xff0c;日本哈默纳科&#xff08;Harmonic Drive Systems&#xff09;曾是一个绕不开的名字。这家公司的谐波减速器全球市占率长期过半&#xff0c;在高端市场更是接近垄断。但它最深的护城河并非产能或资金&#xff0c;而是齿形专利。齿轮的齿廓曲线是谐…

作者头像 李华
网站建设 2026/10/16 3:07:27

【动态规划-22】70.爬楼梯

题目描述&#xff1a;假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f;示例 1&#xff1a;输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶…

作者头像 李华
网站建设 2026/10/16 3:07:24

说一句话镜头就换装:实时 AI 虚拟试衣智能体快速上手

说一句话镜头就换装&#xff1a;实时 AI 虚拟试衣智能体快速上手 【免费下载链接】Vision-Agents Open Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses Streams edge network for ultra-low latency. 项目地址: ht…

作者头像 李华
网站建设 2026/10/16 3:07:23

Halcon 3D 点云处理(3D Object Model)详解与算子说明

Halcon 3D 点云处理(3D Object Model)详解与算子说明 参考来源:Halcon 17.12 Operator Reference — 3D Object Model 章节、Solution Guide III-C (3D Vision) 适用版本:Halcon 17.12(主基准)/ 20.11 / 22.11 / 24.05 官方示例路径:Applications/3d_models/、examples/…

作者头像 李华