2010-10-19 3 views

Antwort

13

Grundsätzlich können Sie nicht. Mercurial hat eine feste Regel, dass ein Changeset nur in einem Repository existieren kann, wenn jedes seiner Vorgänger-Changesets auch in diesem Repository existiert.

Sie können jedoch ein neues Repository erstellen, dessen Changesets einer Teilmenge der späteren Changesets in einem anderen Repository entsprechen. Sie werden jedoch nicht die gleichen Changesets sein, da sie unterschiedliche Hash-Node-IDs haben und alle Clones aus dem ursprünglichen Repo nicht mit dem neuen Repos funktionieren ("nicht verwandte Repositories").

Sie könnten versuchen, eine neue Repo erstellen nur einige der neueren Changesets in einem anderen Repo unter Verwendung eines Prozesses wie folgt reflektiert:

hg -R /path/to/bigrepo export 10:tip > latestchanges.patch 
hg init newsmallrepo 
hg -R newsmallrepo import < latestchanges.patch 

, dass nur die Differenzmengen 10 und später mit verschiedenen Hashes in neue Changesets nummeriert kopieren würde im neuen Repository. Es wird auch nicht sehr gut mit Merges funktionieren.

+0

Dies ist die Lösung. Ich habe nach diesen Befehlen gesucht und nicht gefunden. Danke Ry4an! –

11

Siehe die Erweiterung convert (im Lieferumfang von Mercurial enthalten). Ein einfaches Beispiel ist die folgende:

hg convert <src> <dest> --config convert.hg.startrev=<rev> 

Dies wird einen neuen, unabhängigen Repository erzeugen, die mit der Revision beginnt angegeben, Vorgeschichte fallen. Es wird auch Zusammenführungen verarbeiten. Alle Benutzer müssen die neue Version des Repositorys klonen, da sich alle Changeset-Hashes ändern.

Aktivieren Sie die Erweiterung, indem Sie das folgende mercurial.ini:

[extensions] 
convert = 

Run hg help convert für Optionen.

+0

unter ** Windows **, Hinzufügen/Erstellen von allem in *** 'C: \ Users \ \ mercurial.ini' * hat nicht funktioniert, aber ** Anpassung der vorhandenen **' C: \ Users \ \. hgrc' ** Datei hat den Trick :-) (hg 2.7.1) –

+0

Ich benutze Windows und Mercurial.ini. Beide werden funktionieren. Siehe [hgrc docs] (http://www.selenic.com/mercurial/hgrc.5.html). –

Verwandte Themen