TortoiseSVN 1.8.8中分支和合并实践规范

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

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

右键Repositories,选择:Create new Repository...,选择:Regular FSFS repository

图1

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

设置Repository Name:branch

图2

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

选择:Single-project repository(with the top-level 'trunk','branches' and 'tags' folders)

图3

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

选择:Nobody has access

图4

(5)Finish,如图5

Finish

图5

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

右键branch,选择:Properties

图6

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

选择需要授权的用户组,选择:Develpoer、front_end_developer

图7

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

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

图8

2、主干检出

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

新建目录branch,如图9

图9

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

进入目录branch,然后空白处右键,选择:SVN 检出

图10

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

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

图11

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

检出完成,确定

图12

3、主干提交

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

进入目录branch,新建文件1.txt

图13

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

进入目录branch,然后空白处右键,选择:SVN 提交

图14

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

在弹出窗口选择全部,添加备注,确定

图15

(4)提交完成,确定

4、创建分支v1

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

进入目录branch,然后空白处右键,依次选择:"TortoiseSVN" -> "分支/标记"

图16

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

在弹出窗口的"至路径"中填入分支的地址,可手动填写,也可以点击后面的浏览按钮

图17

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

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

图18

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

选择:branches,确定

图19

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

在弹出窗口的"至路径"中填入分支的地址:"/branches",已经自动填写

图20

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

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

图21

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

创建分支完成

图22

5、切换至分支v1

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

进入目录branch,然后空白处右键,依次选择:"TortoiseSVN" -> "切换"

图23

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

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

图24

(3)切换完成,如图25

切换完成

图25

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

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

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

图26

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

空白处右键,选择:SVN 提交,选择全部,添加日志信息

图27

7、切换至主干

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

进入目录branch,然后空白处右键,依次选择:"TortoiseSVN" -> "切换"

图28

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

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

图29

(3)切换完成,如图30

切换完成

图30

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

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

进入目录branch,编辑文件1.txt

图31

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

空白处右键,选择:SVN 提交,选择全部,添加日志信息

图32

(3)提交完成,如图33

提交完成

图33

9、再次切换至分支v1

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

进入目录branch,然后空白处右键,依次选择:"TortoiseSVN" -> "切换"

图34

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

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

图35

(3)切换完成,如图36

切换完成

图36

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

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

图37

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

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

进入目录branch,编辑文件1.txt

图38

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

空白处右键,选择:SVN 提交,选择全部,添加日志信息

图39

(3)提交完成,如图40

提交完成

图40

11、将主干合并到分支v1

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

进入目录branch,然后空白处右键,依次选择:"TortoiseSVN" -> "合并"

图41

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

在弹出窗口的合并类型中选择:合并一个版本范围,下一步

图42

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

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

图43

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

点击浏览按钮,弹出窗口,选择:trunk,确定

图44

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

此时合并的源已经自动更改为:"https://192.168.2.63/svn/branch/trunk"

图45

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

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

图46

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

合并选项,在这里只需保留默认设置即可

图47

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

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

图48

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

弹出解决冲突窗口

图49

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

剩下冲突:全部以后解决

图50

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

主干所做的修改将同步到分支v1中,自动合并完成

图51

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

打开1.txt

图52

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

手动解决冲突,编辑1.txt,且删除1.txt.开头的3个冲突文件

图53

12、提交合并后的分支v1

(1)提交,如图54

提交

图54

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

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

图55

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

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

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

图56

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

进入目录branch,然后空白处右键,依次选择:"TortoiseSVN" -> "合并"

图57

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

在弹出窗口的合并类型中选择:合并一个版本范围,下一步

图58

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

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

图59

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

点击浏览按钮,弹出窗口,选择:branches/v1,确定

图60

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

此时合并的源已经自动更改为:"https://192.168.2.63/svn/branch/branches/v1"

图61

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

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

图62

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

合并选项,在这里只需保留默认设置即可

图63

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

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

图64

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

自动合并完成

图65

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

查看1.txt的内容,分支v1所做的修改将同步到主干中

图66

14、提交合并后的主干

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

空白处右键,选择:SVN 提交,选择全部,添加日志信息

图67

15、显示日志

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

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

图68

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

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

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

进入目录branch,然后空白处右键,依次选择:"TortoiseSVN" -> "合并"

图70

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

在弹出窗口的合并类型中选择:合并两个不同的树,下一步

图71

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

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

图72

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

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

图73

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

此时结束:区域已经自动更改为:"https://192.168.2.63/svn/branch/branches/v5"

图74

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

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

图75

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

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

图76

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

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

图77

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

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

图78

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

自动合并完成

图79

17、提交合并后的主干

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

空白处右键,选择:SVN 提交,选择全部,添加日志信息

图80

18、显示日志

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

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

图81

19、总结:

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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/251047.html

(0)
上一篇 2022年5月1日 08:01
下一篇 2022年5月1日 08:03

相关推荐

发表回复

登录后才能评论