删除SVN分支
我创build了一个名为'features'的SVN项目的分支,现在每当我尝试更新所述项目时,都会带上一个features文件夹,其中包含分支中项目的另一个副本。 有没有办法从存储库中完全删除分支,这样就不会再发生了?
当然: svn rm
不需要的文件夹,并提交。
为了避免将来出现这种情况,我将按照SVN项目的build议布局进行操作:
- 把你的代码放在
/someproject/trunk
文件夹中(或者如果你只想把一个项目放到版本库里,就是/trunk
) - 创build分支为
/someproject/branches/somebranch
- 将标签放在
/someproject/tags
现在,当你签出一份工作副本,一定要只检查trunk
或某个单独的分支。 不要在一个包含所有分支的巨大的工作拷贝中检查一切。 1
1 除非你知道你在做什么,在这种情况下,你知道如何创build浅的工作副本。
假设这个分支不是外部或符号链接,删除分支应该是这样简单的:
svn rm branches/< mybranch > svn ci -m "message"
如果你想在存储库中这样做,然后更新从工作副本中删除它,你可以做一些事情:
svn rm http://< myurl >/< myrepo >/branches/< mybranch >
然后运行:
svn update
对于那些使用TortoiseSVN ,你可以通过使用Repository Browser(在上下文菜单中标记为“Repo-browser”)来实现。
find要删除的分支文件夹,右键单击它,然后select“删除”。
input你的提交信息,你就完成了。
您也可以直接删除远程分支。 完成之后,下一次更新将从您的工作副本中删除它。
svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"
^
是远程的URL的简称,如'svn info'所示。 双引号在Windows命令行上是必需的,因为^
是一个特殊字符。
如果您从未检出分支,此命令也可以工作。
您可以删除function文件夹就像其他任何在您的结帐,然后提交更改。
为了防止这种情况发生,我build议你按照SVN布局的命名约定。
在创build时为每个项目分配一个主干,分支,标签文件夹。
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 delete -m“<你的消息>”<分支url>
如果您不希望获取/签出整个回购,请在您的terminal上执行以下命令:
1)获取将包含您的工作副本的目录的绝对path
> pwd
2)启动svn代码结帐
> svn checkout <branch url> <从点1的绝对path>
上述步骤将获得分支文件夹内的文件,而不是整个文件夹。