如何在SVN中创建分支?
当前回答
假设您想要从主干名称(如“TEST”)创建一个分支 然后使用:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
其他回答
使用svn copy命令新建分支,如下所示:
$ svn copy svn+ssh://host.example.com/repos/project/trunk \
svn+ssh://host.example.com/repos/project/branches/NAME_OF_BRANCH \
-m "Creating a branch of project"
Subversion中的分支由一个非常轻、非常高效的复制工具实现。
分支和标记实际上是相同的。只需使用svn copy命令将存储库中的整个文件夹复制到存储库中的其他地方。
基本上,这意味着按照惯例复制文件夹意味着什么——无论它是备份、标记、分支还是其他什么。根据您想要如何思考问题(通常取决于您过去使用的配置管理工具),您需要在存储库中设置一个文件夹结构来支持您的风格。
常见的风格是在你的存储库顶部有一堆文件夹,称为标签、分支、主干等——这允许你将整个主干(或子集)复制到标签和/或分支文件夹中。如果你有多个项目,你可能想在每个项目下复制这种结构:
可能需要一段时间来适应这个概念——但它是有效的——只要确保你(和你的团队)清楚你将要使用的约定。有一个好的命名约定也是一个好主意——它可以告诉你为什么要创建分支/标记,以及它是否仍然合适——考虑归档过时的分支的方法。
SVN新用户的小贴士;这可能有助于快速获得正确的url。
执行svn info命令显示当前签出分支的有用信息。
URL应该(如果您在根文件夹中运行svn)提供您需要从中复制的URL。
也可以使用svn switch命令切换到新创建的分支:
svn switch http://my.repo.url/myrepo/branches/newBranchName
通常您会将它复制到svn+ssh://host.example.com/repos/project/branches/mybranch,这样您就可以在存储库中保留几个分支,但是您的语法是有效的。
下面是一些关于如何设置存储库布局的建议。
svn cp /trunk/ /branch/NEW_Branch
如果在trunk中有一些本地更改,那么使用Rsync来同步更改
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
推荐文章
- 无法推送到远程分支,无法解析到分支
- Git:如何将数据库重置为特定的提交?
- 忽略已经签入目录的内容?
- 如何完全删除TFS绑定
- 哪些Eclipse文件属于版本控制?
- 命令行svn for Windows?
- 如何在GitHub上创建自己的存储库?
- Git:从另一个分支复制目录中的所有文件
- Git:“当前不在任何分支上。”是否有一种简单的方法可以在保持更改的同时回到分支上?
- 我如何移动一个文件(或文件夹)从一个文件夹到另一个在TortoiseSVN?
- 我如何让我的“分离的头”提交回主人
- Mercurial -恢复到旧版本并从那里继续
- 错误“更新被拒绝,因为远程包含您在本地没有的工作”
- 如何用TortoiseGit删除Git分支
- 当“svn cleanup”失败时,我该怎么办?