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

有帮助吗?

解决方案

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

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

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

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

1除非您知道自己在做什么,在这种情况下您知道如何创建浅工作副本。

其他提示

假定这个分支不是外部或一个符号链接,除去分支应该是简单:

svn rm branches/< mybranch >

svn ci -m "message"

如果你想做到这一点的储存库更新,然后从你的工作中删除副本,你可以这样做:

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

然后运行:

svn update

有关使用 TortoiseSVN的,则可以通过使用资源库浏览器实现这一点的那些(它标记为“库浏览器”中的上下文菜单。)

“上下文菜单”

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

“删除文件夹”

输入你的提交信息,你就大功告成了。

“提交”

您也可以删除该分支上的远程直接。已经这样做了,下次更新将你的工作拷贝中删除。

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

^是短期的遥控器的URL,如在“SVN信息”看见。双引号是在Windows命令行必要的,因为^是一个特殊字符。

这个命令也将工作,如果你从来没有签出的分支。

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

要防止这种情况在未来我建议你遵循SVN布局的命名约定。

要么给每个项目一个树干,树枝,标签被创建时的文件夹。

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删除-m “<邮件>”<分支URL>

如果你想不获取/签出整个回购,您的终端执行以下命令:

1)获得目录的绝对路径,将包含你的工作拷贝结果 > PWD结果 2)启动SVN代码结账结果 > svn签<分支URL> <从点绝对路径1>

在上面的步骤将让你的分支文件夹内的文件,而不是整个文件夹。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top