Skip to content

Releases: FxRayHughes/worktreecli

v0.1.7 — create 页进度可见 + 中止真正生效

Choose a tag to compare

@FxRayHughes FxRayHughes released this 14 Aug 06:24

修复

  • 创建页看不出脚本在不在跑:onCreate 的输出之前被整个丢掉,界面只有一行"执行环境 onCreate 脚本..."加个转圈 —— 一个要下载一小时的 pnpm install 和真死锁长得一模一样。现在保留脚本最新一行输出(剥 ANSI、按 \r/\n 断行),并显示已运行时长。
  • 退出后脚本变孤儿继续跑:之前 Esc/q 只是关掉 TUI,onCreate 里的 pnpm / node 还在后台跑(连 ctrl+c 也一样)。重试几次就攒出多个并发任务互相抢带宽。现在脚本跑在独立进程组里,中止时 kill(-pgid)(Windows 走 taskkill /T),子孙进程一起收掉。
  • spawn 模式会卡住 UI:会话启动是在 Update 里同步跑的,开新终端窗口那一步(osascript / open)会把整个界面冻住。现在走异步 tea.Cmd。
  • macOS spawn 改为 open 优先:AppleScript 会弹「自动化」授权框,而那个框常常藏在终端窗口后面,一直挡着启动流程。现在默认走 open + .command 包装脚本(不需要任何授权),AppleScript 退为兜底。

改进

  • 执行中页面新增 已运行 mm:ss 和 › <脚本最新输出> 两行,能区分"慢"和"卡死"
  • 提示文案改为"按 Esc/q 中止脚本并退出",与真实行为一致
  • 脚本输出不进事件循环(pnpm install 一秒几百行会把 UI 冲垮),只做单行快照

下载

go install github.com/FxRayHughes/worktreecli@latest

v0.1.6 — macOS spawn 修复

Choose a tag to compare

@FxRayHughes FxRayHughes released this 14 Aug 05:37

修复

  • macOS 下 spawn 打不开新终端:osascript 之前用 cmd.Start() 且不 Wait,AppleScript 的报错被完全吞掉。最常见的失败是「自动化」权限(TCC)被拒的 -1743 —— 在 iTerm / Ghostty / Warp / VS Code 里跑 wtc 去 tell application "Terminal",系统弹窗点过一次"不允许"就永久静默失败。表现为界面照样提示"已打开新终端窗口",实际什么都没发生,也看不到任何线索。

