如何在SVN中创建分支?
使用svn copy命令创建一个新分支,如下所示:
1 2 3
| $ 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命令将存储库中的整个文件夹复制到存储库中的其他位置。
基本上,这意味着按照惯例,复制文件夹的含义-无论是备份,标签,分支还是其他。根据您对事物的看法(通常取决于您过去使用的SCM工具),您需要在存储库中设置一个文件夹结构来支持您的样式。
常见样式是在存储库顶部有一堆名为tags,branches,trunk等的文件夹-允许您将整个trunk(或子集)复制到< x2>和/或branches文件夹。如果您有多个项目,则可能需要在每个项目下复制这种结构:
可能需要一段时间才能习惯该概念-但它确实有效-只要确保您(和您的团队)对将要使用的约定清楚。拥有良好的命名约定也是一个好主意-可以告诉您创建分支/标记的原因以及是否仍然合适-可以考虑将过时的分支归档。
如果您可以通过https访问仓库,则可以使用此命令分支...
1 2 3
| svn copy https://host.example.com/repos/project/trunk \
https://host.example.com/repos/project/branches/branch-name \
-m"Creating a branch of project" |
1
| svn cp /trunk/ /branch/NEW_Branch |
如果您的中继有一些本地更改,请使用Rsync同步更改
1
| rsync -r -v -p --exclude".svn" /trunk/ /branch/NEW_Branch |
假设您要根据中继名称创建分支(如" TEST")
然后使用:
1
| svn cp -m"CREATE BRANCH TEST" $svn_url/trunk $svn_url/branches/TEST |
通常,您会将其复制到svn + ssh://host.example.com/repos/project/branches/mybranch,以便可以在存储库中保留多个分支,但是语法是有效的。
这是有关如何设置存储库布局的一些建议。
SVN新用户的最佳技巧;这可能有助于快速获取正确的网址。
运行svn info以显示有关当前已检出分支的有用信息。
该URL应该(如果您在根文件夹中运行svn)为您提供了需要复制的URL。
另外,要切换到新创建的分支,请使用svn switch命令:
1
| svn switch http://my.repo.url/myrepo/branches/newBranchName |
如果您甚至打算合并分支,我强烈建议您看一下:
Svnmerge.py
我听说Subversion 1.5内置了更多的合并跟踪功能,对此我没有任何经验。我的项目在1.4.x上,而svnmerge.py可以挽救生命!
-
在当前项目之外创建一个新文件夹。您可以给它起任何名字。 (示例:您有一个名为" Customization"的项目的结帐。它有许多项目,例如" Project1"," Project2"。...并且您想创建" Project1"的分支。因此,首先打开"自定义",右键单击并创建一个新文件夹,并将其命名为" Project1Branch")。
-
右键单击" Myproject1"。...TortoiseSVN->分支/标签。
-
选择工作副本。
-
打开浏览器...。仅在"至URL"上平行。
-
选择自定义.....右键单击,然后添加文件夹。并浏览您创建的文件夹。这是" Project1Branch"。现在单击确定按钮添加。
-
签出这个新的分支。
-
再次转到项目要创建的分支。右键单击TorotoiseSVN->分支/标签。然后选择工作副本。您可以将URL作为您的分支名称。例如{您的IP地址/ svn / AAAA / Customization / Project1Branch}。并且您可以在URL中设置名称,以便仅使用该名称创建文件夹。
类似于{您的IP地址/ svn / AAAA /自定义/ Project1Branch / MyProject1Branch}。
-
按确定按钮。现在您可以看到日志...您的工作副本将存储在您的分支机构中。
-
现在您可以签出...,让您享受工作。 :)