在TortoiseSVN中删除一个分支

62

如何在TortoiseSVN中删除一个分支?

  1. 我可以直接删除分支的工作副本和仓库中的文件夹吗?
  2. 是先删除本地分支的工作副本,还是通过仓库浏览器删除分支文件夹呢?
3个回答

97

右键单击任何文件夹,选择“Repo-browser”,并在左侧面板中找到您的分支。从那里,您可以直接对存储库发出“删除”命令:

Repository browser screenshot

据我所知,您不能对工作副本的顶级文件夹发出删除命令,这可能会有效地销毁工作副本。

(*) 当然,如果它是一个内部文件夹(例如,您将其检出为https://svn.example.com/repo/project/branches而不是https://svn.example.com/repo/project/branches/feature-blah),则可以从工作副本中删除分支。


使用tsvn 1.11,您可以删除工作副本的顶层文件夹。当然,在那之后,工作副本不再是真正的工作副本,但仍可用于检查更改... - Wolf
@Wolf,具体步骤是什么?我自己想不出来。 - Álvaro González
1
右键单击工作副本顶级目录(即包含“.svn”文件夹的文件夹);单击TortoiseSVN -> Repo-browser;在窗口左侧对应的文件夹上右键单击(应该已经预选);单击Delete...;编写日志信息并点击[OK]。之后,工作副本仍然存在,因此您可以:右键单击它;单击TortoiseSVN -> Check for modifications。无法更新到HEAD,但是您也可以更新到创建和删除该分支之间的修订版本。因此,工作副本实际上是完好无损的,但受到限制。 - Wolf
只是你的次要条件不再适用于我的情况(你不能在工作副本的顶级文件夹上发出删除命令)。也许这是因为你回答后TSVN进行了更新。 - Wolf
@Wolf仓库浏览器不对工作副本进行操作。它只是从工作副本中填充URL。证明是,删除后您无需提交,更改即可立即供其他客户端使用。 - Álvaro González
显示剩余2条评论

12

《Subversion版本控制》一书介绍了如何删除和恢复分支

尽管它建议进行远程删除,例如:

$ svn delete http://svn.example.com/repos/calc/branches/my-calc-branch \
  -m "Removing obsolete branch of calc project."

你也可以本地完成这个任务(使用TortoiseSVN的删除命令)。

正如书中提到的,你总是可以恢复分支,所以不会出现任何意外后果。


谢谢你的回答。在Tortoise中我应该在哪里发送这样的命令? - John
在分支目录上右键单击,选择TortoiseSVN,然后选择删除。 - AndiDog
TortoiseSVN是使用Subversion库构建的,因此它不包含必要的二进制文件(如svn.exe)。在执行文本命令之前,您需要先下载它们(http://subversion.apache.org/packages.html#windows)。但这并不推荐 - TortoiseSVN是一个GUI,为什么要使用命令行呢? - AndiDog
截至2016年,TortoiseSVN软件包已经包含了一段时间的命令行二进制文件,尽管它们在安装过程中是可选组件。 - Álvaro González

6

如何在TortoiseSVN中删除分支?

有不止一种方法可以做到这一点,但是经过多年使用Tortoise的经验,我发现通过“仓库浏览器”删除是最不麻烦的方式。

右键单击工作副本并打开“仓库浏览器”:

enter image description here

浏览器长这样:

enter image description here

右键点击该项并选择删除。然后会要求您输入提交摘要。输入您的理由,然后单击“确定”。

我可以简单地删除分支的工作副本和存储库中的文件夹吗?

如果您仅检出了该分支及其自己的.svn文件夹,则在这种情况下技术上无需删除工作副本。在此方案中,操作顺序并不重要。

应该先删除本地分支的工作副本,还是通过存储库浏览器删除分支文件夹?

如果您正在删除的项目作为更大树的一部分进行检出-例如,您已经在一个地方检出了整个/branches文件夹-我建议通过Repo-browser删除,然后svn更新工作副本以删除该项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接