651

如何在 SVN 中创建分支?

4

10 回答 10

627

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"
于 2008-08-05T09:25:40.510 回答
370

Subversion 中的分支是由一个非常轻量级和高效的复制工具来促进的。

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

基本上,这意味着按照惯例,复制文件夹意味着什么——无论是备份、标签、分支还是其他。根据您对事物的思考方式(通常取决于您过去使用的 SCM 工具),您需要在存储库中设置文件夹结构以支持您的风格。

常见的样式是在存储库顶部有一堆文件夹,称为tags, branches,trunk等 - 允许您将整个trunk(或子集)复制到tags和/或branches文件夹中。如果您有多个项目,您可能希望在每个项目下复制这种结构:

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

于 2008-08-05T13:40:20.777 回答
36

如果你的 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"
于 2016-02-10T20:36:21.917 回答
27
svn cp /trunk/ /branch/NEW_Branch

如果您在主干中有一些本地更改,请使用Rsync同步更改

rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
于 2013-09-03T09:14:12.763 回答
17

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

svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
于 2013-07-23T09:51:33.360 回答
16

给新 SVN 用户的重要提示;这可能有助于快速获取正确的 URL。

运行svn info以显示有关当前签出分支的有用信息。

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

同样要切换到新创建的分支,请使用以下svn switch命令:

svn switch http://my.repo.url/myrepo/branches/newBranchName
于 2014-03-28T11:30:44.550 回答
15

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

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

于 2008-08-05T12:40:31.337 回答
12

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

svnmerge.py

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

于 2008-08-05T12:46:40.637 回答
6
  • 在当前项目之外创建一个新文件夹。你可以给它任何名字。(例如:您有一个名为“Customization”的项目的结帐。它有许多项目,例如“Project1”、“Project2”......并且您想创建“Project1”的一个分支。所以首先打开“自定义”,右键单击并创建一个新文件夹并为其命名,“Project1Branch”)。
  • 右键单击“Myproject1”.... TortoiseSVN -> 分支/标签。
  • 选择工作副本。
  • 打开浏览器....就在“To URL”上的平行右侧。
  • 选择自定义.....右键单击然后添加文件夹。并浏览您创建的文件夹。这里是“Project1Branch”。现在单击确定按钮添加。
  • 结帐这个新银行。
  • 再次转到您要创建的项目的分支。右键单击 TorotoiseSVN -> 分支/标签。然后选择工作副本。您可以将 URL 作为您的分支名称。比如{你的 IP 地址/svn/AAAA/Customization/Project1Branch}。您可以在 URL 中设置名称,以便它只创建具有此名称的文件夹。像{您的 IP 地址/svn/AAAA/Customization/Project1Branch/MyProject1Branch}。
  • 按确定按钮。现在您可以看到日志...您的工作副本将存储在您的分支中。
  • 现在您可以结账了……让您享受您的工作。:)
于 2014-02-05T10:24:54.917 回答
2

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

  1. 右键单击本地 Windows 机器上的更新后备箱
  2. 选择 TortoiseSVN
  3. 单击分支/标签
  4. 选择 SVN 存储库中的 To 路径。请注意,目标 URL 会根据给定的路径和分支名称进行更新
  5. 不要在存储库浏览器的分支内创建文件夹
  6. 添加分支路径。例如,分支/
  7. 添加有意义的日志消息供您参考
  8. 单击确定,这将在本地系统上创建新文件夹
  9. 签出创建到新文件夹中的分支
于 2020-03-27T05:45:45.533 回答