当前位置:  开发笔记 > 编程语言 > 正文

如何在重命名SVN文件夹时将其拆分为自己的存储库?

如何解决《如何在重命名SVN文件夹时将其拆分为自己的存储库?》经验,为你挑选了3个好方法。

我想将目录从大型Subversion存储库拆分为自己的存储库,并将文件的历史记录保存在该目录中.

我尝试了常规方法

svnadmin dump /path/to/repo > largerepo.dump
cat largerepo.dump | svndumpfilter include my/directory >mydir.dump

但这不起作用,因为多年来已经移动和复制了目录,并且文件已经移入和移出存储库的其他部分.结果是很多这些:

svndumpfilter: Invalid copy source path '/some/old/path'

我尝试的下一件事是在/some/old/path它们出现时包含那些,并且在包含很长的文件和目录列表之后,svndumpfilter完成,但导入生成的转储不会产生与当前目录相同的文件.

那么,如何在保留历史记录的同时正确地从该存储库中拆分目录?

编辑:我特别想trunk/myproj成为一个新的存储库中的主干PLUS让新的存储库不包含其他任何旧的东西,即.任何人都不可能在拆分之前更新到旧版本并获取/查看文件.

我试过的svndumpfilter解决方案可以实现这一点,遗憾的是它不可行,因为路径/文件已被移动.ng的解决方案是不可接受的,因为它基本上是克隆+删除附加内容,这保留了所有历史记录,而不仅仅是相关的myproj历史记录.



1> 小智..:

我有一个类似的问题拆分存储库..

svndumpfilter: Invalid copy source path /dir/old_dir

我解决这个问题的方法是包括正在请求的其他旧目录,或者你知道你移动了.在我的情况下,我已将3个目录移动到另一个目录中.

例如.将文件夹A,B,C移动到文件夹D中

cat project.dump | svndumpfilter include A B C D > new.dump

这似乎解决了我的问题.我能够将文件夹D与Repo的其余部分分开.在另一方面,当排除DI没有得到错误时,我猜是因为删除D不需要链接/历史记录到A,B,C



2> auriarte..:

当svndumpfilter包含的目录/文件之一最初是从未包含的树的一部分复制或移动时,会发生此问题.

要解决此问题,请使用以下脚本:svndumpfilter3



3> Anthony O...:

我已经尝试过至少4个不同的应用程序来做到这一点,唯一真正有用的是使用 svndumpfilterIN:

cd /usr/local/bin/
sudo wget --no-check-certificate https://raw.github.com/jasperlee108/svndumpfilterIN/master/svndumpfilter.py
sudo chmod +x svndumpfilter.py
# To be sure nothing will happened on the original repo :
cp -au /path/to/repo /tmp/largerepo.repo/
svnadmin dump /path/to/repo > /tmp/largerepo.dump
svndumpfilter.py /tmp/largerepo.dump --repo=/tmp/largerepo.repo --output-dump=/tmp/mydir.dump include my/directory

这是我尝试过但没有奏效的内容:

http://furius.ca/pubcode/pub/conf/bin/svndumpfilter3.html(来自上一个回答)

包括在另一个先前的答案中所述的有问题的路径.问题:我仍然在目标转储中有我不想要的路径

svndumpsanitizer(我仍然有目标转储中不需要的路径)

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有