TortoiseSVN 1.8.8中分支和合并实践规范
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)分支开发结束后,才能够将分支合并到主干
近期评论