TortoiseHg更改默认.hg文件夹位置

时间:2011-06-28 09:36:40

标签: windows-7 mercurial tortoisehg

是否建议将默认的.hg文件夹位置更改为中央位置?而不是将.hg文件夹存储在工作目录下。由于我不小心移位了工作目录并丢失了所有提交历史记录。

有没有办法更改TortoiseHg中的默认.hg文件夹位置?

或者有关备份回购的任何建议?怎么样?

2 个答案:

答案 0 :(得分:5)

AFAIK,无法更改.hg文件夹的位置。存在.hg文件夹表示给定文件夹是HG存储库 即使可以将.hg文件夹本身移动到另一个位置,仍然需要在您的工作文件夹中存在您的实际.hg文件夹所在的一些信息。因此,如果您不小心删除了您的工作文件夹,您也将失去真正的.hg文件夹的路径。同样的问题: - )

在像HG这样的分布式版本控制系统中,备份回购很容易 在某个地方制作克隆(在网络中经常备份的服务器上,或者如果你在家,使用Bitbucket帐户)并定期推送。

答案 1 :(得分:5)

我可以想到两种可能的解决方案,一种是我推荐的,一种是我不推荐的。

建议的解决方案依赖于具有硬链接的文件系统。创建新项目时,可以将.hg目录移动到文件系统上的其他位置,并在工作目录中设置它的硬链接。然后你基本上有两个文件系统引用到同一个.hg目录,所以如果你删除一个它仍然存在。

我在游戏PC上做了类似的事情,将所有存档游戏存储在单个\ savegame目录的子目录中。

然而,一个更好的解决方案,以及我 明确推荐的解决方案如下:

有一个目录(例如C:\HG),其中包含所有“基础”存储库。这些不是工作存储库,并且没有“null”以外的工作目录。创建新项目时,第一步是在此基础区域中创建一个新的空存储库:

hg init C:\HG\myNewProject

除了备份之外,您现在不需要触摸该存储库(我使用SkyDrive)。

然后,在您完成所有工作的地方,您将创建该存储库的克隆:

cd C:\WhereIWork\Projects
hg clone C:\HG\myNewProject myNewProject

创建克隆会自动在您的工作存储库和C:\HG中的存储库之间创建一个链接:您应该定期提交和推送您所做的任何工作。

而且你有它 - 一个你永远不需要触摸的备份,除非你意外删除你的工作目录并需要重新克隆。