1、版本库的创建,基于VisualSVN Server 3.5.0
(1)右键Repositories,选择:Create new Repository…,选择:Regular FSFS repository,如图1

(2)设置Repository Name:branch,如图2

(3)选择:Single-project repository(with the top-level ‘trunk’,’branches’ and ‘tags’ folders),如图3

(4)选择:Nobody has access,如图4

(5)Finish,如图5

(6)右键branch,选择:Properties,如图6

(7)选择需要授权的用户组,选择:Develpoer、front_end_developer,如图7

(8)Permissions(权限)为:Read/Write,确定,如图8

2、主干检出
(1)新建目录branch,如图9

(2)进入目录branch,然后空白处右键,选择:SVN 检出,如图10

(3)在弹出窗口的版本库URL中填入:”https://192.168.2.63/svn/branch/trunk”,其他默认即可,最后点击确定,如图11

(4)检出完成,确定,如图12

3、主干提交
(1)进入目录branch,新建文件1.txt,如图13

(2)进入目录branch,然后空白处右键,选择:SVN 提交,如图14

(3)在弹出窗口选择全部,添加备注,确定,如图15

(4)提交完成,确定
4、创建分支v1
(1)进入目录branch,然后空白处右键,依次选择:”TortoiseSVN” -> “分支/标记”,如图16

(2)在弹出窗口的”至路径”中填入分支的地址,可手动填写,也可以点击后面的浏览按钮,如图17

(3)点击浏览按钮,弹出窗口,如图18

(4)选择:branches,确定,如图19

(5)在弹出窗口的”至路径”中填入分支的地址:”/branches”,已经自动填写,如图20

(6)编辑”至路径”中填入分支的地址:”/branches/v1″,从此复制至版本库,选择:版本库中的最新版本,添加日志信息,确定,如图21

(7)创建分支完成,如图22

5、切换至分支v1
(1)进入目录branch,然后空白处右键,依次选择:”TortoiseSVN” -> “切换”,如图23

(2)在弹出窗口的”至路径”中填入分支的地址,可手动填写,也可以点击下拉列表选择,也可以点击后面的浏览按钮,确定,如图24

(3)切换完成,如图25

6、在分支v1上提交一个新文件
(1)进入目录branch(工作副本),新建文件v1.txt,如图26

(2)空白处右键,选择:SVN 提交,选择全部,添加日志信息,如图27

7、切换至主干
(1)进入目录branch,然后空白处右键,依次选择:”TortoiseSVN” -> “切换”,如图28

(2)在弹出窗口的”至路径”中填入分支的地址,可手动填写,也可以点击下拉列表选择,也可以点击后面的浏览按钮,确定,如图29

(3)切换完成,如图30

8、在主干上提交一个修改(注:主干用于修复bug,不用于添加新功能,建议只做合并分支使用)
(1)进入目录branch,编辑文件1.txt,如图31

(2)空白处右键,选择:SVN 提交,选择全部,添加日志信息,如图32

(3)提交完成,如图33

9、再次切换至分支v1
(1)进入目录branch,然后空白处右键,依次选择:”TortoiseSVN” -> “切换”,如图34

(2)在弹出窗口的”至路径”中填入分支的地址,可手动填写,也可以点击下拉列表选择,也可以点击后面的浏览按钮,确定,如图35

(3)切换完成,如图36

(4)此时打开1.txt,发现在步骤8中所做的操作已经被还原,因为当时是提交至主干,并非提交至分支v1,如图37

10、在分支v1上提交一个修改
(1)进入目录branch,编辑文件1.txt,如图38

(2)空白处右键,选择:SVN 提交,选择全部,添加日志信息,如图39

(3)提交完成,如图40

11、将主干合并到分支v1
(1)进入目录branch,然后空白处右键,依次选择:”TortoiseSVN” -> “合并”,如图41

(2)在弹出窗口的合并类型中选择:合并一个版本范围,下一步,如图42

(3)在合并窗口中,合并的源URL,可手动填写,也可以点击下拉列表选择,也可以点击后面的浏览按钮,确定,如图43

(4)点击浏览按钮,弹出窗口,选择:trunk,确定,如图44

(5)此时合并的源已经自动更改为:”https://192.168.2.63/svn/branch/trunk”,如图45

(6)将要合并的修改版本范围,选择:指定范围(如果不填写版本范围,所有未合并的版本将被选中),如图46

(7)合并选项,在这里只需保留默认设置即可,如图47

(8)在点击合并按钮前你可以先测试合并,查看成功与否,以及合并的详细信息,如图48

(9)弹出解决冲突窗口,如图49

