用途:打开一个新的 tmux 窗格,通过 diffview.nvim 展示当前改动,使用户能在并排查看器中审阅,而不是翻阅终端输出。
主要能力与使用时机:在做出较多编辑后主动展示改动供审阅;当用户要求查看 diff、打开 diff 查看器或审阅改动时使用;在请求用户批准较大改动提交前使用。若改动很小、不在 tmux 内、或用户本轮已审阅过改动,则跳过。
运行方式:
bash ~/code/seabbs/dotfiles/scripts/show-diff.sh $ARGUMENTS
该脚本会在仓库顶层打开右侧分屏,运行 nvim +DiffviewOpen <range>。
rev-range 选择:
- 无参数:工作区与 HEAD 比较,用于未提交改动。
- last:HEAD~1..HEAD,查看最近一次提交。
- last N 或 N:HEAD~N..HEAD,查看最近 N 次提交。
- pr:origin/<base>...HEAD(base 取自 gh pr view),用于有开放 PR 的分支。
- 其他值:原样透传,如显式范围 main...HEAD。
若在具有开放 PR 的功能分支上同时存在已提交和未提交的工作,pr 是最快捷的选择。
要求:必须运行在 tmux 内(否则脚本报错);必须是 git 仓库;neovim 需可用 diffview.nvim(用户 dotfiles 中已配置)。
打开后:告知用户窗格已打开及所示范围。不要试图从 agent 侧驱动该 nvim 实例。