我创建了一个名为“features”的SVN项目的分支,现在每次我试图更新该项目时,它都会带来一个名为“features”的文件夹,其中包含来自该分支的另一份项目的副本。
有没有办法彻底从仓库中删除该分支,以便不再出现这种情况?
我创建了一个名为“features”的SVN项目的分支,现在每次我试图更新该项目时,它都会带来一个名为“features”的文件夹,其中包含来自该分支的另一份项目的副本。
有没有办法彻底从仓库中删除该分支,以便不再出现这种情况?
可以的:使用svn rm
命令删除不需要的文件夹并提交更改。
为了避免将来出现这种情况,建议按照SVN项目的推荐布局进行操作:
/someproject/trunk
文件夹中(如果只想将一个项目放入存储库,则只需使用/trunk
)/someproject/branches/somebranch
/someproject/tags
下现在,当您检查工作副本时,请确保仅检查trunk
或某个单独的分支。 不要将所有分支都检出到一个包含所有分支的巨大工作副本中。1
1除非您知道自己在做什么,并且知道如何创建浅层工作副本。
对于使用TortoiseSVN的用户,您可以通过使用仓库浏览器(在上下文菜单中标记为“Repo-browser”)来完成此操作。
找到您想要删除的分支文件夹,右键单击它,然后选择“删除”。
输入您的提交消息,完成操作。
假设该分支不是外部分支或符号链接,则删除分支应该很简单:
svn rm branches/< mybranch >
svn ci -m "message"
如果您想在仓库中执行此操作并更新以将其从工作副本中移除,可以执行以下操作:
svn rm http://< myurl >/< myrepo >/branches/< mybranch >
然后运行:
svn update
svn rm -m message http://...
进行删除,无需进行更新操作。 - rymo您也可以直接在远程上删除分支。这样做后,下一次更新将从您的工作副本中删除它。
svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"
^
是远程URL的缩写,可以在'svn info'中看到。在Windows命令行中,双引号是必需的,因为^
是一个特殊字符。删除分支的命令如下:
svn delete -m "<你的消息>" <分支url>
如果您不希望获取/检出整个代码库,请在终端上执行以下命令:
1) 获取包含您的工作副本的目录的绝对路径
> pwd
2) 开始svn代码检出
> svn checkout <分支url> <从第1点获得的绝对路径>
以上步骤将获取分支文件夹内的文件,而不是整个文件夹。
svn
+ project1
+ trunk
+ src
+ etc...
+ branches
+ features
+ src
+ etc...
+ tags
+ project2
+ trunk
+ branches
+ tags
从工作副本:
svn rm branches/features
svn commit -m "删除过时的特性分支"