So erhalten Sie Hardlink -Klonen unter Windows
-
22-09-2019 - |
Frage
Ich habe eine Win7 X64 -Box -Laufschildkröte 1.0 x64 veröffentlicht. Über Tortoise zeigt, dass es 1,0 "mit Mercurial-1.5, Python-2.6.4, Pygtk-2.16.0, GTK-2.18.7" ist. Ich habe auch ActivePython 2.6 und Mercurial 1.5 x64 installiert (installiert über den Mercurial -Installateur von der 64-Bit-Installationsprogramm. Weder ein Klon mit harten Links auf meinem Windows -Box. Die Laufwerke auf meiner Box sind auch NTFs, die harte Links unterstützen.
In Deed, wenn ich den Python -Dolmetscher betreibe und eine Hard -Link -Erstellung über die Win32File -API durchführe, wird ein Link erfolgreich erstellt:
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
Wenn ich jedoch Quecksilber zum Klon verwende, bekomme ich nicht die gleichen Ergebnisse:
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
Hat jemand das Klonen an Windows, wobei Hardlinks verwendet wird, oder wird es nicht unterstützt? Mir ist aufgefallen, dass das TortoiseHg -Installateur mit einer Python 2.6 -Installation ausgestattet ist. Stellte auch fest, dass es sich um eine eigene HG -ausführbare Datei handelt (was ich auch ausprobiert und die gleichen Ergebnisse erzielte). Könnten die TortoiseHg- und Quecksilberinstallationen Probleme verursachen?
Lösung
Ja, Sie haben die Antwort erhalten: Die Hardlinking befindet sich im Repo (.hg), nicht im Arbeitsverzeichnis. Wenn Sie also einen Klon mit erstellen -U
Ihr Klon nimmt keinen zusätzlichen Diskspace auf. Ein Klon ohne Arbeitermännchen ist eine großartige Option auf der Serverseite und manchmal auch auf Desktops nützlich. Wenn Sie die -U vergessen, können Sie immer die Arbeit eines Repos loswerden hg update -r null
Welche Aktualisierung der Nullrevision, die das Hinzufügen von Dateien vorhat.