SVN branch分支管理

SVN branch分支管理

开发过程中修改bug或者添加新功能避免影响trunk,通常需要建立一个branch,在branch上进行修改,这样 trunk 和 branch 就可以并行开发互不干扰了。

当branch修改结束测试通过后,先将 trunk 合并到 branch,确定没问题后,再将 branch 合并回 trunk。切记 trunk 任何时候都要保证稳定,不能直接将 branch 修改的代码合并到 trunk, 否则如果有冲突甚至错误修改导致 trunk 发生错误,无法正常使用,可能会影响其他同事正常开发。影响开发进度。

下面来通过实际操作来展示如何使用 branch

1、首先打开 SVN 服务器,下面使用的是 VisualSVN Server,创建一个 Repositories 命名为 BranchTest
SVN branch分支管理_第1张图片

2、选择 创建 trunk、branches、tags 方式
SVN branch分支管理_第2张图片

3、然后 SVN CheckOut
SVN branch分支管理_第3张图片

4、在 trunk 下创建 Demo 测试工程,在 Demo 中添加 1.txt 并将 Demo 执行 add、commit
SVN branch分支管理_第4张图片

5、创建 Branch
选择 Demo 右键 TortoiseSVN -> Branch/tag
路径是从 trunk/Demo
To path : 为创建分支路径
选择 HEAD revision in the repository
SVN branch分支管理_第5张图片

6、执行 SVN Update
打开路径 branches 可以看到 项目已经被更新下来
SVN branch分支管理_第6张图片

7、在 分支中修改 1.txt、添加 2.txt, Commit
SVN branch分支管理_第7张图片

8、在 Demo 中 SVN Update,Branch 中执行的修改、添加,并没有影响到 trunk
SVN branch分支管理_第8张图片

9、Demo 中添加 3.txt 并 Commit, Branch 执行 SVN Update,3.txt 也没有出现在 Branch 中,说明Bransh 和 trunk 是相互并行互不干扰的。
SVN branch分支管理_第9张图片

10、将 trunk 合并(Merge)到 bransh,选择 branch/BranchDemo1 右键 -> TortoiseSVN -> Merge
选择 Merge a range of revisions 下一步
SVN branch分支管理_第10张图片

因为从 trunk 合并到 bransh
URL to merge from 要选择 trunk 下 Demo 的路径
SVN branch分支管理_第11张图片

specific range (指定需要从trunk 合并过来的trunk 的变更集范围)
all revisions 所有 trunk 中的修改都合并到 branch
选择 specific range 在右边 show log 中可以查看 trunk 的变更集
SVN branch分支管理_第12张图片
下一步
SVN branch分支管理_第13张图片

执行下一步前可以试下 右下角 Test merge,测试下是否有冲突,看 log 没有冲突异常,点击 Merge
SVN branch分支管理_第14张图片

执行结束打开 branch, trunk/Demo 添加的 3.txt 已经更新到 branch 中了,并且没有冲突产生
SVN branch分支管理_第15张图片

11、对 branch 执行 Commit,然后对 trunk 和branch 都执行下 SVN Update,避免出现 out of day
12、确保 Branch 的修改并没有和trunk 产生冲突,然后从 branch 合并到 trunk/Demo,选择 trunk/Demo 右键 -> TortoiseSVN -> Merge ,路径选择 从 branch/BranchDemo1 到 trunk/Demo
SVN branch分支管理_第16张图片

打开 trunk/Demo 目录发现 BranchDemo1 中添加的 2.txt 和 BranchDemo1 中在 1.txt 中添加的 内容都已经更新到了 trunk/Demo
SVN branch分支管理_第17张图片

13、对 trunk/Demo 执行 SVN Commit 将 从 branch 中合并过来的修改提交到 Repository

到此 SVN branch 分支的使用已经结束,上面只是演示操作过程,实际开发中由于多人同时协作开发,不可避免会出现不同人员 删除、修改等造成冲突,然后手动解决冲突

你可能感兴趣的:(SVN)