5

我认为这可能是 SVN 故意不允许的,但我无法从搜索中得到明确的答案。

我想知道是否可以将 SVN 存储库中的路径移动到新位置,并以这样一种方式移动历史记录,即存储库的行为就像内容一直存在于这个新位置一样。svn rename/mv 的行为是将内容移动到当前和未来修订的新路径,但以前的修订仍然指向旧位置。

如前所述,我可以看到这从本质上破坏了存储库历史的有效性(并且需要重写以前的修订版),但它似乎也可能是其他用户一直在寻找的东西,因此可能是可能的。如果我理解正确,这可以通过 rebase 在 git 中实现。

更新:

看来,如果我使用 svnadmin dump 转储 repo 内容并使用 svndumpfilter 过滤到两个单独的转储中,然后将这些转储加载到不同的位置,则新位置仍将包含旧存储库路径中附加的任何前导路径。为了说明,如果我的仓库“/trunk/PathA”中有一条路径,并且我想将它移动到“/trunk/PathB”,并且我按照此处找到的方法进行移动,它看起来会进入“/主干/PathB/主干/PathA”。

4

1 回答 1

1

您可以在加载之前编辑转储文件以更改路径。这是一个执行此操作的 perl 脚本。SVN-DumpReloc

于 2012-10-18T18:09:36.250 回答