Wie kann ich ein Mercurial-Repository verkleinern, indem ich alte Changesets lösche?Entfernen von Changesets oder Schrumpfen eines Mercurial-Repositorys
Antwort
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.
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.
unter ** Windows **, Hinzufügen/Erstellen von allem in *** 'C: \ Users \
Ich benutze Windows und Mercurial.ini. Beide werden funktionieren. Siehe [hgrc docs] (http://www.selenic.com/mercurial/hgrc.5.html). –
- 1. Entfernen (oder Aktualisieren) eines Bildes von RichTextBox
- 2. TFS: Etiketten vs Changesets
- 3. Excel Drucken von Bildern schrumpfen
- 4. Flexbox schrumpfen
- 5. Wie TFS Changesets durchsuchen?
- 6. entfernen oder ausblenden Inhalt innerhalb eines iframe
- 7. Leinwand schrumpfen Alternative
- 8. Tastatur schrumpfen EditText
- 9. HBox Kind nicht schrumpfen
- 10. Android schrumpfen große Bildgröße
- 11. Automatisches Tag Changesets beim Commit oder Pushed in den Brennofen
- 12. Kann ich den Benutzernamen eines Mercurial-Changesets ändern?
- 13. Schrumpfen mit realloc
- 14. JavaFX - ScrollPane/VBox - Auto schrumpfen
- 15. Schrumpfen MP4 für Wordpress
- 16. Wie schrumpfen pg_toast Tabelle?
- 17. Entfernen oder Reduzieren von Materialprellen
- 18. UITextField kann nicht automatisch schrumpfen
- 19. Entfernen von Regelsätzen aus "Hinzufügen oder Entfernen von Regelsätzen"
- 20. MySQL-Datei wird nicht schrumpfen
- 21. Splitting oder Entfernen von Graphen nach arrangeGrob
- 22. flex-box: schrumpfen vor wrap
- 23. flex box Artikel Breite schrumpfen
- 24. Verbergen Changesets von Zusammenführungsdialogen in TFS 2008 (2010)?
- 25. JScrollpane muss seine Breite schrumpfen
- 26. Wie schrumpfen Polygone mit Postgis?
- 27. Ein Dreieck schrumpfen und drehen
- 28. VSTS Build RestAPI Abrufen von Changesets vom letzten erfolgreichen oder teilweise erfolgreichen Build
- 29. Wie kann ich eine Liste von Changesets (oder Workitems) abrufen, die zwischen den Builds eingecheckt wurden?
- 30. Ermitteln des 'aktiven' Changesets mit Mercurial?
Dies ist die Lösung. Ich habe nach diesen Befehlen gesucht und nicht gefunden. Danke Ry4an! –