svn分支创建与开发需遵循标准流程:先用svn copy在服务端原子复制trunk至/branches/下规范命名的路径,再用svn switch切换本地工作区;开发中定期合并trunk更新,合并回trunk前须切换、reintegrate、测试并提交。

直接用 svn copy 命令从 trunk 复制出新分支,再通过 svn switch 切换工作区即可开始独立开发。关键不是“能不能建”,而是建得清不清晰、合得稳不稳妥。
明确分支命名与存放位置
SVN 本身不限制分支结构,但团队需统一约定。推荐采用标准布局:/trunk(主干)、/branches/(功能分支存放区)、/tags/(发布快照)。例如:
- 新功能“用户权限重构”可建为
/branches/feature/auth-refactor - 紧急修复可建为
/branches/hotfix/v2.1.3 - 避免使用模糊名称如
branch1或temp,防止后期混淆
创建分支:服务端复制,非本地拷贝
SVN 分支本质是仓库内的一次原子性复制操作,不占用额外磁盘空间,也不依赖本地文件。执行命令前确保已获取 trunk 最新状态:
《SVN视频教程》,SVN:全称Subversion,是代码版本管理软件,管理着随时间改变的数据。这些数据放置在一个中央资料档案库 (repository) 中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。许多人会把版本控制系統想像成某种“时光机器”。
- 查看当前 trunk 地址:
svn info | grep URL - 执行复制(带提交信息):
svn copy https://repo.example.com/project/trunk https://repo.example.com/project/branches/feature/login-v2 -m "Create login-v2 branch" - 该操作立即生效于服务器,本地 working copy 不会自动更新分支内容
切换并开展开发
分支创建后,需将本地工作区指向它才能编辑和提交:
- 若已有 trunk 工作副本,直接切换:
svn switch https://repo.example.com/project/branches/feature/login-v2 - 若无,可新建空目录并检出:
svn checkout https://repo.example.com/project/branches/feature/login-v2 - 所有修改、新增、提交均只影响该分支,与 trunk 完全隔离
合并回主干前的必要准备
合并不是一键完成的动作,而是需主动同步、测试、解决冲突的过程:
- 开发期间建议定期把 trunk 的更新拉入分支(
svn merge https://repo.example.com/project/trunk),减少最终合并难度 - 合并前先切换回 trunk:
svn switch https://repo.example.com/project/trunk - 执行 reintegrate 合并(TortoiseSVN 中选 “Reintegrate a branch”,命令行推荐
svn merge --reintegrate) - 合并后务必本地构建+运行测试,确认无破坏性变更,再
svn commit










