Frage

Gibt es eine Möglichkeit ein von einem entfernten changeset zu entfernen oder eine ganze changeset zu entfernen? Ich schob accidentely eine .war Datei auf einem Remote-Repo und ich möchte es entfernen.

War es hilfreich?

Lösung 3

Ich benutzte hg mqueue Erweiterung Geschichte zu bearbeiten. Es scheint, dass es funktioniert. Vielen Dank an Alle.

Andere Tipps

Mercurial versucht sehr hart, um Ihre Daten sicher zu halten, so können Sie in der Regel nicht die Geschichte ändern.

Davon abgesehen, gibt es zahlreiche Erweiterungen für Mercurial, die Sie ganz einfach die Geschichte erlaubt sowieso zu ändern. Es gibt ein Seite im Wiki über das Bearbeiten Geschichte . Die Seite erklärt auch die Konsequenzen.

In Ihrem speziellen Fall müssen Sie sich fragen, ob andere haben gezogen bereits Ihre changeset? Wenn ja, dann, auch wenn Sie es entfernen, wird es noch in ihren Klonen existiert und man könnte besser sein, mit den Fehlern zu akzeptieren.

Wenn Sie sich entscheiden, es zu entfernen, ich schlage vor, mit hg clone eine Kopie ohne es zu bekommen. Dies ist der sichere Weg, da sie immer hinter einem Backup verlassen wird. Wenn Sie [z] zum Remote-Repository geschoben:

[x] --- [y] --- [z]

und wollen nun, es zu entfernen, dann melden Sie sich bei dem Server und tun

hg clone -r y repo repo-without-z

Dann wird repo-without-z alle changests bis [y] up enthalten - das heißt, [z] entfernt worden sind:

[x] --- [y]

Sie können dann weiter zu arbeiten und schieben eine neue changeset:

[x] --- [y] --- [w]

Wenn ich die [z] changeset bereits gezogen hatte und ziehen jetzt [w] werde ich zwei Köpfe im Repository finden Sie unter:

            [w]
           /
[x] --- [y] --- [z]

Dies ist nicht gefährlich für sich - aber die Leute könnten überrascht sein. Wenn ich [z] von meinem Klon entfernen werde ich mit dem gleichen Repository, wie Sie am Ende. Aber, wie oben geschrieben habe, könnte dies unpraktisch sein, wenn Sie viele Benutzer haben.

Sie können auch die MQ Erweiterung Streifen die changeset weg an Ort und Stelle. Auf diese Weise werden Sie nicht einen neuen Klon machen.

Schließlich, wenn Sie sicher sind, dass der Schub die allerletzte Operation auf dem Server durchgeführt wurde, dann kann hg rollback die letzte Transaktion entfernen verwendet werden. Aber dies nicht tun, wenn Sie der einzige sind, der in das Repository schieben kann, sonst könnte man wieder eine andere Transaktion Roll enden.

Wenn das Repository auf Bitbucket , dann können Sie nicht in den Server einloggen. Aber Bitbucket hinzugefügt vor kurzem einen Streifen Funktionalität auf seine Web-Interface. Suchen Sie nach "Repository-Management" im "Admin" Abschnitt.

Bitbucket tut bieten Ihnen ein Bündel (Backup) auf Strippen, und das bedeutet nicht zählen gegen Ihre Quote. Der Grund, warum es so zu tun scheint, ist nur, weil wir nicht die Cache-Schlüssel für ungültig erklärt angibt, wie viel Platz Sie verwenden.

Das ist ein Fehler in unserem System, und wird behoben werden. Bis dahin seien Sie versichert, dass die changeset entfernt wurde, und die Sicherung ist kostenlos: -)

Ich hatte einen ähnlichen Fall, wo ich eine fusionierte Zweig „A“ changeset von „Dev“ Zweig entfernen möchten remote TortoiseHg mit:

  1. Erstellen Zweig AA von Zweig A-Mutter Zweig; seine Herkunft.
  2. Merge A in AA (Arbeitsverzeichnis) und stellen Sie sicher, dass Option. „Alle Änderungen verwerfen von der anderen Revision“ aktiviert ist
  3. Merge AA in Dev Zweig (mit Commit-Nachricht wurden diesen Zweig A, die Änderungen entfernt).

Sie werden feststellen, dass Zweig A Änderungen sehen nicht mehr in Dev existieren werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top