Mercurial:在单独的目录中使用 .hg 目录和工作树跟踪回购
Mercurial: Track repo with .hg dir and work-tree in separate directories
我经常使用 this approach 在 git 中进行点文件管理,在那里我创建了一个裸 git 存储库“~/.dotfiles”,我们 $HOME
作为工作树。使用 shell 别名 config
然后我可以从主目录快速添加点文件(如 config add
、config 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 不需要特殊的裸状态。
我经常使用 this approach 在 git 中进行点文件管理,在那里我创建了一个裸 git 存储库“~/.dotfiles”,我们 $HOME
作为工作树。使用 shell 别名 config
然后我可以从主目录快速添加点文件(如 config add
、config 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 不需要特殊的裸状态。