(10)剩下冲突:全部以后解决,如图50

(11)主干所做的修改将同步到分支v1中,自动合并完成,如图51

(12)打开1.txt,如图52

(13)手动解决冲突,编辑1.txt,且删除1.txt.开头的3个冲突文件,如图53

12、提交合并后的分支v1
(1)提交,如图54

(2)提交完成,至此,分支v1已经完全和主干同步,如果分支v1已经开发结束,那就将分支v1合并回主干了,当然,如果分支v1还要继续开发,那将不断地重复10-11这几个步骤,如图55

13、将分支v1合并到主干(前提:在分支v1开发结束后)
(1)先切换至主干,可参考步骤7,如图56

(2)进入目录branch,然后空白处右键,依次选择:”TortoiseSVN” -> “合并”,如图57

(2)在弹出窗口的合并类型中选择:合并一个版本范围,下一步,如图58

(3)在合并窗口中,合并的源URL,可手动填写,也可以点击下拉列表选择,也可以点击后面的浏览按钮,确定,如图59

(4)点击浏览按钮,弹出窗口,选择:branches/v1,确定,如图60

(5)此时合并的源已经自动更改为:”https://192.168.2.63/svn/branch/branches/v1″,如图61

(6)将要合并的修改版本范围,选择:指定范围(如果不填写版本范围,所有未合并的版本将被选中),如图62

(7)合并选项,在这里只需保留默认设置即可,如图63

(8)在点击合并按钮前你可以先测试合并,查看成功与否,以及合并的详细信息,如图64

(9)自动合并完成,如图65

(10)查看1.txt的内容,分支v1所做的修改将同步到主干中,如图66

14、提交合并后的主干
(1)空白处右键,选择:SVN 提交,选择全部,添加日志信息,如图67

15、显示日志
(1)显示日志信息,如果勾选包含合并版本,可以查看合并相关的信息,如图68

16、建议将13-15的步骤调整为16-18,将分支v5合并到主干(前提:在分支v5开发结束后)
(1)先切换至主干,可参考步骤7
(2)进入目录branch,然后空白处右键,依次选择:”TortoiseSVN” -> “合并”,如图70

(3)在弹出窗口的合并类型中选择:合并两个不同的树,下一步,如图71

(4)在合并窗口中,在起始:区域输入主干的完整文件夹地址,如图72

(5)在结束:区域输入分支v4的路径,可以点击后面的浏览按钮进行选择,确定,如图73

(6)此时结束:区域已经自动更改为:”https://192.168.2.63/svn/branch/branches/v5″,如图74

(7)在结束版本处,点击版本后的显示日志按钮,查看分支v5的起始版本为:26,如图75

(8)在起始版本处,选择版本,点击版本后的显示日志按钮,选择版本:25,即要添加分支v5的起始版本26的上一个版本,如图76

(9)在合并窗口中,最终选项如图77,点击下一步

(10)在点击合并按钮前你可以先测试合并,查看成功与否,以及合并的详细信息,如图78

(11)自动合并完成,如图79

17、提交合并后的主干
(1)空白处右键,选择:SVN 提交,选择全部,添加日志信息,如图80

18、显示日志
(1)显示日志信息,如果勾选包含合并版本,可以查看合并相关的信息,如图81

19、总结:
(1)分支主要用于新功能的开发
(2)合并发生在本地工作副本,只要你不提交就不会影响到版本库
(3)合并前一定要先执行更新、提交,将本地的修改保存到版本库
(4)分支和主干(将其他分支合并到主干)并行开发的过程中,要经常同步,将主干的修改合并到分支,合并时选择”指定范围”
(5)分支开发结束后,才能够将分支合并到主干
需要长期技术维护或远程问题排查?
我是拥有 15+ 年经验的 PHP / Go 后端工程师,长期关注已有系统维护、Bug 修复、性能优化、服务器排查、WordPress 网站维护和小功能迭代。
如果你的项目遇到以下情况,可以先从一次小问题排查开始合作:
- ✅ PHP / Laravel / Yii2 老项目无人维护
- ✅ Go / Gin 后端接口需要排查或优化
- ✅ WordPress 网站访问慢、报错或插件冲突
- ✅ Nginx / MySQL / Redis / Linux 服务器异常
- ✅ CDN / Cloudflare / DNS / HTTPS 配置问题
- ✅ 需要长期远程技术支持或兼职维护
更多介绍请查看:关于我 & 合作
微信:13980074657
邮箱:shuijingwanwq@gmail.com
Telegram:@shuijingwan
GitHub:https://github.com/shuijingwan

发表回复