Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>ReviewStream/评审直达New to Visual Studio Code? Get it now.
ReviewStream/评审直达

ReviewStream/评审直达

XieSi

|
7 installs
| (0) | Free
在 VS Code 的源代码管理(SCM)界面为每个 Git 仓库添加一个 “Push for Review” 按钮,点击后自动 push 当前分支到远端 refs/for/分支名,适用于 Gerrit 代码评审场景,支持自动识别评审 URL、弹窗与 macOS 系统通知提示。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

评审直达

评审直达 是一个 Visual Studio Code 扩展,用于在 VS Code 的源代码管理(SCM)界面为每个 Git 仓库添加一个 “Push for Review” 按钮,便于将当前分支推送到 Gerrit 风格的评审分支(refs/for/<branch>)。

主要功能(面向用户)

  • 在每个 Git 仓库的 SCM 页面添加“Push for Review”按钮。
  • 在每个 Git 仓库的 SCM 页面添加“Clear”按钮,用于回收 Git 空间并清理工作区。
  • 自动检测当前分支并将其推送到 refs/for/<branch>。
  • 推送远端策略:仅有一个远端时自动推送;存在多个远端时弹出列表供用户选择后再推送。
  • 捕获远端返回信息并尝试识别评审链接;可配置是否在推送后自动打开链接。
  • 在 macOS 上支持系统通知(需要允许 VS Code 的通知权限)。

快速使用

  1. 打开需要操作的仓库并切换到源代码管理(SCM)视图。
  2. 在对应仓库的标题栏点击“Push for Review”按钮。
  3. 推送完成后会弹出结果对话框(成功 / 失败),如果检测到评审链接并且在设置中启用了自动跳转,则会在默认浏览器中打开链接。

如需执行仓库清理:

  1. 在 SCM 中选择目标仓库(支持多仓库场景,也支持子模块仓库)。
  2. 点击“Clear”按钮并在确认弹窗中选择“继续清理”。
  3. 清理过程会显示进度条(fetch/reset/clean/gc)。
  4. 完成后弹窗会展示清理前后体积对比(git 目录、objects 目录、工作区)。

安全提示:Clear 会执行 git reset --hard 和 git clean -fdx,会删除未提交改动和未追踪文件,请先确认重要内容已提交或备份。

Clear 清理流程

Clear 按钮主要参考 CompactWebGLHistory.py --clear 的清理思路,并做了 VS Code 交互增强。

  • 记录清理前仓库体积(git 目录、objects 目录、工作区)。
  • 识别当前仓库上游分支,优先执行 git fetch <remote> <branch>。
  • 执行 git reset --hard(有上游时重置到远端分支,无上游时重置到本地 HEAD)。
  • 执行 git clean -fdx 清除未追踪文件。
  • 在 git clean -fdx 删除失败时,扩展会根据 reviewStream.clearFallbackRoots 对“可再生目录”执行文件系统兜底删除并重试(默认覆盖多技术栈常见目录,如 node_modules、dist、target、Library、Temp 等)。
  • 在 Windows 出现长路径删除失败时,会自动尝试 git config core.longpaths true 后重试。
  • 若最终仅剩配置的可再生目录中的缓存/锁文件因系统占用无法删除,扩展会记录警告并继续后续 Git 对象回收;详细残留路径可在输出面板查看。
  • 执行本地对象回收:reflog expire、repack -Ad、prune --expire=now、gc --prune=now。
  • 记录清理后仓库体积并弹窗展示体积变化。

清理的详细命令输出会写入 VS Code 输出面板 ReviewStream,用于排查问题。

设置示例(用户可在 VS Code 的设置中修改)

在 settings.json 中的示例:

"reviewStream.autoOpenLink": true,
"reviewStream.urlMappings": [
	{
		"pattern": "gerrit3\\.alibaba-inc\\.com",
		"url": "https://banma-scm.yunos-inc.com/buildCenter/task/prebuild/add"
	}
],
"reviewStream.clearFallbackRoots": [
	"node_modules",
	"dist",
	"target",
	"Library",
	"Temp"
]
  • reviewStream.autoOpenLink(布尔,默认 true):是否在推送后自动打开识别到的评审链接。
  • reviewStream.urlMappings(对象数组):可配置的正则->URL 映射列表;当返回文本或消息匹配 pattern 时,将自动打开对应的 url(若 autoOpenLink 为 true)。
  • reviewStream.clearFallbackRoots(字符串数组):Clear 在 git clean 删除失败时允许兜底删除的目录根。建议只保留可再生目录(缓存、构建产物、依赖目录),避免误删业务源码。

使用演示与截图

  • alt text
  • SCM 中显示“Push for Review”按钮的示意图

常见用户级问题

  • 我不想自动打开链接怎么办?

    • 请在设置中将 reviewStream.autoOpenLink 设为 false。
  • 如何添加自定义的正则->URL 映射?

    • 在 reviewStream.urlMappings 中添加对象形如 { "pattern": "your-regex", "url": "https://example.com/path" }。

想了解如何开发或构建此扩展?

开发者相关的安装、编译、打包与测试说明已移入开发者文档: DEVELOPMENT.md

参考

更多实现细节请查看源代码: src/extension.ts 更多模块化实现可查看: src/pushForReview.ts、src/gitClear.ts

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft