How do I dump one project out of an SVN repository which contains multiple projects?

[亡魂溺海] 提交于 2019-11-26 19:11:40

问题


I am working with an SVN repository with many projects. I need to move a few of the projects out of that repository into individual repositories, one for each project, keeping the history.

I've been able to use svnadmin dump to dump the entire repository and svnadmin load it into another repository, but I can't find a way of dumping only one project from the original repository so I can load it into the new one. Is this possible? If so how?


回答1:


You can use the svndumpfilter utility to do this. The SVN book has a good explanation of how to do this.

For instance, one way would be:


$ svnadmin dump /path/to/repo 
     | svndumpfilter include /proj > dump-file
$ svnadmin create /new/proj/repo
$ svnadmin load --ignore-uuid /new/proj/repo < dump-file
$ svn rm file:///path/to/repo/proj



回答2:


Just an small addition to @Avi answer and @Kit comment.

If you use svndumpfilter, you may lose a commit that is necessary for loading the repository (source).

In my case:

cat dump | svndumpfilter --drop-empty-revs --renumber-revs include trunk/project > project.dump 
svnadmin load --ignore-uuid /opt/svn/newlocation < project.dump
<<< Started new transaction, based on original revision 1 
svnadmin: File not found: transaction '0-0', path 'trunk/project'

The solution was to commit an upper directory trunk first.



来源:https://stackoverflow.com/questions/337024/how-do-i-dump-one-project-out-of-an-svn-repository-which-contains-multiple-proje

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!