-
08-06-2019 - |
题
如何在SVN中创建分支?
解决方案
Subversion 中的分支是通过非常非常轻且高效的复制工具来实现的。
分支和标记实际上是相同的。只需使用以下命令将存储库中的整个文件夹复制到存储库中的其他位置即可 svn copy
命令。
基本上,这意味着按照惯例复制文件夹意味着什么——无论是备份、标签、分支还是其他。根据您想要如何思考事物(通常取决于您过去使用过的 SCM 工具),您需要在存储库中设置一个文件夹结构来支持您的风格。
常见的样式是在存储库顶部有一堆文件夹,称为 tags
, branches
, trunk
, , ETC。- 这允许您复制整个 trunk
(或子集)到 tags
和/或 branches
文件夹。如果您有多个项目,您可能希望在每个项目下复制这种结构:
可能需要一段时间才能习惯这个概念 - 但它有效 - 只要确保您(和您的团队)清楚您将使用的约定即可。拥有良好的命名约定也是一个好主意 - 告诉您为什么创建分支/标签以及它是否仍然合适 - 考虑归档过时分支的方法。
其他提示
使用创建一个新分支 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"
如果您的存储库可通过 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"
svn cp /trunk/ /branch/NEW_Branch
如果您在主干中有一些本地更改,则使用 Rsync
同步更改
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
通常,您会将其复制到 svn+ssh://host.example.com/repos/project/branches/mybranch,以便您可以在存储库中保留多个分支,但您的语法是有效的。
这里有一些建议 如何设置存储库布局.
假设您要从中继名称(作为“测试”)创建一个分支,然后使用:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
如果您打算合并您的分支,我强烈建议您查看以下内容:
我听说 Subversion 1.5 构建了更多的合并跟踪,我对此没有经验。我的项目运行在 1.4.x 上,svnmerge.py 是我的救星!
SVN 新用户的重要提示;这可能有助于快速获取正确的 URL。
跑步 svn info
显示有关当前签出分支的有用信息。
URL 应该(如果您在根文件夹中运行 svn)为您提供需要从中复制的 URL。
另外,要切换到新创建的分支,请使用 svn switch
命令:
svn switch http://my.repo.url/myrepo/branches/newBranchName
- 在当前项目之外创建一个新文件夹。您可以给它任何名称。(例子:您有一个名为“自定义”的项目的结账。它有很多项目,例如“Project1”,“Project2”......并且您想创建“Project1”的分支。因此,首先打开“自定义”,右键单击并创建一个新文件夹并为其命名,“Project1Branch”)。
- 右键单击“Myproject1”....TortoiseSVN -> 分支/标签。
- 选择工作副本。
- 打开浏览器...就在“To URL”的并行右侧。
- 选择自定义...右键单击然后添加文件夹。并浏览您创建的文件夹。这里是“Project1Branch”。现在单击“确定”按钮进行添加。
- 结帐这家新银行。
- 再次转到您要创建哪个分支的项目。右键单击 TorotoiseSVN -> 分支/标签。然后选择工作副本。您可以将 URL 作为您的分支名称。例如 {您的 IP 地址/svn/AAAA/Customization/Project1Branch}。您可以在 URL 中设置名称,以便仅使用该名称创建文件夹。例如 {您的 IP 地址/svn/AAAA/Customization/Project1Branch/MyProject1Branch}。
- 按确定按钮。现在您可以看到日志...您的工作副本将存储在您的分支中。
- 现在您可以签出...并让您享受您的工作。:)