本文介绍了在没有 generaldelta 的情况下重新克隆 mercurial 存储库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在面向 Internet 的机器上执行 hg 克隆,以便以后在离线构建机器上使用.不幸的是,mercurial 在互联网机器上是 3.9.1,但在离线机器上是 1.4.

I'm trying to do a hg clone on an Internet facing machine for later use on an offline build machine. Unfortunately mercurial is 3.9.1 on the Internet machine, but 1.4 on the offline machine.

我收到错误 abort:requirement 'generaldelta' not supported! 以及 abort: requirements 'dotencode' not supported!

我发现这是因为在 1.9 中添加了 generaldelta 功能,在 1.7 中添加了 dotencode.我已使用 MissingRequirement wiki 页面 中的说明使用以下内容降级此存储库.

I found this is becuase generaldelta feature was added in 1.9, and dotencode in 1.7. I've used instructions from the MissingRequirement wiki page to downgrade this repo using the following.

hg clone -U --config format.generaldelta=0 --config format.dotencode=0 --pull /tmp/foo /tmp/bar

然而,/tmp/bar 的新 repo 仍然使用 generaldelta,尽管 dotencode require 已经消失了.即

However the new repo at /tmp/bar still uses generaldelta, although dotencode require has gone. i.e.

cat /tmp/bar/.hg/requires

fncache
generaldelta  <=== still there
revlogv1
store

store

如何在禁用 generaldelta 和 dotencode 的情况下重写存储库?

How can I rewrite the repo with both generaldelta and dotencode disabled?

推荐答案

配置选项应该是 format.usegeneraldelta 而不是 format.generaldelta.即

The config option should have been format.usegeneraldelta not format.generaldelta. i.e.

hg clone -U --config format.usegeneraldelta=0 --config format.dotencode=0 --pull /tmp/foo /tmp/bar

注意配置.选项都是 config.use 除了 config.dotencodeMercurial 格式选项.当心,因为也没有任何错误检查.

Note the config. options are all config.use<feature-name> apart from config.dotencode see Mercurial format options. Beware as there is not any error checking either.

这篇关于在没有 generaldelta 的情况下重新克隆 mercurial 存储库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-10 16:25