删除SVN分支

GSt*_*Sto 84 svn version-control branching-and-merging

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

Wim*_*nen 102

当然:svn rm不需要的文件夹和提交.

为了避免将来出现这种情况,我会按照推荐的SVN项目布局:

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

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

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


grm*_*tin 55

假设此分支不是外部分支或符号链接,则删除分支应该如下所示:

svn rm branches/< mybranch >

svn ci -m "message"
Run Code Online (Sandbox Code Playgroud)

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

svn rm http://< myurl >/< myrepo >/branches/< mybranch >
Run Code Online (Sandbox Code Playgroud)

然后运行:

svn update
Run Code Online (Sandbox Code Playgroud)

  • 来自[书](http://svnbook.red-bean.com/en/1.6/svn.ref.svn.c.delete.html):"但是,删除网址是即时的,所以你必须提供一条日志消息[with -m]"so svn rm -m message http:// ...`并且不需要`update` (25认同)
  • 并且svn delete [URL] -m"message"也可以. (3认同)

2rs*_*2ts 50

对于使用TortoiseSVN的用户,可以使用Repository Browser(在上下文菜单中标记为"Repo-browser")来完成此操作.

上下文菜单

找到要删除的分支文件夹,右键单击它,然后选择"删除".

删除文件夹

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

提交


Cod*_*Kid 9

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

svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"
Run Code Online (Sandbox Code Playgroud)

^是遥控器URL的缩写,如'svn info'中所示.Windows命令行中必须使用双引号,因为它^是一个特殊字符.

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