我的工作区中有一个项目(没有主干和分支),需要创建当前版本的副本,以便在处理新功能时为此版本提供错误修复,如下所述:http://nedbatchelder.com/text/quicksvnbranch.html。在不影响存储库的主要结构和其他开发人员的机器上检出的项目的情况下,建议的方法是什么?
答案 0 :(得分:8)
如果在创建存储库时没有建立某种结构,则现在不能在不对现有用户产生影响的情况下这样做。存储库就像一个文件系统。您现在可以创建结构,但由于它涉及在项目存储的位置移动,因此需要用户从新位置签出,或使用切换选项更新现有签出以指向新位置。
你是怎么做到的?
1)使用svn mkdir在存储库中创建trunk和branches文件夹。您可以使用“创建文件夹”选项从SVN存储库视图中的Subclipse执行此操作。
2)然后,您需要将存储库根目录中的任何文件和文件夹移动到trunk文件夹,以便trunk现在是项目的根目录。我会使用命令行执行此操作:
$ svn mv url://host/repos/folder1 url://host/repos/trunk -m "Move folder1 to trunk"
$ svn mv url://host/repos/folder2 url://host/repos/trunk -m "Move folder2 to trunk"
$ svn mv url://host/repos/file1 url://host/repos/trunk -m "Move file1 to trunk"
完成后,存储库的根目录显示现在只包含主干和分支文件夹。
3)在Eclipse中现有的签出项目中,执行Team>开关。使用浏览按钮在对话框中选择trunk文件夹,然后单击OK。这将更新您的工作副本,使其指向新位置。
所有用户都需要执行第3步。
最后,您现在可以创建分支了。只需将trunk复制到branches文件夹即可创建分支。您可以使用Team>从Eclipse执行此操作创建分支
使用团队>切换到分支和主干之间来回切换。
使用团队>合并以将更改从主干合并到分支,反之亦然。
答案 1 :(得分:3)
Eclipse的Subversive插件允许您将项目作为多项目布局(trunk/branches/tags
文件夹结构)共享给svn。
如果您已经将项目提交到没有trunk/branches/tag
布局的svn,则必须先通过右键单击项目>断开项目与svn的连接。选择团队> 断开
系统会提示您删除或保留SVN元信息(.svn文件夹)
选择' 同时删除SVN元信息'与多个项目布局共享项目。 (这将清除您项目的现有svn历史记录,因此如果您希望保留原始副本及其svn日志,请先将项目及其.svn
文件夹复制到备份文件夹中)
项目断开连接后,请按照以下步骤将其作为多项目布局分享给svn: