我可以进行svn转储并重新租用目录吗?

我可以进行svn转储并重新租用目录吗?,svn,dump,svnadmin,Svn,Dump,Svnadmin,我正在移动SVN提供商,在这样做的过程中,我所有的回购协议都像https://www.provider1.com/myrepo1因此,我在该repo上进行了svn转储,在repo中,我的路径开始于trunk/src,trunk/lib,等等。但是,我的新提供商只给我一个URL,我可以将我的项目转储到这些URL中。因此,我需要重命名转储中的所有目录,为每个路径添加一个新的父目录,使其看起来像myrepo1/trunk/src,myrepo1/trunk/lib,等等。我意识到我可以在每个URL r

我正在移动SVN提供商,在这样做的过程中,我所有的回购协议都像
https://www.provider1.com/myrepo1
因此,我在该repo上进行了svn转储,在repo中,我的路径开始于
trunk/src
trunk/lib
,等等。但是,我的新提供商只给我一个URL,我可以将我的项目转储到这些URL中。因此,我需要重命名转储中的所有目录,为每个路径添加一个新的父目录,使其看起来像
myrepo1/trunk/src
myrepo1/trunk/lib
,等等。我意识到我可以在每个URL repo中创建一个新目录,并将文件夹移动到其中。但这并没有改变它的历史。那么,有没有一种方法可以使用svndumpfilter将此父级直接添加到转储文件中?如果没有,我该怎么办?

以下是我为使它工作所做的。毕竟我没有使用svndumpfilter。相反,我使用
svnadmin
创建了一个新的存储库,然后在新创建的svn repo中创建了一个父目录。然后使用
svnadmin load
加载转储,告诉它将该转储放在新的父目录下

首先下拉项目并创建该项目的转储:

svnadmin create project1
emacs repo/hooks/pre-revprop-change
chmod 755 project1/hooks/pre-revprop-change
svnsync init file://$(pwd)/project1 https://somehost.com/svn/project1
svnsync sync file://$(pwd)/project1
svnadmin dump project1 > some.dump
接下来创建一个新的svn项目,我们将为其加载转储到新的父目录中:

svnadmin create someDirectory
svn mkdir -m "Add root directory to project" file://$(pwd)/someDirectory/THE_PARENT_NAME
cat some.dump | svnadmin load --parent-dir THE_PARENT_NAME someDirectory
或者,您可以根据以下情况使用:

$ svnkitfilter OLD_ROOT_URL NEW_URL --prefix myrepo1