gpt4 book ai didi

java - 修复 Mercurial 中移动文件之间的链接

转载 作者:行者123 更新时间:2023-11-29 06:17:45 25 4
gpt4 key购买 nike

在拥有这个 repo(最初是 SVN)的过程中,我不太擅长将文件链接放在一起。我已经两次更改 IDE,将项目拆分为 Netbeans 模块,并随着时间的推移对项目进行了 mavenized。大部分文件历史都丢失了,主要是因为在 mavenizing 期间我删除了整个主干,提交,复制到 maven 项目,然后提交。不完全是最好的主意,因为我后来发现所有历史都重置到那个点。它变得如此糟糕,以至于存储库统计程序毫无用处,因为它说我投资了 50,000 行代码而不是大约 8,000 行。

有没有办法修复所有损坏的文件历史记录?如果 Mercurial 做不到,我可以访问 SVN 和 Git

最佳答案

Hrm,当你进行删除和复制时,如果你刚刚完成 hg addremove --similarity 90 就没问题了,上面写着“删除所有已删除的内容,添加所有新的内容,如果它们之间的相似度达到 90%,则视为重命名。

现在机会已经过去,没有办法移动一个 w/o 重写您的存储库,这会使所有节点 ID(哈希)发生变化时在野外的所有克隆无效。如果没关系,并且您的历史基本上是线性的,那么您可能可以通过以下方式解决问题:

hg export --output "../patch-%n.patch" 0:tip  # exports every changeset to a patch file
cd ..
hg init newrepo
cd newrepo
hg import --similarity 90 ../patch*

这需要从您的第一次提交到最后一次提交的线性历史(不包括分支和其他头部等)将它们导出到补丁,创建一个新的空 repo,并使用重命名检测功能导入变更集。

这是一个非常激烈的行为,因此请确保它对您来说真的值得,并妥善保管您的旧存储库。

关于java - 修复 Mercurial 中移动文件之间的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4420500/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com