删除SVN分支


91

我创建了一个名为“功能”的SVN项目的分支,现在,每当我尝试更新所述项目时,它就会带来一个功能文件夹,其中包含该分支中项目的另一个副本。有没有一种方法可以从存储库中完全删除该分支,从而不再发生这种情况?


Answers:


110

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

为了避免将来出现这种情况,我将遵循SVN项目的建议布局

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

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

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


58

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

svn rm branches/< mybranch >

svn ci -m "message"

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

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

然后运行:

svn update

26
:“删除URL,但是,是直接的,所以你必须提供一个日志信息[与-m]”所以svn rm -m message http://...也没有update要求
rymo

57

对于使用TortoiseSVN的用户,可以使用资源库浏览器(在上下文菜单中标记为“ Repo-浏览器”)来完成此操作。

上下文菜单

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

删除文件夹

输入您的提交消息,您就完成了。

提交


进行SVN更新以从磁盘上删除文件夹(如果在删除分支之前未删除)
ArieKanarie

12

您也可以直接删除遥控器上的分支。完成此操作后,下一次更新会将其从您的工作副本中删除。

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

^很短的遥控器的URL,如“SVN信息”见过。Windows命令行上必须使用双引号,因为这^是一个特殊字符。

如果您从未签出分支,则此命令也将起作用。


我在Mac上使用了它,效果很好!当我尝试最佳答案时,我得到的响应是“'/ local / path / to / repo / branches / branch-name'不是工作副本”,所以大概我从来没有尝试过检查我所做的分支
Mad Bernard

3

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

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

创建它们时,可以给每个项目一个主干,分支,标签文件夹。

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

3

从工作副本中:

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


3

删除分支的命令如下:

svn delete -m“ <您的消息>” <分支网址>

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

1)获取将包含您的工作副本的目录的绝对路径
> pwd
2)启动svn代码签出
> svn签出<分支URL> <从点1开始的绝对路径>

上面的步骤将使您的文件位于分支文件夹中,而不是整个文件夹中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.