在没有 generaldelta 的情况下重新克隆 mercurial 存储库
Re-cloning a mercurial repository without generaldelta
我正在尝试在面向 Internet 的计算机上执行 hg clone
以供以后在离线构建计算机上使用。可惜mercurial在上网机上是3.9.1,离线机上是1.4
我收到错误 abort: requirement 'generaldelta' not supported!
以及 abort: requirement 'dotencode' not supported!
我发现这是因为在 1.9 中添加了 generaldelta 功能,在 1.7 中添加了 dotencode。我已经使用 MissingRequirement wiki page 中的说明使用以下内容降级此存储库。
hg clone -U --config format.generaldelta=0 --config format.dotencode=0 --pull /tmp/foo /tmp/bar
但是 /tmp/bar
的新仓库仍然使用 generaldelta
,尽管 dotencode
要求已经消失。即
cat /tmp/bar/.hg/requires
fncache
generaldelta <=== still there
revlogv1
store
store
如何在禁用 generaldelta 和 dotencode 的情况下重写 repo?
配置选项应该是 format.usegeneraldelta
而不是 format.generaldelta
。即
hg clone -U --config format.usegeneraldelta=0 --config format.dotencode=0 --pull /tmp/foo /tmp/bar
注意配置。选项都是 config.use<feature-name>
除了 config.dotencode
参见 Mercurial format options。当心,因为也没有任何错误检查。
我正在尝试在面向 Internet 的计算机上执行 hg clone
以供以后在离线构建计算机上使用。可惜mercurial在上网机上是3.9.1,离线机上是1.4
我收到错误 abort: requirement 'generaldelta' not supported!
以及 abort: requirement 'dotencode' not supported!
我发现这是因为在 1.9 中添加了 generaldelta 功能,在 1.7 中添加了 dotencode。我已经使用 MissingRequirement wiki page 中的说明使用以下内容降级此存储库。
hg clone -U --config format.generaldelta=0 --config format.dotencode=0 --pull /tmp/foo /tmp/bar
但是 /tmp/bar
的新仓库仍然使用 generaldelta
,尽管 dotencode
要求已经消失。即
cat /tmp/bar/.hg/requires
fncache
generaldelta <=== still there
revlogv1
store
store
如何在禁用 generaldelta 和 dotencode 的情况下重写 repo?
配置选项应该是 format.usegeneraldelta
而不是 format.generaldelta
。即
hg clone -U --config format.usegeneraldelta=0 --config format.dotencode=0 --pull /tmp/foo /tmp/bar
注意配置。选项都是 config.use<feature-name>
除了 config.dotencode
参见 Mercurial format options。当心,因为也没有任何错误检查。