2010-03-26 7 views
5

Tengo un cuadro Win7 x64 ejecutando la versión de Tortoise 1.0 x64. Acerca de Tortoise revela que es 1.0 "con Mercurial-1.5, Python-2.6.4, PyGTK-2.16.0, GTK-2.18.7". También tengo ActivePython 2.6 y 1.5 x64 instalado Mercurial (instalado a través de la instalación de Mercurial desde las the 64-bit installer. Ni un clon con enlaces duros en los que mi caja de ventanas. Las unidades en mi caja son también NTFS, que es compatible con los enlaces duros.Cómo obtener la clonación de enlace duro en Windows

de hecho, cuando corro el intérprete de Python y ejecutar una creación vínculo físico a través de la API win32file, se crea un enlace con éxito:

[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 

sin embargo, si uso Mercurial para clonar, no consigo los mismos resultados :

[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 

¿Alguien tiene una clonación trabajando en Windows con enlaces duros o no es compatible? Noté que el instalador de TortoiseHg viene con una instalación de Python 2.6. También noté que tiene su propio ejecutable Hg (que también he probado y obtengo los mismos resultados). ¿Podrían las instalaciones de TortoiseHg y Mercurial causar problemas?

+0

¿Podría ser también que un repositorio tiene que tener un tamaño determinado antes de utilizar la clonación de enlace físico? –

+0

no, no hay controles para el tamaño. – tonfa

+2

responde aquí: http://kiln.stackexchange.com/questions/986/how-to-get-hardlink-cloning-on-windows – tonfa

Respuesta

9

Sí, tienes la respuesta: el enlace duro está en el repositorio (.hg) no en el directorio de trabajo. Por lo tanto, si crea un clon con -U, su clon no ocupará espacio de disco adicional. Un clon no-working-dir es una gran opción en el lado del servidor, y algunas veces también es útil en los escritorios. Si olvida -U siempre puede deshacerse de un directorio de trabajo del repositorio con hg update -r null que se actualiza a la revisión nula, que es anterior a la adición de cualquier archivo.

Cuestiones relacionadas