【19】切换分支 “分支”的一个重要作用就是并行开发---在企业级开发中,通常需要同时开发软件的新版本和维护软件的旧版本,trunk目录通常用于存放最新的代码,而branch目录通常用于存放某个开发过程中的分支。 例如:在开发ECoupon项目的过程中,程序员为了试验一个新需求或新功能是否可用,需要另外开辟一个空间来做测试。但是这个程序员的工作不应该影响到其他人的进度,或者说在主干线上工作的人员进度不能受到这个程序员的影响。那么此时分支的作用就显现出来了。 我们可以给该程序员创建一个分支,该分支的原始版本可以来自于主干的最新可运行代码,让这个程序员工作在这个分支上,而其他人并行地进行主干线的开发。但是因为此前这个程序员的本地工作副本是指向主干,所以他必须重新把版本关系指向这个属于他的最新分支。 这时他有两种做法: A.从分支中检出一份拷贝到不同于原来ECoupon项目的位置,然后独立开发 B.使用svn switch命令来切换到版本库的不同位置。 这里我们选择方法B。svn switch命令的用法是:svn switch [--relocate] URL。该命令有两种用法:一种是不使用参数relocate的,一种是使用relocate参数的。它们的使用原则如下: A.如果切换后的版本库路径还是在同一个版本库,只是在不同的路径下。那么使用svn switch URL B.如果切换后的版本库位置已经改变(主机迁移,版本库迁移),但是目录结构不变。就需要relocate参数 因为我们切换的新路径是在同一个版本库下,只是路径变了。所以我们用如下命令就可以了