将补丁应用于特定的 Mercurial 代码版本?

Apply patch to specific Mercurial code version?

我得到了一个在 Mercurial 中管理的软件的补丁(以 .diff 文件的形式)。补丁作者说是"based on [some UID]".

如何获取该UID对应的代码版本?我尝试使用 hg import filename.diff 将补丁应用于存储库中的最新代码,但出现了 "chunk failed" 个错误。

我也尝试了 hg clone -r [UID] 并遇到了 "invalid arguments" 错误。 我也尝试了 hg clone -r [repository] [UID] 并遇到了 "abort: unknown revision" 错误.

(FWIW 我问了补丁作者和软件邮件列表如何使用补丁,但没有得到回应。)

您本可以轻松地用谷歌搜索这个。去看看 hginit.com.

UID 是特定文件修订版的提交哈希。

hg clone -u revision url_of_repo

或者如果您已经克隆:

hg update --clean revision # --clean 将丢弃对文件的任何更改

hg import patch