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

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

有没有可能这样做?

由于Mercurial 1.3,您可以使用共享扩展间接地做你想要的。 首先通过将以下内容添加到~/.hgrc来启用扩展:

 [extensions] share = 

然后在希望使用.hg目录的分区上创build一个正常的存储库:

 $ cd /mnt/bigdisk $ hg init foo 

去你想要的工作副本的地方,并创build一个共享的存储库:

 $ cd ~/src $ hg share /mnt/bigdisk/foo 

这会为你创build一个~/src/foo仓库。 这个仓库将会引用/mnt/bigdisk/foo仓库。 在~/src/foo仍然会有一个.hg文件夹,但它几乎是空的,因此非常小。 您可以像正常一样在共享资源库上进行操作,但所有提交都直接进入/mnt/bigdisk/foo存储库。

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

没有办法做到你想要的。 最接近的将是一个符号链接.hg指向真正的。 请看这个线程 。