Subversion 存储库更新历史记录
我有一个旧的但非常重要的 Subversion 存储库,我还没有从通常的结构开始创建它:主干、分支、标签。 所以我这个存储库的所有文件都位于根目录中。
我知道如何创建新文件夹并将所有文件移动到 trunk 中,但如果我这样做,我将丢失项目 3 年的历史记录,因为“trunk”是一个新文件夹。 那么有没有解决方案可以将我的整个项目的历史记录从 root 移动到 trunk 文件夹?
谢谢!
I have an old but very important Subversion repository for which I haven't created form the start the usual structure: trunk, branches, tags. So all my files for this repository are residing in the root.
I know how to create the new folders and move all my files in trunk but if I do that I will lose my project's history for 3 years, since 'trunk' is a new folder. So is there a solution to move my entire project's history from root to the trunk folder?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
是的。 您可以使用 svnadmin dump 它将存储库以及历史记录转储到文件中。 然后,您可以使用 svnadmin load 将转储文件加载到 trunk 文件夹中。 完成后,从根目录删除文件。
转储文档: http://svnbook.red-bean.com/en/1.1 /re31.html
加载文档: http://svnbook.red-bean.com/en/1.0 /re36.html
Yes. You can use svnadmin dump which will dump the repository along with history to a file. You can then use svnadmin load to load the dump file into the trunk folder. Once that's done, delete the files from root.
Dump Doc: http://svnbook.red-bean.com/en/1.1/re31.html
Load Doc: http://svnbook.red-bean.com/en/1.0/re36.html
您可以使用
创建从存储库根目录 (^/) 到 trunk/ (^/trunk) 的副本,保留所有历史记录,包括根目录的历史记录。
之后,您可以在下一次提交时删除旧位置中的文件和子目录。
You can use
To create a copy from your repository root (^/) to trunk/ (^/trunk), keeping all your history, including that of the root directory.
After that you can remove the files and subdirectories in the old location in the next commit.
如果您使用 svn mv 文件,您将不会丢失历史记录。 历史将被保留。 因此,您可以使用 svnadmin load -parent-dir trunk 来重做您的存储库,但您需要对所有内容进行全新签出,因为您应该在新存储库中拥有一个新的 UUID。
You won't loose history if you use svn mv the files. The history will be maintained. So you could use the svnadmin load -parent-dir trunk to redo your repository, but you'll need to do fresh checkouts of everything, since you should have a new UUID in the new repository.
诚然,这不是一个理想的解决方案,但为什么不创建一个全新的存储库,其内容是旧存储库中的所有代码,但很好地格式化为主干等,保持旧存储库完全独立,但使其只读。
诚然,如果您需要了解某个项目的历史记录,那么必须记住,在日期 X 之前,您需要查看旧存储库而不是新存储库,这将是一件痛苦的事情。
Not an ideal solution admittedly, but why not create a whole new repository whose content is all of the code from the old repository but formatted nicely into trunk etc. keeping the old repository completely separate but making it read only.
This would admittedly be a pain to have to remember that before date X you need to look in the old repository rather than the new if you need to know the history of an item.