VSCode SVN 插件
继承了svn基本功能,并增加了AI提交日志功能 方便非windows使用
功能特性
✅ 已实现功能
基础功能
- ✅ 单个文件提交**(文件右键点击 上传)
- ✅ 文件差异对比和提交**
- ✅ 更新工作副本**(文件、目录和工作区)
- ✅ 自定义SVN工作副本路径** (需要手动找到 svn 根目录)
- ✅ (默认免费)AI生成提交日志**(目前支持 openai qwen 模型 默认模型只能用免费用 3 个月)
- ✅ 支持文件夹 提交操作
- ✅ 查看文件或文件夹的SVN日志记录**
用户界面
- ✅ 上下文菜单集成**(右键菜单)
- ✅ 差异对比和提交界面**(左右对比视图)
- ✅ SVN日志查看界面**(日志列表和详情视图)
使用方法
安装
- 确保您的系统已安装SVN命令行工具
- 在VSCode扩展市场中搜索"VSCode SVN - ai"并安装
- 重启VSCode
文件上传
- 在资源管理器中右键点击文件
- 选择"SVN: 上传文件"
- 输入提交信息
- 文件将被添加到SVN(如果尚未添加)并提交
文件夹上传
- 在资源管理器中右键点击文件夹
- 选择"SVN: 上传文件夹"
- 选择是否添加未版本控制的文件
- 输入提交信息
- 文件夹中的更改将被提交到SVN
文件差异对比和提交
- 在资源管理器中右键点击文件
- 选择"SVN: 提交文件(显示差异)"
- 如果文件未在SVN控制下,会询问是否添加到SVN
- 系统会打开一个左右对比界面,左侧显示SVN版本,右侧显示工作副本
- 在界面底部输入提交日志
- 点击"提交"按钮完成提交(如果文件有差异,提交按钮才可点击)
- 您也可以点击"使用AI生成提交日志"按钮,自动生成基于文件差异的提交日志
AI生成提交日志
- 在提交界面中,点击"使用AI生成提交日志"按钮
- 系统会分析文件差异,并使用AI生成一个专业的提交日志
- 生成的提交日志会自动填充到提交日志文本框中
- 您可以直接使用生成的日志,或根据需要进行修改后提交
- 首次使用时,系统会提示您设置API密钥
设置AI模型和API密钥
- 打开VSCode设置(文件 > 首选项 > 设置)
- 搜索"vscode-svn.aiModel",选择要使用的AI模型(OpenAI 或 通义千问)
- 如果选择OpenAI:
- 搜索"vscode-svn.aiApiKey"
- 输入您的OpenAI API密钥
- 如果选择通义千问:
- 搜索"vscode-svn.qwenApiKey"
- 输入您的通义千问API密钥(在通义千问控制台获取)
- 您也可以在首次使用AI生成提交日志功能时,根据提示设置相应的密钥
更新文件
- 在资源管理器或编辑器中右键点击文件
- 选择"SVN: 更新文件"
- 如果文件有本地修改,系统会询问是否继续更新
- 更新完成后,如果文件已在编辑器中打开,内容会自动刷新
更新目录
- 在资源管理器中右键点击文件夹
- 选择"SVN: 更新目录"
- 系统会打开一个更新面板,显示更新进度和结果
- 更新完成后,面板会显示所有更新的文件列表和状态
- 您可以点击"重新更新"按钮再次更新,或点击"关闭"按钮关闭面板
更新工作区
- 打开命令面板(按下
F1 或Ctrl+Shift+P )
- 执行"SVN: 更新工作区"命令
- 系统会更新整个工作区(当前打开的项目)
- 更新面板会显示所有更新的文件列表和状态
设置SVN工作副本路径
如果您的文件不在标准的SVN工作副本结构中,或者需要将文件关联到特定的SVN仓库,可以手动设置SVN工作副本路径:
- 在资源管理器中右键点击任意文件或文件夹
- 选择 "SVN: 设置SVN工作副本路径"
- 在弹出的对话框中选择包含
.svn 目录的SVN工作副本根目录
- 设置成功后,插件将使用该路径作为SVN工作副本根目录
您也可以通过命令面板(按下F1 或Ctrl+Shift+P )执行"SVN: 设置SVN工作副本路径"命令。
清除SVN工作副本路径设置
如果需要清除之前设置的自定义SVN工作副本路径:
- 打开命令面板(按下
F1 或Ctrl+Shift+P )
- 执行"SVN: 清除SVN工作副本路径"命令
编码问题处理
本插件针对SVN操作中可能出现的编码问题进行了特殊处理:
- 设置了环境变量以确保SVN命令使用UTF-8编码
- 对于差异比较,添加了
--force 和其他参数以处理特殊字符
- 当标准差异比较失败时,会提供备用方法显示文件变化
- 即使在无法显示详细差异的情况下,也能继续进行提交操作
如果您在使用过程中仍然遇到编码问题,可以尝试:
- 确保您的SVN客户端配置为使用UTF-8编码
- 在SVN配置文件中设置
svn:mime-type 属性为text/plain;charset=UTF-8
- 对于特殊文件,可以直接使用"SVN: 上传文件"命令而不查看差异
查看SVN日志
- 在资源管理器中右键点击文件或文件夹
- 选择"SVN: 查看日志记录"
- 系统会打开一个日志查看面板,左侧显示日志列表,右侧显示详情
- 点击左侧的日志条目可以查看该版本的详细信息,包括提交信息和变更文件列表
- 点击变更文件列表中的文件可以查看该文件在该版本的具体变更内容
- 可以点击"加载更多"按钮查看更多历史记录
- 点击"刷新"按钮可以刷新日志列表
注意事项
- 请确保系统已安装SVN命令行工具
- 文件必须位于SVN工作副本中,或者已通过"设置SVN工作副本路径"功能关联到SVN工作副本
- 请确保您有足够的权限执行SVN操作
- 对于包含特殊字符或二进制文件,差异比较可能无法正常显示,但仍可以提交
开发里程碑
4.2.5
4.2.4
4.2.3
对比按钮功能优化
- 根据文件状态显示不同的按钮文本和行为
- 修改状态(
modified )的文件:显示"对比"按钮,点击后显示左右对比视图
- 其他状态的文件:显示"打开"按钮,点击后直接在编辑器中打开文件
恢复按钮功能添加
- 为修改状态(
modified )和删除状态(deleted )的文件添加"恢复"按钮
- 点击恢复按钮会弹出确认对话框
- 确认后执行
svn revert 操作
- 操作成功后自动刷新文件状态列表
界面布局优化
- 调整了按钮的样式和布局,使用更紧凑的设计
- 优化了文件状态显示的宽度和对齐方式
- 添加了按钮的 tooltip 提示文本
- 使用 grid 布局确保各列宽度合理分配
文件状态显示优化
- 根据不同的文件状态显示不同的颜色
- 添加了状态图标的 tooltip 提示
- 优化了状态文本的显示效果
4.1.2
- 完善单个文件上传流程
- 修改了提示词 加快了生成速度
- 增加了文件夹上传功能
1.0.0 - 正式版本
- [ ] 完整功能集
- [ ] 性能优化
- [ ] 用户体验改进
技术栈
- TypeScript
- VS Code Extension API
- SVN命令行工具集成
- OpenAI API(用于生成提交日志)
贡献指南
欢迎提交问题报告和功能请求。如果您想贡献代码,请先开issue讨论您想要更改的内容。
许可证
MIT
| |