1、基本概念:
当sandy和may同时操作一个版本库,此时,sandy在一周内要做一些改动工作,当他不断的进行提交后,可能会对 may的工常工作造成影响,为了两人都能相安无事,有一种解决办法就是,sandy在这一周里,不要提交他的改动,这样就不会影响may了,可是长时间不提交,说起来,总是不可能的,而且也不安全,出现了这种情况,我们就需要subversion提供的"分支"功能了.
分支功能可将sandy要操作的程序部分独立出来,然后进行check out与check in的操作,都不会影响原程序的版本.示意图如下 .
Tunck-----v31----------------------------v34 ------
Banches ----------v32-----------v33------------------
说明:上图表达的是Tunck为主干程序,从第30版本以后,有一部分程序被分立出来,形成与Tunck并行的Banches系列,它们各自互不影响,并行发展.在图中可看到Tunck和Banches的版本号是顺序进行的,不是重复的.
建议:在服务器端建立版本库的时候,最后事先考虑到分支的问题,建立完虚目录后,应该至少建立三个文件夹,TunckBanchesTag,分别用于存放主版本,分支,不同的发布版本.
2、建立分支的操作
使用subclipse--文件夹右键菜单->team->Branch/Tag,在弹出窗口中确认from URL和to URL,写上注释,就OK了。
使用命令:在服务器上进行文件复制
copy
![::URL::](http://www.blogcn.com/images/aurl.gif)
![::URL::](http://www.blogcn.com/images/aurl.gif)
-m "Creating a private branch of /trunk/calc"
分支建立完成后,sandy就把自已要操作的文件进行如下操作,
team->Switch 在to URL中写上Banches中的地址,这样sandy再提交就不会影响Tunck中的程序了。
3、Merge异同
sandy与may在分别操作各版本的过程中,如果想随时对某些文件进行一下同步,就使用merge命令(team->merge)
注:在Merge对话窗口里,上面那个URL是,当前低版本的URL,下面那个是升级后的URL,要在下面这个URL框中输入路径,先要将use "from:" URL这个checkbox给勾掉,这样就可以输入了。在这个窗口里,还可以选择要更新到的版本号等。
在merge的过程,如果旧版本与新版本冲突,那么就会完全被新的所替代。