改进

  • osascript 改为同步执行 + 15s 超时 + 捕获 stderr:失败能看到真正原因,并正常回退到 print 模式
  • 新增一条不需要任何授权的兜底路径:写临时 .command 包装脚本用 open -a 打开,不走 Apple Events,权限被拒也能开窗
  • 识别 iTerm(TERM_PROGRAM / __CFBundleIdentifier),优先在你当前用的终端里开窗;其他终端兜底 Terminal.app
  • 兜底路径走 $SHELL -i 保证 rc 被加载,onSpawned 里写 nvm use / conda 这类命令仍然有效;临时文件后台延迟 30s 自删
  • 提示里显示实际使用的终端:已打开新终端窗口 (iTerm)
  • AppleScript 字面量补上反斜杠转义(原来只转 ",路径带 \ 会坏);Linux 分支的 Start() 错误不再丢

下载

go install github.com/FxRayHughes/worktreecli@latest

v0.1.5 — 并发删除竞态修复

Choose a tag to compare

@FxRayHughes FxRayHughes released this 06 Aug 02:21

修复

  • 连续删除 worktree 时刷新导致'复活':之前每个 removeDoneMsg 都触发全量列表刷新;刷新是从 git 实时读磁盘的,而后台其它删除还在跑,导致某些已从 UI 消失的项被'刷回来'。现在管理面板维护 pendingRemoves 集合追踪未完成的删除任务,刷新时过滤,全部完成才刷一次。

下载

go install github.com/FxRayHughes/worktreecli@latest

v0.1.4 — 分支页新增切换并拉取

Choose a tag to compare

@FxRayHughes FxRayHughes released this 06 Aug 02:08

变化

  • f 键行为修正:光标下的分支被某个 worktree 占用时,之前会报 refusing to fetch into branch 'refs/heads/develop' checked out at ...。现在自动跑到那个 worktree 目录里 git pull --ff-only,用户看不到错误。
  • 新增 c 键:切换并拉取:显式切换 wtc 所在目录到目标分支并 pull 最新。远程分支「origin/xxx」会自动建立本地跟踪分支。这是一个会改变当前工作目录状态的操作,请确保没有未提交更改。
  • 移除 Enter 时的隐式 fetch:v0.1.2 引入的进下一步时自动拉取改回显式:用户按 f 才拉。避免网络问题阻塞创建流程。

下载

go install github.com/FxRayHughes/worktreecli@latest

或选平台二进制。

v0.1.3 — 删除即时反馈

Choose a tag to compare

@FxRayHughes FxRayHughes released this 06 Aug 01:59

优化

  • 删除 worktree 立即从 UI 移除:按 d 后目标项立刻从列表消失,log 区显示正在后台删除提示;真正的 git worktree remove + 目录清理 + git branch -D 在后台 goroutine 里跑完再刷新列表。之前遇到文件锁需要 3-5 秒重试才能看到反馈,现在瞬间响应。

下载

go install github.com/FxRayHughes/worktreecli@latest

或从下方选平台二进制。

v0.1.2 — fetch 强制拉最新 + 删 worktree 顺带删分支

Choose a tag to compare

@FxRayHughes FxRayHughes released this 06 Aug 01:56

修复

  • 选中基线分支时强制拉最新:之前 f 拉取远程只更新 refs/remotes/origin/*,本地分支不动;现在选中一个本地分支准备下一步时,若远程有对应分支,用 git fetch origin <b>:<b> 强推本地引用到远程最新,避免从过期基线创建 worktree。
  • 删 worktree 顺带删本地分支:管理面板删除 worktree 后自动调 git branch -D <branch>,不再残留一堆 wt/* 分支。

下载

选对应平台二进制放进 PATH 即可。或者:

go install github.com/FxRayHughes/worktreecli@latest

从 v0.1.1 升级

直接覆盖二进制。配置结构不变。

v0.1.1 — 交互修复

Choose a tag to compare

@FxRayHughes FxRayHughes released this 31 Jul 16:58

修复

  • 管理面板删除按钮失效:manageModel / envListModel / configModel 里的 strings.Builder 触发 Bubble Tea Model 值拷贝导致的 illegal use of non-zero Builder copied by value。全部换成 string 字段。
  • 环境管理点击无反应:现在真正调用系统关联程序打开 yml 文件。Windows 用 rundll32 url.dll,FileProtocolHandler,macOS 用 open,Linux 用 xdg-open。
  • 非 git 目录无法打开 wtc:现在允许进入 TUI 主菜单,可管理环境与设置;创建/管理工作树在此模式下自动隐藏。

下载

选对应平台二进制放进 PATH 即可。或者:

go install github.com/FxRayHughes/worktreecli@latest

从 v0.1.0 升级

Windows 用户直接覆盖 wtc.exe,其他平台 chmod +x 后覆盖即可。配置文件 ~/.wtc/config.yml 结构不变,无需迁移。

v0.1.0 — first release

Choose a tag to compare

@FxRayHughes FxRayHughes released this 31 Jul 10:10

首个公开版本。

主要功能

  • TUI 主循环(Bubble Tea + Lipgloss,蓝色主题)
  • 创建流程: 基线分支 → 环境 → 命名 → 会话模式 → 确认
  • 管理面板: 列出、进入、删除已有 worktree
  • 三种会话模式: print / spawn / eval
  • 环境 yml: onCreate / onSpawned / onCleanup 每个都支持 default / macos / linux / windows 四平台脚本块
  • wtc over: 在 worktree 内一键删除当前工作树(含 kill 占用进程兜底 + 孤立残留强删)
  • 键盘 + 鼠标双操作:滚轮滚列表、双击选中、顶部按钮条可点击
  • 跨平台: Windows / macOS / Linux

安装

从下方下载对应平台二进制文件,加进 PATH 即可。或者:

go install github.com/FxRayHughes/worktreecli@latest

快速上手

cd /your/git/repo
wtc

详见 README。