# SVN Manager SVN 管理工具 - 多项目管理界面 ## 技术栈 - **前端**: Vue 3 + Vite + Pinia + Axios(IDEA 风格深色主题) - **后端**: Java 17 + Spring Boot 3,REST API,本地调用 `svn` CLI - **配置**: 项目列表存储在 `~/.svn-manager/projects.json` ## 项目结构 ``` svn-manager/ ├── backend/ # Java Spring Boot 后端 │ ├── src/main/java/com/svnmanager/ │ │ ├── controller/ # REST 控制器 │ │ ├── service/ # SVN 服务与文件树 │ │ ├── model/ # 数据模型 │ │ └── util/ # 配置与进程工具 │ └── pom.xml ├── frontend/ # Vue 3 前端 │ ├── src/ │ │ ├── api/ # API 客户端 │ │ ├── components/ # 侧栏、工具栏、文件树、弹窗 │ │ ├── stores/ # Pinia 状态 │ │ └── App.vue │ └── package.json └── README.md ``` ## 运行方式 ### 前置要求 - JDK 17+ - Node.js 18+ - 系统已安装 `svn` 并已在 PATH 中 ### 1. 启动后端 ```bash cd backend mvn spring-boot:run ``` 后端默认端口:`8080`,API 前缀:`/api`。 ### 2. 启动前端 ```bash cd frontend npm install npm run dev ``` 浏览器访问 Vite 提供的地址(如 `http://localhost:5173`)。开发环境下 Vite 会将 `/api` 代理到 `http://localhost:8080`。 ### 3. 生产构建 - 后端:`cd backend && mvn package`,运行 `java -jar target/svn-manager-backend-1.0.0.jar` - 前端:`cd frontend && npm run build`,将 `dist/` 部署到任意静态服务器,并配置 API 代理或同域部署 ## 功能说明 - **项目列表**:左侧栏展示已配置项目,点击切换当前项目 - **添加项目**:填写本地工作副本路径(及可选 SVN 地址、账号密码)保存到 `~/.svn-manager/projects.json` - **文件树**:选中项目后自动拉取 `svn status` 并展示树形结构,支持 SVN 状态徽章(M/A/D/C/?) - **工具栏**:刷新状态、更新、提交、日志、差异;提交/日志/差异通过弹窗完成 ## 许可证 MIT License