我创建了一个名为'features'的SVN项目的分支,现在每当我尝试更新所述项目时,它都会带来一个features文件夹,其中包含该分支的另一个项目副本。有没有办法从存储库中完全删除分支,以便不再发生这种情况?
答案 0 :(得分:99)
当然:svn rm
不需要的文件夹,然后提交。
为避免将来出现这种情况,我会按照recommended layout进行SVN项目:
/someproject/trunk
文件夹(或只是
/trunk
如果你只想放一个
存储库中的项目)/someproject/branches/somebranch
/someproject/tags
现在,当您签出工作副本时,请务必仅查看trunk
或某个单独的分支。 不要在一个包含所有分支的大型工作副本中检查所有内容。 1
1 除非你知道自己在做什么,否则你知道如何创建浅工作副本。
答案 1 :(得分:54)
假设此分支不是外部分支或符号链接,则删除分支应该如下所示:
svn rm branches/< mybranch >
svn ci -m "message"
如果您想在存储库中执行此操作,请更新以将其从工作副本中删除,您可以执行以下操作:
svn rm http://< myurl >/< myrepo >/branches/< mybranch >
然后运行:
svn update
答案 2 :(得分:46)
对于使用TortoiseSVN的用户,您可以使用存储库浏览器(它在上下文菜单中标记为&#34; Repo-browser&#34;)来完成此操作。
找到要删除的分支文件夹,右键单击它,然后选择&#34;删除。&#34;
输入您的提交消息,您已完成。
答案 3 :(得分:8)
您也可以直接删除遥控器上的分支。完成后,下一次更新将从您的工作副本中删除它。
svn rm "^/reponame/branches/name_of_branch" -m "cleaning up old branch name_of_branch"
^
是遥控器网址的缩写,如'svn info'中所示。 Windows命令行中需要双引号,因为^
是一个特殊字符。
如果您从未签出分支,此命令也可以使用。
答案 4 :(得分:3)
您可以在结帐时删除功能文件夹,然后提交更改。
为了防止将来出现这种情况,我建议您遵循SVN布局的命名约定。
在创建每个项目时,为每个项目提供一个trunk,branches,tags文件夹。
svn
+ project1
+ trunk
+ src
+ etc...
+ branches
+ features
+ src
+ etc...
+ tags
+ project2
+ trunk
+ branches
+ tags
答案 5 :(得分:3)
从工作副本:
svn rm branches/features
svn commit -m "delete stale feature branch"
答案 6 :(得分:2)
删除分支的命令如下:
svn delete -m“&lt; your message&gt;” &lt; branch url&gt;
如果您不想获取/签出整个仓库,请在终端上执行以下命令:
1)获取包含工作副本的目录的绝对路径
&GT; PWD
2)启动svn代码签出
&GT; svn checkout&lt; branch url&gt; &lt;点1的绝对路径&gt;
以上步骤将为您提供分支文件夹内的文件,而不是整个文件夹。