Использование жестких ссылок при клонировании репозитория Mercurial под Windows

Я использую Mercurial под Windows XP (с использованием дистрибутива TortoiseHg) и хочу использовать жесткие ссылки NTFS при клонировании репозитория. «Из коробки» Mercurial этого не делает. Я читал, что необходимо включить расширение python win32file. Пока мне не удалось выполнить эту работу (добавление записи win32file в раздел расширений в mercurial.ini, похоже, не работает). Есть простой способ включить его?


person Mike Thompson    schedule 07.08.2009    source источник
comment
Я не знаю ответа, но мне любопытно, чего вы пытаетесь достичь. Вы можете уточнить?   -  person Arkady    schedule 07.08.2009
comment
Я пытаюсь повысить производительность клонирования репозитория. Поскольку жесткие ссылки только увеличивают количество ссылок на файл, клонирование репозитория становится довольно дешевой операцией с точки зрения дискового пространства и времени создания.   -  person Mike Thompson    schedule 07.08.2009
comment
@ Майк Томпсон: Ты потерял меня там. Если вы используете жесткие ссылки для клонирования репозиториев, то изменение одного из файлов в одном репо повлияет и на все другие репозитории !? В чем подвох?   -  person utku_karatas    schedule 07.08.2009
comment
@utku_karatas: Mercurial обрабатывает это автоматически. Он выполняет жесткие ссылки, и когда ему нужно изменить файл, если счетчик ссылок для этого индексного дескриптора больше 1, он делает копию. Таким образом вы сэкономите место до тех пор, пока не внесете изменения.   -  person Ry4an Brase    schedule 09.09.2009


Ответы (1)


Я думаю, вам нужно установить полный Python и использовать исходный код Mercurial. Хотя скомпилированная с помощью py2exe установка Mercurial от TortiseHG может нормально загружать ртутные расширения, я понимаю, что она не позволит вам менять основные модули Python.

person Ry4an Brase    schedule 07.08.2009
comment
Что вы имеете в виду под полным Python? Работает ли ActivePython, или нам нужно загрузить исходный код Python, собрать и установить таким образом? ActivePython поставляется с файлом win32file, и я вижу в этой библиотеке функцию CreateHardLink. - person Mike Caron; 24.03.2010
comment
Кроме того, UpgradeNotes в Mercurial wiki говорит: 0.7: Клонирование жестких ссылок Windows - Начиная с версии 0.7, клонирование жестких ссылок теперь поддерживается в Windows с NTFS и ActiveState Python. Поскольку старые версии не могут правильно определить количество ссылок файлов с жесткими ссылками, использование старых версий Mercurial в новом репозитории, содержащем жесткие ссылки, может быть опасным. Так что, если у вас версия ›0.7, все будет в порядке. - person Mike Caron; 24.03.2010