94

我创建了一个名为“features”的 SVN 项目的分支,现在每当我尝试更新所述项目时,它都会带来一个 features 文件夹,其中包含来自该分支的项目的另一个副本。

有没有办法完全从存储库中删除分支,这样就不会再发生这种情况了?

4

7 回答 7

111

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

为避免将来出现这种情况,我将遵循SVN 项目的推荐布局:

  • 将您的代码放在 /someproject/trunk文件夹中(或者 /trunk如果您只想将一个项目放在存储库中)
  • 创建分支为/someproject/branches/somebranch
  • 把标签放在下面/someproject/tags

现在,当您签出工作副本时,请务必仅签出trunk或某个单独的分支。不要在一个包含所有分支的巨大工作副本中检查所有内容。1

1除非您知道自己在做什么,否则您知道如何创建浅层工作副本。

于 2010-09-28T20:15:11.813 回答
63

对于那些使用TortoiseSVN的人,您可以使用存储库浏览器来完成此操作(在上下文菜单中标记为“Repo-browser”。)

上下文菜单

找到要删除的分支文件夹,右键单击,选择“删除”。

删除文件夹

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

提交

于 2014-04-30T13:56:47.700 回答
59

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

svn rm branches/< mybranch >

svn ci -m "message"

如果您想在存储库中执行此操作,请更新以将其从工作副本中删除,您可以执行以下操作:

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

然后运行:

svn update
于 2010-09-28T20:13:19.310 回答
13

You can also delete the branch on the remote directly. Having done that, the next update will remove it from your working copy.

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

The ^ is short for the URL of the remote, as seen in 'svn info'. The double quotes are necessary on Windows command line, because ^ is a special character.

This command will also work if you have never checked out the branch.

于 2014-07-25T13:45:46.070 回答
4

删除分支的命令如下:

svn delete -m "<你的消息>" <分支网址>

如果您不想获取/签出整个 repo,请在终端上执行以下命令:

1) 获取包含工作副本的目录的绝对路径
> pwd
2) 启动 svn code checkout
> svn checkout <branch url> <absolute path from point 1>

上述步骤将为您获取分支文件夹中的文件,而不是整个文件夹。

于 2017-06-12T11:03:14.830 回答
3

您可以像结帐中的任何其他文件夹一样删除功能文件夹,然后提交更改。

为了防止将来发生这种情况,我建议您遵循 SVN 布局的命名约定。

在创建每个项目时给它们一个树干、分支、标签文件夹。

svn
+ project1
  + trunk
    + src
    + etc...
  + branches
    + features
      + src
      + etc...
  + tags
+ project2
  + trunk
  + branches
  + tags
于 2010-09-28T20:16:04.130 回答
3

从工作副本:

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

于 2010-09-28T20:16:04.620 回答