将存储库移动到svn中的另一个子目录

将存储库移动到svn中的另一个子目录,svn,repository,svnadmin,Svn,Repository,Svnadmin,首先,我会说svndumpfilter失败(使用此解决方案:)我得到了错误: At line:1 char:30 + svndumpfilter include \trunk < E:\tmp\test1.dump > E:\tmp\test1filter.dump + ~ The '<' operator is reserved for future use. + CategoryInfo :

首先,我会说svndumpfilter失败(使用此解决方案:)我得到了错误:

At line:1 char:30
+ svndumpfilter include \trunk < E:\tmp\test1.dump > E:\tmp\test1filter.dump
+                              ~
The '<' operator is reserved for future use.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : RedirectionNotSupported
其中3个项目是为同一家公司设计的,所以我想这样移动它们:

RootDir -
     project1
     project2
     companyX -
         project3
         project5
         project6
     project4
即,我想将多个存储库移动到一个主存储库中作为子文件夹驻留。

存储库位于windows server 2012中,我使用远程桌面在其上运行svn命令提示符

我没有主意了

注意:这解决了一个与问题所要解决的问题不同的问题,问题实际上是询问如何将一组存储库移动到另一个存储库的子目录中。 看起来您是在同一个存储库中移动项目,而不是在不同的存储库之间移动。如果是这种情况,那么我认为您只需要使用使用两个URL参数的
svnmv
命令。例如,
svn mv——父母http://example.com/RootDir/project3 http://example.com/RootDir/companyX/project3 -m“整合公司X项目”
。如果中间目录不存在,“--parents”选项将创建该目录。

  • svnadmin不能从存储库中仅转储子树,也不能使用到此子树的逻辑路径
svnadmin dump path_to_RootDir\project3>temp\u path_in_disk\dump\u file.dmp

将转储整个存储库,您必须从中使用
svndumpfilter include
项目(3 | 5 | 6)
提取到一个公共转储中。但是,您可以使用
svnrdump dump URL
在一个命令中转储子树,并在不进行预筛选的情况下获得3个文件

  • 如果加载转储,则必须使用
    svnadmin load
    命令
  • 加载时,您必须使用存储库根目录的物理路径,而不是存储库内的逻辑路径:
svnadmin将路径加载到\u RootDir

  • 如果要更改从fump还原的数据的装入点,必须使用load子命令的
    --parent dir
    选项

svnadmin load--父目录companyX path\u到\u RootDir

问题在于Windows Server 2012的Windows PowerShell

我下载并使用了它而不是Windowsshell

“”中建议的解决方案成功了


出于我的需要,我甚至不需要svndumpfilter部分。

第二个命令应该是
svnadmin load
,而不是
svnadmin dump
这实际上看起来像是在同一个存储库中移动项目,而不是将项目从一个存储库移动到另一个存储库,对吗?如果是这样的话,这不是“移动SVN存储库”问题的重复。输入错误,实际上我加载svnadmin只是为了方便
SVN mv--parents…
谢谢,补充了答案。svn书籍的某些版本不包含该选项的链接:-)我得到了这个错误“svn:E200007:源和目标URL似乎不指向同一个存储库。”这很愚蠢。我使用源代码:“my_site.com:8443/svn/test1/”和目标代码:“my_site.com:8443/svn/tests/mytest1”,在第一次尝试中,目标代码没有创建(我想知道mv命令是否会创建它),在第二次尝试中,我在executingOK之前创建了它,看起来它可能实际上是两个独立的存储库。您在问题中说“您的[存储库]中有几个项目”,但看起来您的服务器上实际上有几个存储库。SVN mv不会在存储库之间工作。@Ben-那么,用最简单的方式,什么会工作呢?感谢您的回答我尝试了“svnadmin dump>E:\tmp\test1.dmp>E:/tmp/test.dmp我得到了这个错误:“svnadmin:E205000:'my_site.com:8443/svn/test1/'是一个URL,它应该是本地路径”×评论只能编辑5分钟×评论只能编辑5分钟×评论只能编辑5分钟minutes@Clonimus-使用本地文件系统上存储库的物理路径进行转储和加载,而不是使用URLsI did
svnadmin dump E:\ServerFolders\Development\Repositories\test1>E:\tmp\test1.dmp
,并且工作正常,但是:
svnadmin load E:\ServerFolders\Development\Repositories\test2
给了我这个错误:
在第1行char:63+svnadmin load E:\ServerFolders\Development\Repositories\test2test2
本身功能齐全)-从未尝试过。尝试筛选转储(只保留需要的文件夹)和|或者用--parent dir@Lazy Badger加载它-谢谢,用parrent dir加载它是什么意思?如何工作,我从文档中不太了解。顺便说一句,test2是一个空存储库(只有文件夹结构-trunk、tags和branch)
RootDir -
     project1
     project2
     project3
     project4
     project5
     project6
RootDir -
     project1
     project2
     companyX -
         project3
         project5
         project6
     project4