Pergunta

Eu tenho uma caixa Win7 x64 executando a versão Tortoise 1.0 x64.Sobre o Tortoise revela que é 1.0 "com Mercurial-1.5, Python-2.6.4, PyGTK-2.16.0, GTK-2.18.7".Também tenho o ActivePython 2.6 e o ​​Mercurial 1.5 x64 instalados (instalados através do instalador do Mercurial em o instalador de 64 bits.Nenhum clone com Hard Links na minha caixa do Windows.As unidades da minha caixa também são NTFS, que suporta links físicos.

Na verdade, quando executo o interpretador python e executo a criação de um link físico por meio da API win32file, ele cria um link com sucesso:

me@pc 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

me@pc C:\temp
> fsutil hardlink list Mike.txt
\temp\Mike.txt
\temp\Mike2.txt

No entanto, se eu usar o Mercurial para clonar, não obtenho os mesmos resultados:

me@pc C:\Users\mcaron
> which hg
C:\Program Files (x86)\Mercurial\\hg.EXE
me@pc C:\temp
> hg status demo
mcaron@DEV-MCARON-W64 C:\temp
> hg log demo
changeset:   0:6db7092740d5
tag:         tip
user:        Michael Caron <mcaron@solidworks.com>
date:        Wed Mar 24 16:08:38 2010 -0500
summary:     first

me@pc C:\temp
> hg clone demo demo2
updating to branch default
5 files updated, 0 files merged, 0 files removed, 0 files unresolved
me@pc C:\temp
> fsutil hardlink list .\demo\mike.prtprp
\temp\demo\mike.prtprp
me@pc4 C:\temp
> fsutil hardlink list .\demo\mike1.prtprp
\temp\demo\mike1.prtprp
me@pc C:\temp
> fsutil hardlink list .\demo\mike1_2.prtprp
\temp\demo\mike1_2.prtprp
mme@pc C:\temp
> fsutil hardlink list .\demo\mike2.prtprp
\temp\demo\mike2.prtprp

me@pc4 C:\temp
> hg --version
Mercurial Distributed SCM (version 1.5)

Copyright (C) 2005-2010 Matt Mackall <mpm@selenic.com> 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.
me@pc C:\temp
> python -V
Python 2.6.2

Alguém tem clonagem funcionando no Windows com hardlinks em uso ou não é compatível?Percebi que o instalador do TortoiseHg vem com uma instalação do Python 2.6.Notei também que ele possui seu próprio executável Hg (que também tentei e obtive os mesmos resultados).As instalações do TortoiseHg e do Mercurial poderiam estar causando problemas?

Foi útil?

Solução

Sim, você tem a resposta:o hardlinking está no repositório (.hg), não no diretório de trabalho.Assim, se você criar um clone com -U seu clone não ocupa espaço adicional em disco.Um clone de diretório não funcional é uma ótima opção no lado do servidor e, às vezes, útil também em desktops.Se você esquecer o -U, você sempre poderá se livrar do diretório de trabalho de um repositório com hg update -r null que atualiza para a revisão nula, que antecede a adição de quaisquer arquivos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top