2012-04-11 6 views
32

Ich habe gerade ein mercurial Repo erstellt aus einem heterogenen Ökosystem anderer Repos erstellt. Bevor ich es meinen Mitarbeitern veröffentliche, möchte ich es so gut wie möglich säubern. Zu diesem Zweck würde ich gerne ein paar große alte Dateien aus dem Verlauf entfernen (so tun, als hätten sie nie existiert), so dass Repo kleiner sein wird.Wie entfernen Sie große Dateien aus dem Verlauf in Mercurial?

Ist dies mit Quecksilber möglich?

+8

Verstehen Sie nicht die "Off-Topic" enge Abstimmung; Diese Frage ist perfekt zum Thema. –

+0

@Graham, sagst du, du denkst, Software-Entwickler sollten Revisionskontrolle verwenden? Das ist verrückt reden ... – sage

Antwort

35

Überprüfen Sie die convert Erweiterung, insbesondere die --filemap Option.

aktiviert, indem Sie die folgenden mercurial.ini:

[extensions] 
convert = 

Karte von Dateien erstellen auszuschließen:

exclude path/to/file1 
exclude path/to/file2 

Dann die repo konvertieren:

hg convert srcrepo destrepo --filemap <map> 

Hinweis gibt a Fehler in Mercurial 2.1.1 verursacht einen Fehler mit dem obigen Befehl:

initializing destination destrepo repository 
abort: invalid mode ('r') or filename 

Fügen Sie einfach die Option --splicemap <nonexistent file> hinzu, um das Problem zu beheben.

+0

Danke für Ihre Antwort! Die Dokumentation für --filemap ist ziemlich knapp, hätten Sie einen Link, der es etwas ausführlicher erklärt? –

+0

@static_rtti, aktualisierte Antwort. –

+0

Wow, super! Vielen Dank. –