我创建了一个名为“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
You can also delete the branch on the remote directly. Having done that, the next update will remove it from your working copy.
svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"
The ^
is short for the URL of the remote, as seen in 'svn info'. The double quotes are necessary on Windows command line, because ^
is a special character.
This command will also work if you have never checked out the branch.
删除分支的命令如下:
svn delete -m "<你的消息>" <分支网址>
如果您不想获取/签出整个 repo,请在终端上执行以下命令:
1) 获取包含工作副本的目录的绝对路径
> pwd
2) 启动 svn code checkout
> svn checkout <branch url> <absolute path from point 1>
上述步骤将为您获取分支文件夹中的文件,而不是整个文件夹。
您可以像结帐中的任何其他文件夹一样删除功能文件夹,然后提交更改。
为了防止将来发生这种情况,我建议您遵循 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"