1、版本库的创建,基于VisualSVN Server 3.5.0

(1)右键Repositories,选择:Create new Repository…,选择:Regular FSFS repository,如图1

图1

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

图2

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

图3

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

图4

(5)Finish,如图5

图5

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

图6

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

图7

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

图8

2、主干检出

(1)新建目录branch,如图9

图9

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

图10

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

图11

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

图12

3、主干提交

(1)进入目录branch,新建文件1.txt,如图13

图13

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

图14

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

图15

(4)提交完成,确定

4、创建分支v1

(1)进入目录branch,然后空白处右键,依次选择:”TortoiseSVN” -> “分支/标记”,如图16

图16

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

图17

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

图18

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

图19

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

图20

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

图21

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

图22

5、切换至分支v1

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

图23

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

图24

(3)切换完成,如图25

图25

6、在分支v1上提交一个新文件

(1)进入目录branch(工作副本),新建文件v1.txt,如图26

图26

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

图27

7、切换至主干

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

图28

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

图29

(3)切换完成,如图30

图30

8、在主干上提交一个修改(注:主干用于修复bug,不用于添加新功能,建议只做合并分支使用)

(1)进入目录branch,编辑文件1.txt,如图31

图31

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

图32

(3)提交完成,如图33

图33

9、再次切换至分支v1

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

图34

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

图35

(3)切换完成,如图36

图36

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

图37

10、在分支v1上提交一个修改

(1)进入目录branch,编辑文件1.txt,如图38

图38

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

图39

(3)提交完成,如图40

图40

11、将主干合并到分支v1

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

图41

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

图42

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

图43

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

图44

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

图45

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

图46

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

图47

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

图48

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

图49

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

图50

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

图51

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

图52

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

图53

12、提交合并后的分支v1

(1)提交,如图54

图54

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

图55

13、将分支v1合并到主干(前提:在分支v1开发结束后)

(1)先切换至主干,可参考步骤7,如图56

图56

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

图57

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

图58

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

图59

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

图60

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

图61

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

图62

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

图63

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

图64

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

图65

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

图66

14、提交合并后的主干

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

图67

15、显示日志

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

图68

16、建议将13-15的步骤调整为16-18,将分支v5合并到主干(前提:在分支v5开发结束后)

(1)先切换至主干,可参考步骤7

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

图70

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

图71

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

图72

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

图73

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

图74

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

图75

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

图76

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

图77

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

图78

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

图79

17、提交合并后的主干

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

图80

18、显示日志

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

图81

19、总结:

(1)分支主要用于新功能的开发
(2)合并发生在本地工作副本,只要你不提交就不会影响到版本库
(3)合并前一定要先执行更新、提交,将本地的修改保存到版本库
(4)分支和主干(将其他分支合并到主干)并行开发的过程中,要经常同步,将主干的修改合并到分支,合并时选择”指定范围”
(5)分支开发结束后,才能够将分支合并到主干

永夜