删除SVN分支

我创build了一个名为'features'的SVN项目的分支,现在每当我尝试更新所述项目时,都会带上一个features文件夹,其中包含分支中项目的另一个副本。 有没有办法从存储库中完全删除分支,这样就不会再发生了?

当然: svn rm不需要的文件夹,并提交。

为了避免将来出现这种情况,我将按照SVN项目的build议布局进行操作:

  • 把你的代码放在/someproject/trunk文件夹中(或者如果你只想把一个项目放到版本库里,就是/trunk
  • 创build分支为/someproject/branches/somebranch
  • 将标签放在/someproject/tags

现在,当你签出一份工作副本,一定要只检查trunk或某个单独的分支。 不要在一个包含所有分支的巨大的工作拷贝中检查一切。 1

1 除非你知道你在做什么,在这种情况下,你知道如何创build浅的工作副本。

假设这个分支不是外部或符号链接,删除分支应该是这样简单的:

 svn rm branches/< mybranch > svn ci -m "message" 

如果你想在存储库中这样做,然后更新从工作副本中删除它,你可以做一些事情:

 svn rm http://< myurl >/< myrepo >/branches/< mybranch > 

然后运行:

 svn update 

对于那些使用TortoiseSVN ,你可以通过使用Repository Browser(在上下文菜单中标记为“Repo-browser”)来实现。

上下文菜单

find要删除的分支文件夹,右键单击它,然后select“删除”。

删除该文件夹

input你的提交信息,你就完成了。

提交

您也可以直接删除远程分支。 完成之后,下一次更新将从您的工作副本中删除它。

 svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch" 

^是远程的URL的简称,如'svn info'所示。 双引号在Windows命令行上是必需的,因为^是一个特殊字符。

如果您从未检出分支,此命令也可以工作。

您可以删除function文件夹就像其他任何在您的结帐,然后提交更改。

为了防止这种情况发生,我build议你按照SVN布局的命名约定。

在创build时为每个项目分配一个主干,分支,标签文件夹。

 svn + project1 + trunk + src + etc... + branches + features + src + etc... + tags + project2 + trunk + branches + tags 

从工作副本:

svn rm branches/features
svn commit -m "delete stale feature branch"

删除分支的命令如下:

svn delete -m“<你的消息>”<分支url>

如果您不希望获取/签出整个回购,请在您的terminal上执行以下命令:

1)获取将包含您的工作副本的目录的绝对path
> pwd
2)启动svn代码结帐
> svn checkout <branch url> <从点1的绝对path>

上述步骤将获得分支文件夹内的文件,而不是整个文件夹。