-
26-09-2019 - |
题
我创建了一个名为“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>
在上面的步骤将让你的分支文件夹内的文件,而不是整个文件夹。