Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何svn转储特定文件夹并将其加载到特定位置_Svn_Tortoisesvn_Svnadmin - Fatal编程技术网

如何svn转储特定文件夹并将其加载到特定位置

如何svn转储特定文件夹并将其加载到特定位置,svn,tortoisesvn,svnadmin,Svn,Tortoisesvn,Svnadmin,故事是这样的,我有以下svn回购协议- Fruit - Banana - trunk - Mango Vegetables - Potato - trunk - Mango - trunk 事实证明,我们在芒果项目中一直使用错误的回购协议(蔬菜),我们在水果回购协议中有一个现有的芒果文件夹。所以我的任务是把蔬菜\芒果\树干做成水果\芒果。这是我的尝试- // I dump the vegetables repo svnadmin dump C:\Repos\Vege

故事是这样的,我有以下svn回购协议-

Fruit
 - Banana
   - trunk
 - Mango

Vegetables
 - Potato
   - trunk
 - Mango
   - trunk
事实证明,我们在芒果项目中一直使用错误的回购协议(蔬菜),我们在水果回购协议中有一个现有的芒果文件夹。所以我的任务是把蔬菜\芒果\树干做成水果\芒果。这是我的尝试-

// I dump the vegetables repo
svnadmin dump C:\Repos\Vegetables > Vegetables.dump 

// I then filter the dump to only include Mango/trunk
svndumpfilter --drop-empty-revs --renumber-revs include Mango/trunk < Vegetables.dump > Mango-trunk.dump

// Finally, I load the filtered dump file into the Fruit/Mango
svnadmin load C:\Repos\Fruit --parent-dir Mango < Mango-trunk.dump
这显然是假设,但它反映了我现在面临的问题。我不知道如何在没有父目录的情况下单独迁移主干文件夹。我甚至试图根据我对文件系统的错误假设对过滤后的转储文件进行转储过滤,但没有效果。我需要执行该确切任务的提示,建议的替代方案对我没有帮助,谢谢。

SVN手册提供了如何将顶级目录移动到自己的存储库中的详细说明,您应该能够根据自己的情况进行调整

基本过程是在使用
svnadmin load
加载转储文件之前手动编辑转储文件。首先,从转储文件的
节点路径
节点复制路径
标题中删除前导的
Mango/
。然后,删除转储文件中创建
Mango
目录的部分。它看起来像这样:

Node-path: Mango
Node-action: add
Node-kind: dir
Content-length: 0
但请注意以下几点:

警告

如果计划手动编辑转储文件以删除顶级目录,请确保编辑器未设置为自动将行尾字符转换为本机格式(例如,
\r\n
\n
),因为内容将与元数据不一致。这将使转储文件无用

现在可以加载转储文件了

Node-path: Mango
Node-action: add
Node-kind: dir
Content-length: 0