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
这里写图片描述

2、选择 创建 trunk、branches、tags 方式
这里写图片描述

3、然后 SVN CheckOut
这里写图片描述

4、在 trunk 下创建 Demo 测试工程,在 Demo 中添加 1.txt 并将 Demo 执行 add、commit
这里写图片描述

5、创建 Branch
选择 Demo 右键 TortoiseSVN -> Branch/tag
路径是从 trunk/Demo
To path : 为创建分支路径
选择 HEAD revision in the repository
这里写图片描述

6、执行 SVN Update
打开路径 branches 可以看到 项目已经被更新下来
这里写图片描述

7、在 分支中修改 1.txt、添加 2.txt, Commit
这里写图片描述

8、在 Demo 中 SVN Update,Branch 中执行的修改、添加,并没有影响到 trunk
这里写图片描述

9、Demo 中添加 3.txt 并 Commit, Branch 执行 SVN Update,3.txt 也没有出现在 Branch 中,说明Bransh 和 trunk 是相互并行互不干扰的。
这里写图片描述

10、将 trunk 合并(Merge)到 bransh,选择 branch/BranchDemo1 右键 -> TortoiseSVN -> Merge
选择 Merge a range of revisions 下一步
这里写图片描述

因为从 trunk 合并到 bransh
URL to merge from 要选择 trunk 下 Demo 的路径
这里写图片描述

specific range (指定需要从trunk 合并过来的trunk 的变更集范围)
all revisions 所有 trunk 中的修改都合并到 branch
选择 specific range 在右边 show log 中可以查看 trunk 的变更集
这里写图片描述
下一步
这里写图片描述

执行下一步前可以试下 右下角 Test merge,测试下是否有冲突,看 log 没有冲突异常,点击 Merge
这里写图片描述

执行结束打开 branch, trunk/Demo 添加的 3.txt 已经更新到 branch 中了,并且没有冲突产生
这里写图片描述

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

打开 trunk/Demo 目录发现 BranchDemo1 中添加的 2.txt 和 BranchDemo1 中在 1.txt 中添加的 内容都已经更新到了 trunk/Demo
这里写图片描述

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

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