是否可以将 .hg 目录保留在自定义位置

ken*_*der 6 mercurial repository

我想设置一个 Mercurial 存储库,但不是将.hg/目录放在存储库树下,而是希望将它从工作副本移到某个地方(如其他分区)。

有没有可能这样做?

Mar*_*ler 6

从 Mercurial 1.3 开始,您可以使用共享扩展来间接执行您想要的操作。首先通过添加以下内容来启用扩展~/.hgrc

[extensions]
share =
Run Code Online (Sandbox Code Playgroud)

然后在您希望.hg目录所在的分区上创建一个普通存储库:

$ cd /mnt/bigdisk
$ hg init foo
Run Code Online (Sandbox Code Playgroud)

转到您希望工作副本所在的位置并创建一个共享存储库:

$ cd ~/src
$ hg share /mnt/bigdisk/foo
Run Code Online (Sandbox Code Playgroud)

~/src/foo将为您创建一个存储库。此存储库将引用/mnt/bigdisk/foo存储库。中仍然会有一个.hg文件夹~/src/foo,但它几乎是空的,因此非常小。您像往常一样对共享存储库进行操作,但所有提交都直接转到/mnt/bigdisk/foo存储库。

共享扩展适用于 Mercurial 运行的所有平台(Windows、Mac OS X、Linux 等),因为“符号链接”是由 Mercurial 内部完成的,而不是通过文件系统完成的。


Mat*_*hen 3

没有办法完全做你想做的事。最接近的是有一个符号链接.hg指向真实的符号链接。请参阅此线程