如何在不丢失历史记录的情况下从 SVN 存储库中删除***目录?
Posted
技术标签:
【中文标题】如何在不丢失历史记录的情况下从 SVN 存储库中删除***目录?【英文标题】:How do I remove a top-level directory from an SVN repository without losing history? 【发布时间】:2011-06-21 17:38:01 【问题描述】:我有一个具有以下布局的 SVN 存储库:
trunk/somedir/a
/b
/[et cetera]
branches/branch1/somedir/a
/b
/[et cetera]
branches/branch2/somedir/a
/b
/c
整个存储库中有大约 60 个分支和大约 17000 个修订版本。不幸的是,本地惯例是将svn:mergeinfo
信息保留在somedir
目录中,而不是分支的根目录中。这在尝试使用 Fisheye 等解析工具以及git svn
和 hg convertextension 等迁移工具时造成了一些困难。
当然,我可以使用 svn move
并正确重新排序所有内容 - 但我真的很想在历史上这样做,以便转换工具更合理地工作。我是否必须为此编写自定义工具,或者有没有办法使用svnadmin
和svndumpfilter
来做到这一点?
【问题讨论】:
【参考方案1】:svn move 对历史没问题。但是分支之间的合并将变得困难。 (找出为什么移动和重命名在 svn 中有问题)。 我有类似的问题,我等到那一刻只有主干和重组的存储库结构。 合并信息(您可以将合并信息从 somedir 复制到主干。它只是 svn 属性。
我还没有尝试过 svnadmin 工具,如果你成功了,现在就告诉我:)
【讨论】:
不幸的是,我的仓库永远不会处于仅存在主干的状态;我们同时支持多个版本。太糟糕了!以上是关于如何在不丢失历史记录的情况下从 SVN 存储库中删除***目录?的主要内容,如果未能解决你的问题,请参考以下文章