Mercurial->保留提交哈希的Git迁移

问题描述 投票:0回答:1

是否有任何现有工具能够在保留提交哈希的同时将Mercurial存储库导出到git存储库?

我知道hg-git或fast-export.git,但是它们使用新的哈希创建新的提交(似乎没有任何选项可以配置它)。我们在Bitbucket上托管了数百个Mercurial存储库,其中包含大量的挂钩,下载链接等,具体取决于确切的哈希值。能够保留哈希值将为我们节省更新所有外部资源所需的大量工作。

git mercurial bitbucket hg-git
1个回答
1
投票

不可能。

Git对象的哈希ID是基础对象数据的加密校验和。对于提交对象,它是字符串commit的加密校验和,一个空格,以十进制表示的其余数据的字节大小,ASCII NUL,然后是标头,日志消息文本,以及拖车。

[Mercurial提交的哈希ID是该提交的Mercurial数据的适当部分的密码校验和(Mercurial的数据结构不同,因此某些提交数据不参与校验和)。

今天,从某些已知数据构造特定哈希ID的唯一已知方法(就像您在Git提交中一样)是添加一个“垃圾”数据区域,然后花费很多CPU年来计算哈希值中具有不同内容的哈希值。垃圾数据。创建shattered的团队使用110年的GPU计算时间来查找one重复的哈希ID。

© www.soinside.com 2019 - 2024. All rights reserved.