Subversion - 将文件夹移动到另一个已存在的存储库

时间:2011-01-24 15:22:54

标签: svn repository svnadmin svndumpfilter

我有以下SVN结构:

  • ExistingRepository1

    • ...
    • MyFolder文件
      • FolderToMove
      • ...
  • ExistingRepository2

    • ...
    • AnotherFolder
      • FolderToMove< - 搬到这里
      • ...

所以我已经读过这个问题:How do I move a single folder from one Subversion repository to another repository? 但在我的情况下,ExistingRepository2已经存在。 那我该怎么办呢?我希望在新项目中进行所有修订。

我在ExistingRepository1 -> MyFolder -> FolderToMove中有修订号1000,但在ExistingRepository1中已经有一个编号为1000的修订版。那么,svn load会做什么?它会自动移动修订号吗?

这些是命令:

svnadmin dump /svn/ExistingRepository1 > ./repository.dump
svndumpfilter include MyFolder/FolderToMove --drop-empty-revs --renumber-revs --preserve-revprops < ./repository.dump > ./folderToMove_only.dump
svnadmin load /svn/ExistingRepository2 < ./folderToMove_only.dump

提前感谢您的帮助,最诚挚的问候,蒂姆。

1 个答案:

答案 0 :(得分:5)

Here是声称已在现有存储库中移动目录的人(有一些博客评论表明成功)。显然它会在目标存储库中创建整个路径,但我想一旦目录在目标存储库中,您可以轻松地将其移动到您想要的位置(同时保持其历史记录)。

<强> [编辑]

我成功测试了这个。以下是我使用的命令:

svnadmin dump /path/to/source/repo | svndumpfilter --drop-empty-revs --renumber-revs include /folder/to/transfer/ > dumpfile
svnadmin load /path/to/destination/repo < dumpfile

然后我移动了传输的文件(使用TortoiseSVN的Repo-browser)。