分类: 项目管理
2012-03-25 13:21:47
Q:如何从svn版本库中导出一个目录到一个新的版本库中,并且保存原有的commit log?
A: 基本的步骤如下:
1.从sevenj中导出整个库的内容
sevenj$ svnadmin dump /var/svn/sevenj > sevenj.dump
2.从sevenj.dump文件中过滤出要导出的目录
sevenj$ cat sevenj.dump | svndumpfilter include /note/ > note.dump
3.把过滤后的文件重新导入到新库中
sevenj$ svnadmin load /var/svn/new –parent-dir note < note.dump
Other:
1.svndumpfilter在过滤的时候可以对版本号进行处理:
sevenj$ svmdumpfilter help include
usage: svndumpfilter include PATH_PREFIX…
Valid options:
–drop-empty-revs : Remove revisions emptied by filtering.
–renumber-revs : Renumber revisions left after filtering.
–skip-missing-merge-sources : Skip missing merge sources.
–targets ARG : Pass contents of file ARG as additional args
–preserve-revprops : Don’t filter revision properties.
–quiet : Do not display filtering statistics.
2.svn dump文件格式:
3. 主页上有很多关于subversion的额外的小工具。