我想在我的代码库中创建一个特定目录的分支。我不想创建存储库的全新副本。
我是否可以创建单个目录的分支(包含其所有子文件夹)而无需复制整个存储库?
答案 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客户端。否则,您将进入整个重新整合与合并问题。