Skip to content

feat(workspace): 在独立标签页打开关联 worktree - #38

Open
ShaoClean wants to merge 1 commit into
developmentfrom
cindy/dazzling-fermi
Open

ShaoClean wants to merge 1 commit into
developmentfrom
cindy/dazzling-fermi

Conversation

@ShaoClean

@ShaoClean ShaoClean commented Sep 16, 2026

Copy link
Copy Markdown
Owner

背景与结果

仓库页新增 Worktrees 入口,列出关联目录及分支/游离 HEAD。点击后在独立标签打开完整仓库页面,并加入同一连接下的仓库列表;重复打开复用登记和标签。每个 worktree 的状态、Diff、草稿和 Git 操作绑定自己的目录,关闭标签保留登记。

变更类型

  • 新功能(feature)
  • Bug 修复(fix)
  • 优化 / 重构(improvement / refactor)
  • 文档 / 测试 / 工具(docs / test / chore)

关联 Issue

Closes #29

变更内容

  • 使用 NUL 分隔的 Git worktree 列表,保留特殊字符路径、locked、prunable 和 bare 状态。
  • 新增发现及打开接口;重新校验工作区根目录与共同 Git 目录,规范化路径并在事务中去重,不修改数据库结构。
  • 复用现有仓库路由及标签隔离;迟到的打开结果不抢走焦点,列表刷新不覆盖新登记。
  • 失败与空状态分离,支持重试、键盘操作及 320px 窄窗口;修正游离 HEAD 的状态显示。
  • 补充真实 SSH/Git、并发登记、请求乱序测试,以及独立的 Electron worktree 验收命令。

设计文档(Wiki)

验证

环境:macOS arm64,Node.js 25.5.0,Git 2.43.1,Electron 44.2.0;远端为隔离的本机 SSH 测试服务及临时仓库。

检查 / 场景 结果
npm test -w web 58 项通过
npm test -w server -- --runInBand repository git.service new-file-deletion ai 63 项通过
npm test -w @remote-git/ssh-client 63 项通过,2 个 Windows 专用测试跳过;新增 Windows 路径规范化后单独复跑 worktrees.test.cjs,5 项通过
npm run desktop:test:worktrees 构建及 Electron 真实 SSH 验收通过,覆盖打开、暂存隔离、去重、关闭、游离 HEAD 和 320px 布局
ego-browser 浏览器验收 新标签、草稿隔离、三类 Diff、失效目录、空状态、键盘及窄窗口通过
全量服务端测试 4 个原有初始化测试因缺少依赖注入失败,已在未修改的 development@02fee0c 上复现

兼容性与风险

不创建或删除远端 worktree,不增加数据库迁移或标签跨重启恢复。新增登记保留在现有 SQLite 仓库表中。远端 Git 需支持 worktree list --porcelain -z 及 rev-parse --path-format=absolute。不支持或不可访问时返回错误,不回退到其他目录。Windows/Linux 实机及外部 SSH 主机未验收。

提交前检查

  • 已自查差异,变更范围与关联 Issue 一致。
  • 已记录必要验证的实际结果及未验证项。
  • 已更新相关文档。
  • 已更新 Wiki 设计 / 验收记录、分类索引及 Issue / PR 双向链接。
  • 代码、日志与截图不包含真实密码、私钥或访问令牌。

@ShaoClean
ShaoClean marked this pull request as ready for review September 16, 2026 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[功能] 支持查看仓库关联 worktree 的改动

1 participant