svn分支初学笔记

分支的概念

比如当项目要添加一个实验阶段的功能(可能弃用),并要求功能模块不影响主干时,可以用分支将新功能写在分支中。
分支与主干是相互独立的,在分支中提交的代码无法在主干中更新下来,但反过来也是如此。分支与主干的同步只能通过“合并”

分支的使用

当最开始创建版本库的时候,就已经出现关于分支的提示了:
svn分支初学笔记svn分支初学笔记
这里若选择创建目录结构,就会自动创建主干目录(trunk)与分支目录(branches),然而这里自动创建的branches并没有实际的作用,我们仍可以把分支放到任何一个想放的位置。

创建分支

创建分支很简单,只需要点击“分支/标记”然后选择路径即可,
svn分支初学笔记
svn分支初学笔记
注意:若目录内包含中文会可能失败,并提示“来源与目标 URL 似乎不在同一版本库。”

创建分支后在服务端就已经存在分支了,但还需要将服务端的数据更新到本地才能看到分支目录。
svn分支初学笔记
可以随时通过“版本分支图”来查看分支
svn分支初学笔记
svn分支初学笔记

合并分支

在想合并的位置点合并,比如主*分。
合并是单向的,可以在主干合并分支,也可以在分支合并主干。
svn分支初学笔记
svn分支初学笔记
如果是在分支合并主干,需选择主干的“源”,这里是选择分支的源。
合并所有修改版本
svn分支初学笔记
合并时很有可能出现冲突,出现冲突时合并不会执行,解决所有冲突后再次合并再是合并完成。
svn分支初学笔记 —— 主目录合并了分支的修改
关于合并需要注意:
1、合并是本地的,当合并完毕后主干的变化并不会自动提交到服务端,需要手动提交一次。
2、合并是仅有效一次的,比如上述操作,我在合并成功后将 text.txt 文件删除,重新从服务端更新,由于(1)更新的 text.txt 不包含分支的修改,我再次进行合并操作,合并提示完成,但实际上修改并没有在 text.txt 文件中出现。
svn分支初学笔记
鉴于合并的特殊性,建议在合并成功后立即提交到服务端来保存合并结果。