2014-02-13 4 views
11

Ich muss mit einem hg-Repository arbeiten, das Millionen von Codezeilen und Hunderttausende von Changesets enthält. Wie Sie sich vorstellen können, verlangsamt dies wirklich Mercurial und TortoiseHg.Kann ich nur die letzten Changesets eines Repository anstelle des gesamten Verlaufs klonen?

Kann ich ein lokales Repository erstellen, das nur die letzten paar tausend Changesets enthält?

Nicht nur würde dies hoffentlich die Dinge schneller laufen lassen, aber es könnte mir auch etwas Festplattenspeicher sparen.

Antwort

5

Nein, Sie können nicht. Das nennt man "Shallow Clone" und es wird nicht implementiert/unterstützt. Millionen von Codezeilen und Tausende von Changesets sind nicht besonders groß, und sobald Sie es einmal geklont haben, sollte fast jede Aktion nahezu sofort erfolgen.

Außerdem sind die komprimierten binären Deltas im Verzeichnis .hg normalerweise kleiner als die Gesamtheit des unkomprimierten Codes im Arbeitsverzeichnis, daher sollte auch die Platzeinsparung nicht wesentlich sein.

Sobald Sie den Repo einmal geklont haben, stellen Sie sicher, dass weitere Klone auf demselben Computer von Ihrem lokalen Klon ausgeführt werden, und Sie nie auf den gesamten Repo warten müssen, um erneut zu klonen.

6

Es scheint, dass Facebook veröffentlicht eine Erweiterung, die dieses Problem lösen soll.

Siehe https://bitbucket.org/facebook/remotefilelog

+0

Dies wurde nun in Facebooks [hg-ext] (https://bitbucket.org/facebook/hg-experimental/) Repository zusammengeführt. Stand vom 12.02.2017 'remotefilelog' ist noch nicht in der README aufgelistet, aber es gibt eine gute Dokumentation in der README im Verzeichnis' remotefilelog' im Quellcode. – Yitz

Verwandte Themen