当前位置:  开发笔记 > 编程语言 > 正文

SVN在现有存储库上创建trunk目录

如何解决《SVN在现有存储库上创建trunk目录》经验,为你挑选了2个好方法。

我正在开发一个没有trunk/branches/tags目录结构的项目 - 即.一切都在svn回购的根源.

我想创建一个trunk目录并在根目录中,并将根目录中的所有内容移动到新的trunk目录中.

做这个的最好方式是什么?

我考虑的第一件事是

svn mkdir trunk
(for each file or directory that is not called trunk: )
svn mv FILEorDIR trunk/

但这有效地删除了每个文件,然后再次添加.有没有更好的办法?

谢谢.



1> jxmallett..:

我有完全相同的问题,并通过浏览几个不同的页面(包括这一个)解决了它.这是我的解决方案:

注意:在开始之前,如果您打算使用svn switch以保留工作副本并避免再次检出存储库,则最好确保您的工作副本是最新的并且没有未提交的更改.

随着解决方案......

//REPO_URL = The URL for the repo on the SVN server.
//In my case it was https://IP_ADDRESS:PORT/svn/my_repo

//Make the trunk dir in the root of your SVN repo
svn mkdir REPO_URL/trunk -m "making trunk dir"

//Move everything from your root dir to your new trunk dir
svn move REPO_URL/A_FOLDER REPO_URL/trunk/A_FOLDER -m "moving folders to trunk"
svn move REPO_URL/ANOTHER_FOLDER REPO_URL/trunk/ANOTHER_FOLDER -m "blah"
svn move REPO_URL/A_FILE.TXT REPO_URL/trunk/A_FILE.TXT -m "moving files to trunk"
//Keep going until you've moved everything from your root dir to the trunk dir...

所以现在,在你的SVN服务器上,一切都在trunk文件夹中.甜!

但是我的回购是60GB并且在远程服务器上.我宁愿不再检查一下.svn switch将允许您将现有的工作副本指向新trunk目录,以便继续使用您拥有的副本.进入工作副本的根文件夹并运行svn switch REPO_URL/trunk --ignore-ancestry.在将所有文件从根目录移动到trunk目录后,应该说明修订在At revision X哪里X.而已!也许做一个SVN更新的好措施:)



2> Greg Hewgill..:

这与我过去的做法类似.您的解决方案实际上会复制每个文件,然后删除原始文件.由于Subversion实现副本的方式,因此保留了每个文件的历史记录.

执行此操作后,您可以使用指向新位置的现有结帐svn switch.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有