Visual Studio Code 扩展,在编辑器内集成 Team Foundation Server (TFVC) 版本控制。管理挂起更改、撤销编辑、比较文件、切换工作区,无需离开 IDE。
- 添加 文件:直接在源代码管理中生效。
- 重命名 文件:直接在源代码管理中生效。
- 删除 文件:直接在源代码管理中生效。
- 移动 文件 到其他目录:直接在源代码管理中生效。
- 移动 目录:直接在源代码管理中生效。
- 挂起更改视图: 跟踪和管理工作区中所有挂起的更改。
- 快速文件操作:
右键点击文件或文件夹,可以:
- 撤销挂起的更改。
- 与 TFS 最新版本比较文件。
- 状态栏集成: 直接从状态栏快速设置或切换活动工作区。
从 Visual Studio Marketplace 安装此扩展。
在 文件 → 首选项 → 设置 中搜索 tfs 进行配置。
| 配置键 | 说明 | 默认值 |
|---|---|---|
tfs.location |
tf.exe 路径 | — |
tfs.promptToCheckOut |
编辑前是否弹窗确认签出 | — |
tfs.blame.enabled |
启用/禁用标注功能 | true |
tfs.blame.cacheSize |
标注信息缓存的最大文件数 | 50 |
tfs.tfptLocation |
TFS Power Tools (tfpt.exe) 路径 | — |
要查找 tf.exe 路径,打开 Visual Studio 开发者命令提示符,运行:
where tf.exe-
打开挂起更改视图 打开 挂起更改 视图,查看所有未提交的更改。
-
右键操作 右键点击文件或文件夹,可执行撤销更改、与最新版本比较等操作。
-
设置活动工作区 使用屏幕底部的状态栏,为项目设置活动工作区。
点击状态栏左侧的「工作区」按钮后,会弹出快速选择面板。
git clone https://github.com/Keysqiu/svetlyotfs.git
cd svetlyotfs/vscode-tfs| 依赖 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >= 12.x | 运行环境 |
| TypeScript | 4.5.5 | 编译(项目自带) |
| Yarn | >= 1.x | 包管理 |
| tf.exe | — | TFS 命令行客户端,需 Visual Studio 或 Team Explorer 提供 |
| VSCode | ^1.86.0 | 引擎要求 |
yarn install# 编译 TypeScript
yarn compile
# 监听模式(增量编译)
yarn watch# 运行所有测试
yarn test
# 按名称筛选测试
yarn test -- --grep "测试名称"# ESLint 检查
yarn lint
# Prettier 格式化
yarn fix# 安装 vsce(全局)
npm install -g @vscode/vsce
# 打包为 .vsix 文件
vsce package生成的 .vsix 文件可通过 VSCode 的 扩展 → ... → 从 VSIX 安装... 加载。
在 VSCode 中按 F5,使用预配置的 Debug Extension launch 配置,会自动编译并启动扩展开发宿主窗口。
vscode-tfs/
├── src/
│ ├── extension.ts # 入口:activate/deactivate
│ ├── TFS/
│ │ ├── Commands.ts # tf.exe 命令封装
│ │ ├── Spawn.ts # 底层子进程调用
│ │ ├── Types.ts # 数据类型定义
│ │ ├── OperationQueue.ts # 串行化操作队列
│ │ └── BlameManager.ts # Blame 缓存
│ ├── vscode/
│ │ ├── PendingChangesTreeView.ts # 挂起更改树视图
│ │ ├── FileHistoryTreeView.ts # 文件历史树视图
│ │ ├── PendingChangesViewDecoration.ts # 文件装饰器
│ │ ├── WorkspaceStatusBarItem.ts # 状态栏工作区切换
│ │ ├── ActionHandlers.ts # 命令处理器
│ │ └── BlameDecorationsProvider.ts # Blame 内联装饰
│ ├── common/
│ │ ├── Settings.ts # 配置管理
│ │ ├── Utilities.ts # 工具函数
│ │ └── LocalCache.ts # 缓存实现
│ └── test/ # 测试文件
├── out/ # 编译输出
├── res/ # 资源文件
└── package.json # 扩展配置
您的反馈对改进此扩展至关重要!
- 报告问题或建议功能: 在 GitHub 上提交 Issue。
- 参与开发: Fork 本仓库并提交 Pull Request,帮助增强此扩展。
源代码托管在 GitHub。 欢迎探索、贡献,共同完善此扩展。
本项目基于 MIT 许可证 授权。 自由使用、修改和分享。
如果此扩展改善了您的工作流程,欢迎在此处留下评价。


