如何在SVN中创建分支?
svn cp /trunk/ /branch/NEW_Branch
如果在trunk中有一些本地更改,请使用 Rsync 同步更改
Rsync
rsync -r -v -p --exclude ".svn" /trunk/ /branch/NEW_Branch
通常,您将其复制到svn ssh://host.example.com/repos/project/branches/mybranch,以便您可以在存储库中保留多个分支,但您的语法是有效的 .
这是关于how to set up your repository layout的一些建议 .
假设您要从主干名称创建分支(作为“TEST”),然后使用:
svn cp -m "CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST
如果你打算合并你的分支,我强烈建议你看看这个:
Svnmerge.py
我听说Subversion 1.5构建了更多的合并跟踪,我没有经验 . 我的项目是在1.4.x上,svnmerge.py是一个救生员!
新SVN用户的最佳提示;这可能有助于快速获取正确的URL .
运行 svn info 以显示有关当前签出分支的有用信息 .
svn info
URL应该(如果您在根文件夹中运行svn)为您提供需要从中复制的URL .
要切换到新创建的分支,请使用 svn switch 命令:
svn switch
svn switch http://my.repo.url/myrepo/branches/newBranchName
Subversion中的分支是通过非常轻便和高效的复制工具来促进的 .
分支和标记实际上是相同的 . 只需使用 svn copy 命令将存储库中的整个文件夹复制到存储库中的其他位置即可 .
svn copy
基本上这意味着按照惯例,复制文件夹意味着什么 - 无论是备份,标记,分支还是其他 . 根据您的想法(通常取决于您过去使用过的SCM工具),您需要在存储库中设置文件夹结构以支持您的样式 .
常见的样式是在存储库顶部有一堆名为 tags , branches , trunk 等的文件夹 - 允许您将整个 trunk (或子集)复制到 tags 和/或 branches 文件夹中 . 如果您有多个项目,则可能需要在每个项目下复制此类结构:
tags
branches
trunk
它可能需要一段时间才能适应这个概念 - 但它确实有效 - 只需确保您(和您的团队)明确您将要使用的约定 . 拥有一个良好的命名约定也是一个好主意 - 这可以告诉你为什么分支/标签已经完成以及它是否仍然合适 - 考虑归档已过时的分支的方法 .
使用 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"
在当前项目之外创建一个新文件夹 . 你可以给它任何名字 . (例如:你有一个名为"Customization"的项目的结帐 . 它有很多项目,比如"Project1","Project2" ....你想要创建一个"Project1"的分支 . 所以首先打开"Customization",右键单击并创建一个新文件夹并给它一个名字,"Project1Branch") .
右键单击"Myproject1" .... TortoiseSVN - >分支/标记 .
选择工作副本 .
打开浏览器....恰好在"To URL"上并行 .
选择自定义.....右键单击然后添加文件夹 . 并浏览您创建的文件夹 . 这是"Project1Branch" . 现在点击OK按钮添加 .
结账这个新的banch .
再次转到您想要创建的分支项目 . 右键单击TorotoiseSVN - > branch / tag . 然后选择工作副本 . 您可以将URL作为分支名称 . 比如{你的IP地址/ svn / AAAA / Customization / Project1Branch} . 您可以在URL中设置名称,以便仅创建具有此名称的文件夹 . 像{你的IP地址/ svn / AAAA / Customization / Project1Branch / MyProject1Branch} .
按OK按钮 . 现在您可以看到日志...您的工作副本将存储在您的分支中 .
现在您可以退房...让您享受工作 . :)
9 回答
如果在trunk中有一些本地更改,请使用
Rsync
同步更改通常,您将其复制到svn ssh://host.example.com/repos/project/branches/mybranch,以便您可以在存储库中保留多个分支,但您的语法是有效的 .
这是关于how to set up your repository layout的一些建议 .
假设您要从主干名称创建分支(作为“TEST”),然后使用:
如果你打算合并你的分支,我强烈建议你看看这个:
Svnmerge.py
我听说Subversion 1.5构建了更多的合并跟踪,我没有经验 . 我的项目是在1.4.x上,svnmerge.py是一个救生员!
新SVN用户的最佳提示;这可能有助于快速获取正确的URL .
运行
svn info
以显示有关当前签出分支的有用信息 .URL应该(如果您在根文件夹中运行svn)为您提供需要从中复制的URL .
要切换到新创建的分支,请使用
svn switch
命令:Subversion中的分支是通过非常轻便和高效的复制工具来促进的 .
分支和标记实际上是相同的 . 只需使用
svn copy
命令将存储库中的整个文件夹复制到存储库中的其他位置即可 .基本上这意味着按照惯例,复制文件夹意味着什么 - 无论是备份,标记,分支还是其他 . 根据您的想法(通常取决于您过去使用过的SCM工具),您需要在存储库中设置文件夹结构以支持您的样式 .
常见的样式是在存储库顶部有一堆名为
tags
,branches
,trunk
等的文件夹 - 允许您将整个trunk
(或子集)复制到tags
和/或branches
文件夹中 . 如果您有多个项目,则可能需要在每个项目下复制此类结构:它可能需要一段时间才能适应这个概念 - 但它确实有效 - 只需确保您(和您的团队)明确您将要使用的约定 . 拥有一个良好的命名约定也是一个好主意 - 这可以告诉你为什么分支/标签已经完成以及它是否仍然合适 - 考虑归档已过时的分支的方法 .
使用
svn copy
命令创建新分支,如下所示:如果您通过https提供回购,则可以使用此命令进行分支...
在当前项目之外创建一个新文件夹 . 你可以给它任何名字 . (例如:你有一个名为"Customization"的项目的结帐 . 它有很多项目,比如"Project1","Project2" ....你想要创建一个"Project1"的分支 . 所以首先打开"Customization",右键单击并创建一个新文件夹并给它一个名字,"Project1Branch") .
右键单击"Myproject1" .... TortoiseSVN - >分支/标记 .
选择工作副本 .
打开浏览器....恰好在"To URL"上并行 .
选择自定义.....右键单击然后添加文件夹 . 并浏览您创建的文件夹 . 这是"Project1Branch" . 现在点击OK按钮添加 .
结账这个新的banch .
再次转到您想要创建的分支项目 . 右键单击TorotoiseSVN - > branch / tag . 然后选择工作副本 . 您可以将URL作为分支名称 . 比如{你的IP地址/ svn / AAAA / Customization / Project1Branch} . 您可以在URL中设置名称,以便仅创建具有此名称的文件夹 . 像{你的IP地址/ svn / AAAA / Customization / Project1Branch / MyProject1Branch} .
按OK按钮 . 现在您可以看到日志...您的工作副本将存储在您的分支中 .
现在您可以退房...让您享受工作 . :)