2010-03-26 2 views
5

У меня есть окно Win7 x64 с версией Tortoise 1.0 x64. О Tortoise показывает, что он 1.0 "с Mercurial-1.5, Python-2.6.4, PyGTK-2.16.0, GTK-2.18.7". Я также установил ActivePython 2.6 и Mercurial 1.5 x64 (установлен через установщик Mercurial с the 64-bit installer. Ни один из них не был клонирован с жесткими ссылками на моем окне. Приводы на моем ящике также являются файловой системой NTFS, которая поддерживает жесткие ссылки.Как получить hardling cloning на Windows

на деле, когда я запускать интерпретатор питона и выполнить создание жесткой ссылки с помощью win32file апите, он создает ссылку успешно:

[email protected] C:\temp 
> python 
ActivePython 2.6.2.2 (ActiveState Software Inc.) based on 
Python 2.6.2 (r262:71600, Apr 21 2009, 15:05:37) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from win32file import * 
>>> CreateHardLink('C:\\temp\\Mike2.txt','C:\\temp\\Mike.txt') 
>>> ^Z 

[email protected] C:\temp 
> fsutil hardlink list Mike.txt 
\temp\Mike.txt 
\temp\Mike2.txt 

Однако, если я использую Mercurial клонировать, я не получаю те же результаты :

[email protected] C:\Users\mcaron 
> which hg 
C:\Program Files (x86)\Mercurial\\hg.EXE 
[email protected] C:\temp 
> hg status demo 
[email protected] C:\temp 
> hg log demo 
changeset: 0:6db7092740d5 
tag:   tip 
user:  Michael Caron <[email protected]> 
date:  Wed Mar 24 16:08:38 2010 -0500 
summary:  first 

[email protected] C:\temp 
> hg clone demo demo2 
updating to branch default 
5 files updated, 0 files merged, 0 files removed, 0 files unresolved 
[email protected] C:\temp 
> fsutil hardlink list .\demo\mike.prtprp 
\temp\demo\mike.prtprp 
[email protected] C:\temp 
> fsutil hardlink list .\demo\mike1.prtprp 
\temp\demo\mike1.prtprp 
[email protected] C:\temp 
> fsutil hardlink list .\demo\mike1_2.prtprp 
\temp\demo\mike1_2.prtprp 
[email protected] C:\temp 
> fsutil hardlink list .\demo\mike2.prtprp 
\temp\demo\mike2.prtprp 

[email protected] C:\temp 
> hg --version 
Mercurial Distributed SCM (version 1.5) 

Copyright (C) 2005-2010 Matt Mackall <[email protected]> and others 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
[email protected] C:\temp 
> python -V 
Python 2.6.2 

У кого-то есть клонирование, работающее в Windows с использованием жестких ссылок или оно не поддерживается? Я заметил, что инсталлятор TortoiseHg поставляется с установкой Python 2.6. Также заметил, что у него есть собственный Hg-исполняемый файл (который я также пробовал и получал те же результаты). Могут ли установки TortoiseHg и Mercurial создавать проблемы?

+0

Может ли быть также, что репо должно быть определенного размера до того, как используется клонирование жесткой ссылки? –

+0

Нет, нет чеков для размера. – tonfa

+2

ответил здесь: http://kiln.stackexchange.com/questions/986/how-to-get-hardlink-cloning-on-windows – tonfa

ответ

9

Да, у вас есть ответ: hardlinking находится в репо (.hg), а не в рабочем каталоге. Таким образом, если вы создаете клон с -U, ваш клон не занимает дополнительного дискового пространства. Не работает рабочий клон - отличный вариант на стороне сервера, а иногда и полезен на настольных компьютерах. Если вы забудете -U, вы всегда можете избавиться от рабочего каталога репо с hg update -r null, который обновляет нулевую ревизию, которая предшествует добавлению любых файлов.