如何在SVN中创建分支?


使用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"

通常您会将它复制到svn+ssh://host.example.com/repos/project/branches/mybranch,这样您就可以在存储库中保留几个分支,但是您的语法是有效的。

下面是一些关于如何设置存储库布局的建议。


如果你打算合并你的分支,我强烈建议你看看这个:

Svnmerge.py

我听说Subversion 1.5构建了更多的合并跟踪功能,我没有这方面的经验。我的项目在1.4版。X和svnmerge.py是一个救生员!


Subversion中的分支由一个非常轻、非常高效的复制工具实现。

分支和标记实际上是相同的。只需使用svn copy命令将存储库中的整个文件夹复制到存储库中的其他地方。

基本上,这意味着按照惯例复制文件夹意味着什么——无论它是备份、标记、分支还是其他什么。根据您想要如何思考问题(通常取决于您过去使用的配置管理工具),您需要在存储库中设置一个文件夹结构来支持您的风格。

常见的风格是在你的存储库顶部有一堆文件夹,称为标签、分支、主干等——这允许你将整个主干(或子集)复制到标签和/或分支文件夹中。如果你有多个项目,你可能想在每个项目下复制这种结构:

可能需要一段时间来适应这个概念——但它是有效的——只要确保你(和你的团队)清楚你将要使用的约定。有一个好的命名约定也是一个好主意——它可以告诉你为什么要创建分支/标记,以及它是否仍然合适——考虑归档过时的分支的方法。


假设您想要从主干名称(如“TEST”)创建一个分支 然后使用:

svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST

svn cp /trunk/ /branch/NEW_Branch

如果在trunk中有一些本地更改,那么使用Rsync来同步更改

rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch

Create a new folder outside of your current project. You can give it any name. (Example: You have a checkout for a project named "Customization". And it has many projects, like "Project1", "Project2"....And you want to create a branch of "Project1". So first open the "Customization", right click and create a new folder and give it a name, "Project1Branch"). Right click on "Myproject1"....TortoiseSVN -> Branch/Tag. Choose working copy. Open browser....Just right of parallel on "To URL". Select customization.....right click then Add Folder. and go through the folder which you have created. Here it is "Project1Branch". Now clik the OK button to add. Take checkout of this new banch. Again go to your project which branch you want to create. Right click TorotoiseSVN -> branch/tag. Then select working copy. And you can give the URL as your branch name. like {your IP address/svn/AAAA/Customization/Project1Branch}. And you can set the name in the URL so it will create the folder with this name only. Like {Your IP address/svn/AAAA/Customization/Project1Branch/MyProject1Branch}. Press the OK button. Now you can see the logs in ...your working copy will be stored in your branch. Now you can take a check out...and let you enjoy your work. :)


SVN新用户的小贴士;这可能有助于快速获得正确的url。

执行svn info命令显示当前签出分支的有用信息。

URL应该(如果您在根文件夹中运行svn)提供您需要从中复制的URL。

也可以使用svn switch命令切换到新创建的分支:

svn switch http://my.repo.url/myrepo/branches/newBranchName

如果你的repo是通过https可用的,你可以使用这个命令来分支…

svn copy https://host.example.com/repos/project/trunk \
       https://host.example.com/repos/project/branches/branch-name \
  -m "Creating a branch of project"

下面是在windows机器中使用TortoiseSVN从主干创建分支的步骤。这显然需要安装TortoiseSVN客户端。

右键单击本地windows计算机上更新的中继 选择TortoiseSVN 点击分支/标记 选择SVN存储库中的To路径。注意,目标URL是根据给定的路径和分支名称更新的 在储存库浏览器中不能在分支中创建文件夹 添加分支路径。例如,分支/ 添加有意义的日志消息供您参考 单击“确定”,这将在本地系统上创建新文件夹 签出创建到新文件夹中的分支