edit | blame | history | raw

Taglauncher 会话记录 - 2026-06-08-25

用户目标

用户认为当前源码管理混乱,要求研究是否可把所有源代码统一迁移到 /Users/ar/Projects/Taglauncher/src,以后不允许在其他目录放源代码,并且必须保证 Git 记录延续且有效。本轮只研究方案,不执行迁移。

已完成勘察

  • 读取并按 codebase-migrate 技能的迁移规划方式评估。
  • 确认 /Users/ar/Projects/Taglauncher 是主 Git 仓库工作区:
  • top-level:/Users/ar/Projects/Taglauncher
  • git dir:.git
  • 当前分支:main
  • 当前 HEAD:b2b51506d0e91ebd400bb6b0504016a55ca4fd4f
  • 确认 /Users/ar/Projects/Taglauncher-7.8.15-source 是同一仓库的 linked worktree,不是独立仓库:
  • git dir:/Users/ar/Projects/Taglauncher/.git/worktrees/Taglauncher-7.8.15-source
  • 当前分支:codex/recover-7.8.15-grok-fix
  • 当前 HEAD:4f5d7c13209555a114761f5027299f3ba1b42217
  • release tag:v7.8.22-build20260608.1324
  • git worktree list --porcelain 还显示两个 prunable 的旧 worktree:
  • /Users/ar/Projects/Apptag-7
  • /Users/ar/Projects/Apptag8-ai
  • /Users/ar/Projects/Taglauncher/src 当前存在但为空。
  • maincodex/recover-7.8.15-grok-fix 没有共同 merge-base,属于同一 repo 内的两段 unrelated history:
  • git merge-base --all main codex/recover-7.8.15-grok-fix 返回 status 1。
  • main...codex/recover-7.8.15-grok-fix 约为 36 131
  • main 目前主要是网站文档:docs/readme.md,约 36 个 tracked files。
  • codex/recover-7.8.15-grok-fix 是当前发布源码分支,顶层包含 Apptag/Research/Release/Scripts/build.shmake_dmg.sh 等,约 466 个 tracked files。
  • 当前根目录 /Users/ar/Projects/Taglauncher 里还有大量 untracked 内容,包括 AGENTS.mdRelease/Research/build/LocalDataBackups/ 等;其中证书目录属于敏感/非源码资料,不应纳入源码迁移。

初步结论

迁移可行,但不建议直接把 linked worktree 移动到 /Users/ar/Projects/Taglauncher/src,因为那会形成“一个 Git 工作区里嵌套同仓库 linked worktree”的结构,仍然混乱。

推荐方案是:
- 保留 /Users/ar/Projects/Taglauncher 作为唯一工作区。
- 用一次 Git 迁移提交,把当前发布源码分支作为第二父历史接入 main,并把其文件树导入到 src/ 前缀下。
- 迁移后删除 /Users/ar/Projects/Taglauncher-7.8.15-source linked worktree。
- 更新 AGENTS.md / 项目文档,明确唯一源码根目录是 /Users/ar/Projects/Taglauncher/src

建议后续步骤

  1. 先创建安全 tag/备份:旧 main、当前 release tag、当前发布产物。
  2. main 上创建迁移分支,例如 codex/relocate-source-to-src
  3. 处理根目录 untracked 内容:证书、发布产物、旧 build、本地备份全部移到受控的非源码归档位置,不删除。
  4. 使用 git merge -s ours --allow-unrelated-histories --no-commit codex/recover-7.8.15-grok-fix 建立双父历史。
  5. 使用 git read-tree --prefix=src/ -u codex/recover-7.8.15-grok-fix 将发布源码树导入 src/
  6. 提交迁移 commit。
  7. /Users/ar/Projects/Taglauncher/src 运行 QA 和 build,验证构建脚本路径仍可用。
  8. 验证 Git 历史:
  • source release commit/tag 仍可达。
  • git log --follow --find-renames -- src/Apptag/Info.plist 可追溯迁移前文件。
  1. 删除外部 linked worktree:git worktree remove /Users/ar/Projects/Taglauncher-7.8.15-source,再 git worktree prune
  2. 项目规则中明确:以后不得创建 /Users/ar/Projects/Taglauncher-*source 这类源码目录,所有源码任务必须在 /Users/ar/Projects/Taglauncher/src 内执行。

未执行事项

  • 未移动任何文件。
  • 未修改源码仓库。
  • 未清理 worktree。