将存储库转换为旧版本(没有稀疏的revlog)

tex*_*nic 5 mercurial

我们的团队正在使用Mercurial进行版本控制,而中央存储库位于共享的网络驱动器上(即,我们未使用服务器)。我们公司限制了我们可以在计算机上安装的内容,每个人的汞版本均为4.6。团队成员之一使用管理员权限,必须安装最新的TortoiseHg(4.9)。看来导致中央存储库被转换为最新版本。现在,另一个具有旧版Mercurial的团队成员无法从中央存储库中撤出。它说

存储库需要此Mercurial未知的功能:sparserevlog

我读了一些,似乎这个功能对我们来说并不重要。是否可以将中央存储库还原为版本而无需稀疏的revlog?

小智 9

对于4.9,默认情况下将使用创建新的存储库sparse-revlog。但是,现有存储库未更改。它们保持与创建时相同的格式。

避免在创建存储库时出现问题

为了防止升级到创建sparse-revlog存储库的用户,他需要在用户配置(hg config -e)中设置以下内容

[format]
sparse-revlog = no
Run Code Online (Sandbox Code Playgroud)

您对用户配置有全局控制权吗?

降级现有存储库

如果要降级此类新创建的存储库,请执行以下操作:

  1. 将以下内容添加到存储库配置(hg config -l
[format]
sparse-revlog = no
Run Code Online (Sandbox Code Playgroud)
  1. 运行hg debugupgraderepo --run(4.7或更高版本)

升级现有存储库

如果要升级现有的已创建存储库,则过程类似:

  1. 将以下内容添加到存储库配置(hg config -l
[format]
sparse-revlog = yes
Run Code Online (Sandbox Code Playgroud)
  1. 运行hg debugupgraderepo --run(4.7或更高版本)

注意:https ://www.selenic.com/mercurial/hgrc.5.html#format 页面已过时。关于Mercurial的网站已经存在https://www.mercurial-scm.org/了两年。