SVN打分支很简单,听着打分支好像很高深,其实对于SVN来说就是目录复制的功能。
?
1. 打分支需求
将主干trunk下的seurat-project工程,打到分支branches的prototyp目录下。
?
打分支前的目录结构:
├─branches
├─tags
└─trunk
? ? ?└─seurat-project
?
打分支后的目录结构:
├─branches
│ ? └─prototype
│ ? ? ? ? └─seurat-project
├─tags
└─trunk
? ? ?└─seurat-project
?
2. ?建立分支目录
svn mkdir http://localhost:81/svn/seurat/branches/prototype -m "create prototype directory"
如果希望递归创建子目录,需要为svn mkdir命令加上--parents参数。?
?
3. 打分支
?
svn copy http://localhost:81/svn/seurat/trunk/seurat-project http://localhost:81/svn/seurat/branches/prototype -m "create new branch for prototype"
注意:
- 如果加上--parents参数,在打分支过程中支持递归创建不存在目标路径,这样可以略过步骤2的操作。
- 打分支可以是目录,也可以是文件。
- 打目录分支时,如果目标路径中最后的目标目录已存在,则直接将源目录以其下内容一同复制到目标路径下,这种情况下不会将源目录下的内容直接复制到目标目录下;而如果不存在,则SVN会创建目标目录,并且只将源目录下的内容复制到目标目录下,其实相当于将源目录重命名。
- 打文件分支时,如果目标路径是一个已存在的目录,则直接将源文件复制到目标目录下。而如果目标路径的最后节点不存在,则SVN认为最后节点是要复制源文件后的新文件名,相当于复制文件后重命名。
4. Ok
?
以上是SVN打分支命令操作,其实使用Eclipse或TortoiseSVN小乌龟打分支更方便
?
但使用Eclipse或TortoiseSVN工具和svn命令有点儿不同,打目录分支时必须要指定一个目标路径中不存在的目标目录,打文件分支也是必须指定一个不存在的目标文件名。不知道为何有这个区别,只是在打分支时要注意使用的是svn命令,还是图形客户端工具。
?