#6603·beads

在 $TMPDIR 下运行 bd init 会将嵌入式存储安装在 OS 临时根目录的 .beads 文件中,而不是目标目录中

作者: athosmartins创建于 2026年9月18日更新于 2026年9月18日

□ 总结

OS 下的目标目录的bd init-non-interactive-prefix<x> 临时根 ('os.TempDir ()'- 例如: macOS's $TMPDIR', /var/文件夹/./T/') 静静地将新嵌入的多尔特商店 植入到临时根上 `.beads/embeddolt/ <prefix *> 而不是当地 QQ目标 >/. beads/embeddolt/ <prefix *
到处都不存在 ". . . . 从未使用过的 " 前缀 " 。 这使得每个"mktemp"-d"基的药效bd 在任何呼叫者的测试套件中 沉默地化名成一个共享的, 不断成长的商店 而不是自己的一家

一旦发生一次,它就复合了:FindParentConfig'的祖先 搜索(cmd/bd/bootstrap.go')在OS临时根上没有上限(仅在 $HOME ' ),因此,随后的bd-C < y-subdir-of-tmpdir' 呼叫-init, 创建、计数、列表——找到目前存在的临时 ".珠 " 和再利用 它,无论目标目录自己的路径或配置的前缀.

□ 环境

  • `bd版本1.1.0 (861fd98b9)'
  • macOS(Darwin 25. 6.0),嵌入式多尔特模式(`dolt mode: 嵌入式')
  • 没有BEADS-DOLT-Shared-SERVER',没有dolt.shared-server'配置 - 确认 `IssharedServerMode ()' 是虚假的; 这不是共享服务器编码路径 。

□再现.

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? S="$(mktemp-d)" # 如/var/文件夹/xx/./tmp. XXXXXXXX. mkdir -p "$S/store-a" "$S/store-b" (中文(简体) ). (cd"$S/store-a" &&bd init-非交互-前缀 rta). (cd"$S/store-b" QQ bd init -- 非交互 -- prefix rtb). bd - C “$S/store-a” 创建“ 固定 A” - t 任务 - q bd - C “$S/store-b” 创建“ 固定 B1 ” - t 任务 - q bd - C “$S/store-b” 创建“ 固定 B2” - t 任务 - q

bd-C"$S/store-a"计数 --json #{"计数": 3} -- 预期 1 bd-C"$S/store-b"计数 --json #{"计数":3} -- 期望 2,作为 store-a的 SAME

检查它到底在哪里降落: Is -d “$S/ store-a/. beads” 2% 1 # 没有这样的文件或目录 为 -d “${TMPDIR%/}/}/.beads” 2% 1 # <-已存在; dolt 数据库中

元数据.json是"rta",即FIRST

曾经使用的前缀,而不是"rtb"


即使是全新的前缀 从来没有被使用过
被抛弃——在临时根的`.豆'的任何前缀下创造出土地。
已有:

{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
S2=“美元(mktemp-d)”
mkdir - p “$S2/solo”
(cd"$S2/solo" && bd init-非交互-前缀 zzq999).
bd - C “$S2/solo” 创建“ solo” - t 任务 - q
bd - C “$S2/solo” 列表 - json QQ jq - r '. [0].id' # rta- xxxxxxxxxxxxxxxxx; Not zzq9999-xxxxxxxxxxxxxxxxxx.

□根因(至我所寻.

  1. ** Trigger**:当bd init'必须履行自己的内部git init'时。 (即尚未在目标处存在 ".git " ),其内流出的东西 返回到将新嵌入商店的物理文件放入 `os.TempDir ()' 而不是目标目录——可从 完全干净的状态, 不只是重复 原有的祖先状态。 ** 反复出现的新机器状态下确认为决定性的工作 . . . . . . .

内容来源: gastownhall/beads