gpt4 book ai didi

export - 如何将最后几个补丁从 darcs-1 repo 转移到 darcs-2 一个(在别处转换)

转载 作者:行者123 更新时间:2023-12-02 01:30:39 28 4
gpt4 key购买 nike

我已经克隆了在 https://hackage.haskell.org/package/language-c-0.4.7作为上游 repo ,即:http://code.haskell.org/language-c .

我在其中做了一些修改和修复,并将它们记录为补丁。

但是后来我发现如果我想把它们发布到 http://hub.darcs.net ,我需要一个 darcs-2 repo 协议(protocol),以及最初的一个我用来克隆的竟然是一个darcs-1 repo。 (可以使用 darcs show repo 检查,如果是 darcs-1 repo,它不会打印 darcs-2。)此外,我还发现了一个 language-c 仓库看起来像上游 repo : http://hub.darcs.net/visq/language-c , 还有一些新鲜的变化那里。当然,它也是一个 darcs-2 存储库。

我可以转换为 darcs-2,但我读到它不是可重现,并且不能在结果之间交换补丁不同的转换运行。

导出我最后几个补丁的最简单方法是什么darcs-1 repo 并将它们应用到 darcs-2 repo (克隆 http://hub.darcs.net/visq/language-c )?

(关于http://code.haskell.org/language-chttp://hub.darcs.net/visq/language-c应该被认为是上游,见 https://mail.haskell.org/pipermail/haskell-cafe/2015-December/122545.html ,我希望尽快得到明确的答案。)

最佳答案

在实践中,可重现转换的情况比 darcs convert 提供的可怕警告更复杂 - 而且没有那么糟糕。

警告背后的主要问题是,如果两个存储库具有相同的补丁但顺序不同,您可能会得到不兼容的补丁。

如果您在同一存储库中连续两次重新运行转换,您将获得相同的结果。事实上,只要您在两个具有完全相同补丁的存储库上运行它,以相同的顺序,您就会得到相同的结果。

此外,转换实际上是“前缀关闭”:您可以有两个存储库,一个以与另一个相同的补丁开始,顺序相同,最后还有一些额外的补丁。然后转换这两个存储库将再次产生兼容的存储库。

因此在您的场景中,您需要做的主要事情是重现原始转换。

这很可能是从 code.haskell.org repo 中完成的,那里的补丁仍然按照当时的顺序排列——他们很少改变上游 repo 中的顺序,因为它通常只在有人抹掉补丁时才会发生。

因此,如果您重新获取 code.haskell.org 存储库,将您的补丁放入其中,然后进行转换,您可能会发现一切正常。然后,您可以获取新的 hub.darcs.net 存储库,将额外转换的补丁拉入其中,并检查它们看起来是否正常。为了安全起见,运行 darcs 检查

关于export - 如何将最后几个补丁从 darcs-1 repo 转移到 darcs-2 一个(在别处转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34384301/

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