我可以/如何分支特定目录

时间:2014-05-28 18:33:22

标签: svn

我想在我的代码库中创建一个特定目录的分支。我不想创建存储库的全新副本。

我是否可以创建单个目录的分支(包含其所有子文件夹)而无需复制整个存储库?

1 个答案:

答案 0 :(得分:1)

当您通过svn cp进行分支时,您不会复制任何内容。相反,您所做的只是为分支点创建指针

您可以创建目录的分支(以及所有子目录),但我强烈建议您创建整个项目的分支:

$ svn cp --parents $REPO/trunk/project  $REPO/branches/4.2/project

这不会占用存储库中的任何空间并立即执行。在我分支整个项目之前,我可以从分支机构签出项目,并能够在分支机构上构建我的项目。我可以分支特定的目录:

$ svn cp --parents $REPO/trunk/project/subdir $REPO/branches/4.2/subdir

但这使得无法构建分支,因为它不包含整个项目。

使用svn cp的优点是它允许Subversion进行合并,因为Subversion知道分支的来源:

$ svn co $REPO/trunk/project
$ cd project/subdir
$ svn merge $REPO/branches/4.2/project/subdir

这将您在分支上所做的所有更改都返回到主干。

注意 :我假设您使用的是Subversion 1.8客户端。否则,您将进入整个重新整合合并问题。