svn转储->通过Windows Powershell重命名路径->与格式错误的转储文件头作斗争

标签 svn powershell windows-7 tortoisesvn dump

标题说明了一切 :)
我想要的是从一个项目中转储一个文件夹并将其存储到另一个项目中。两个文件夹(src:proj1/trunk/supplies,dest:extlibs/trunk)都在同一个存储库中。我的问题是,当我加载“正常”转储文件时,前一个文件夹的路径被保留并将在新位置(extlibs/trunk/proj1/trunk/supplies)重新创建。所以我尝试使用win7 powershell手动更改路径:

svnrdump dump https://localghost/svn/test_repo/proj1/trunk/supplies |           \ 
% {$_ -replace "Node-path: proj1", "Node-path: extlibs"} |                      \
% {$_ -replace "Node-path: extlibs/trunk/supplies", "Node-path: extlibs/trunk"}|\
Out-File foo.dmp

或者,我也使用了这个命令行:
svnadmin dump <local svn dir> | svndumpfilter include proj1/trunk/supplies | \ 
% {$_ -replace "Node-path: proj1", "Node-path: extlibs"} |                   \
% {$_ -replace "Node-path: extlibs/trunk/supplies","Node-path: extlibs/trunk}|\
Out-File foo.dmp

但是,当我使用 svnadmin load 或 svnrdump load 上传路径修改的转储文件时,我收到“格式错误的转储文件头”错误。如果我手动更改路径,我会收到 MD5 校验和错误。我真的很困惑如何更改 powershell 的输出以使转储负载工作。我试过了
.. | Out-File -Enc UTF foo.dmp
.. | Out-File -Enc ASCII foo.dmp

你们中有人知道如何更改转储文件的文件夹路径吗?我的方法是正确的还是有更好的方法来更改 repo 路径?

我知道那里有一些工具,但我现在不能使用它们。为了更深入地了解,我必须“手动”执行此操作,但似乎我想得太复杂了。

感谢您的帮助和时间。我希望你们中的一个人知道如何解决这个问题。

最佳答案

  • 不得手动更改转储文件
  • 您**必须*使用 svndumpfilter倾倒后
  • 为了从转储中更改文件夹的“挂载点”,您 必须使用 --parent-dir svnadmin load 中的选项

  • 阅读此处,关于 SO,主题 SVN: how to merge tags from separate projects和(链接答案)Using svndumpfilter to extract a folder in it's own repository博文

    关于svn转储->通过Windows Powershell重命名路径->与格式错误的转储文件头作斗争,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23613782/

    相关文章:

    git - 使用快速导入/导出流的 SVN 到 Git

    Microsoft Office 中的 SVN 修订版

    svn - 无法提交到 SVN - CHECKOUT 只能在版本资源上执行 [此时]

    powershell - 在带参数的脚本中导入函数

    regex - 使用 Powershell 打印出与 RegEx 匹配的代码行号

    powershell - 通过Powershell运行远程进程

    windows-7 - Windows 7批处理文件: How to check if parameter has been passed to batch file

    c# - 如何从 Windows 7 中的 C# 检测应用程序中是否包含 UI 元素?

    svn - 从 SVN 存储库创建 'stable' 版本

    windows-7 - 配置 MySQL 失败,服务未启动 (Windows 7)