我需要在Windows中将SVN存储库从一台服务器移动到另一台服务器。诀窍是我想从嵌套存储库中的项目中排除除了主干,分支和标签之外的所有内容。
我目前有一个大型存储库,所有项目都在其中(MyBigRepo)。目前的结构是:
/Repositories/MyBigRepo/MyProject1/trunk
/Repositories/MyBigRepo/MyProject1/branches
/Repositories/MyBigRepo/MyProject1/tags
/Repositories/MyBigRepo/MyProject2/trunk
/Repositories/MyBigRepo/MyProject2/branches
/Repositories/MyBigRepo/MyProject2/tags
/Repositories/MyBigRepo/MyProject3/trunk
/Repositories/MyBigRepo/MyProject3/branches
/Repositories/MyBigRepo/MyProject3/tags
我只想移动MyProject1
,但我想排除主文件夹MyProject1
,只需移动MyProject1
中的主干,分支和标签库。我不想要移动MyProject2
或MyProject3
。换句话说,我的目标是形成类似于下面的新存储库。
/Repositories/NewRepo/trunk
/Repositories/NewRepo/branches
/Repositories/NewRepo/tags
这是我为完成工作而创建的批处理文件:
:: Create a dump of the old repo
svnadmin dump %OldRepoPath% > %MyBigRepoDumpFile%
:: Remove the other projects
svndumpfilter include "MyProject1" < %MyBigRepoDumpFile% > %MyProject1DumpFile%
:: Create a new repo
svnadmin create %NewRepoPath%
:: Load the dump into the new repo
svnadmin load %NewRepoPath% < %MyProject1DumpFile%
我的问题是批处理仍在%NewRepoPath%
下创建MyProject1目录,如下所示:
/Repositories/NewRepo/MyProject1/trunk
/Repositories/NewRepo/MyProject1/branches
/Repositories/NewRepo/MyProject1/tags
有没有办法从我的转储文件中排除额外级别(MyProject1)或将其向上移动一级,仍保留历史记录?
答案 0 :(得分:1)
我认为你最好的选择是“按原样”移动它(带有额外的级别),然后通过新存储库中的svn copy
重做结构。
还可以选择调整dumpfile as described here。
答案 1 :(得分:0)
您可以运行两次svndumpfilter: