SVN将单个目录移动到另一个存储库(带历史记录)

时间:2010-02-25 20:42:54

标签: svn tortoisesvn repository subdirectory svnadmin

相关问题:Moving repository trunk to another’s branch (with history)


我知道可以转储带有历史记录的完整 SVN存储库,并使用以下命令将其加载到目标存储库的用户定义(子)目录中:

// in source repo
> svnadmin dump . > mydumpfilename

// in destination repo (backslashes because I'm using Windows)
> svnadmin load . < mydumpfilename --parent-dir some\sub\directory

但是这会将完整的存储库导入目标存储库的子目录。我想要的是在源存储库中定义应该导出的子目录。类似于svnadmin dump . --source-path old\sub\dir > mydumpfilename

我怎样才能实现这一目标?如果TortoiseSVN可以这样做,请说出来;)


解决方案:感谢Tim Henigan的回答,这是正确的方法:

// execute in destination repo
svndumpfilter include source\sub\dir < mydumpfilename | svnadmin load . --parent-dir destination\sub\dir

希望这也有助于其他人......

2 个答案:

答案 0 :(得分:20)

svndumpfilter上查看Repository Maintenance和此部分。

一旦有了整个旧存储库的转储文件,就可以使用svndumpfilter来提取所需的部分。

我不知道如何用TortoiseSVN做到这一点。

答案 1 :(得分:0)

派对有点晚了,但是......如果您使用TortoiseSVN提取了两个存储库的本地副本,您实际上可以通过右键单击目录(或文件)将目录从一个目录复制到另一个目录从Repo1并将其拖动到Repo2。当您释放鼠标时,您将获得以下选项列表:

enter image description here

&#34; SVN在此处导出版本化项目&#34;将(递归)复制历史记录。