问题描述
我正在尝试在面向 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.dotencode
见 Mercurial 格式选项.当心,因为也没有任何错误检查.
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 存储库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!