【问题标题】:Using hardlinks when cloning a Mercurial repository under Windows在 Windows 下克隆 Mercurial 存储库时使用硬链接
【发布时间】:2009-08-07 02:17:22
【问题描述】:

我在 Windows XP 下使用 Mercurial(使用 TortoiseHg 发行版),我想在克隆存储库时使用 NTFS 硬链接。开箱即用的 Mercurial 不会这样做。我已经读到需要启用一个 win32file python 扩展。到目前为止,我一直未能成功完成这项工作(在 mercurial.ini 的扩展部分添加一个 win32file 条目似乎不起作用)。有没有简单的方法来启用它?

【问题讨论】:

  • 我不知道答案,但我很好奇您想要达到的目标。你能详细说明一下吗?
  • 我正在尝试提高克隆存储库的性能。由于硬链接只会增加文件的引用计数,因此就磁盘空间和创建时间而言,克隆存储库是一项相当便宜的操作。
  • @Mike Thompson:你把我弄丢了。如果您使用硬链接克隆存储库,那么对一个存储库中的一个文件的更改也会影响所有其他存储库!?有什么收获?
  • @utku_karatas:它由 mercurial 自动处理。它执行硬链接,当它需要更改文件时,如果该 inode 的链接计数大于 1,它就会进行复制。这样一来,您就可以在进行更改之前立即节省空间。

标签: windows mercurial hardlink


【解决方案1】:

我认为您需要安装完整的 Python 并使用 Mercurial 源安装。虽然 TortiseHG 的 py2exe 编译安装的 Mercurial 可以很好地加载 mercurial 扩展,但据我了解,它不会让您更换核心 python 模块。

【讨论】:

  • “完整的 Python”是什么意思? ActivePython 是否有效,或者我们是否需要下载 Python 源代码,以这种方式构建和安装? ActivePython 带有 win32file,我在该库中看到了 CreateHardLink 函数。
  • 此外,Mercurial wiki 上的 UpgradeNotes 说:“0.7:Windows 硬链接克隆 - 从 0.7 开始,Windows 上现在支持使用 NTFS 和 ActiveState Python 进行硬链接克隆。因为旧版本无法正确确定硬链接文件,在包含硬链接的新存储库上使用旧版本的 Mercurial 可能很危险。”所以如果一个版本> 0.7,应该没问题。
猜你喜欢
  • 2011-06-09
  • 2011-11-16
  • 2012-02-05
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
相关资源
最近更新 更多