Mercurial:在单独的目录中使用 .hg 目录和工作树跟踪回购

Mercurial: Track repo with .hg dir and work-tree in separate directories

我经常使用 this approach 在 git 中进行点文件管理,在那里我创建了一个裸 git 存储库“~/.dotfiles”,我们 $HOME 作为工作树。使用 shell 别名 config 然后我可以从主目录快速添加点文件(如 config addconfig commit

alias config='git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'

我想知道在 mercurial 中是否可以进行类似的设置。

您可以为此使用常规存储库[^bare] 并使用共享扩展克隆它。创建一个新的主目录作为一行:

hg --config extensions.share= share $HOME/.dotfiles $HOME

有关详细信息,请参阅 hg help share。有关如何忽略对未跟踪文件的更改的信息,请参阅 hg help hgignore

[^bare]:如果 .dotfiles 中没有文件对您很重要,那么 ~/.dotfiles 中只有 hg update null。这是存储库的根目录(在添加任何内容之前)。 Mercurial 不需要特殊的裸状态。