it-swarm.com.de

Möchten Sie Revisionen aus meinem SVN-Repository löschen?

Die letzten Revisionen in meinem Code-Repo sind beschädigt und haben meine App destabilisiert. Ich möchte auf eine frühere Version zurückgreifen.

Ich möchte jedoch nicht einfach "Zurücksetzen" für meine Arbeitskopie verwenden. Eigentlich möchte ich meine Head-Revision und mehrere Revisionen vor meinem Repo löschen und dadurch mein Repo auf eine frühere Revision zurücksetzen, die dann zur Head-Revision wird. Weiß jemand, wie ich das machen würde?

33
Chris Barnhill

Vielleicht hilft Ihnen dieser Link:

http://www.sampablokuper.com/2009/03/27/svn-revert-to-revision/

Zitat:

  1. Wechseln Sie in das oberste Verzeichnis Ihrer Arbeitskopie (vorausgesetzt, Sie möchten die gesamte Arbeitskopie zurücksetzen).

  2. führen Sie svn revert aus, um die Dateien Ihrer Arbeitskopie auf den Zustand zurückzusetzen, in dem sie sich beim letzten Festschreiben/Auschecken befanden.

  3. führen Sie svn status -v aus, um festzustellen, welcher Revisionsnummer Ihre Arbeitskopie jetzt entspricht (dies ist die höchste Revisionsnummer in der Liste, die svn status -v erstellt).

  4. führen Sie svn merge -rXX:YY aus, wobei XX die Nummer ist, die Sie im vorherigen Schritt erhalten haben, und YY die Nummer der Revision, zu der Sie zurückkehren möchten.

  5. Erledigt! Die mögliche Ausnahme ist, dass Dateien in Ihrer Arbeitskopie, die bei der ursprünglichen Erstellung der Revision YY nicht vorhanden waren, weiterhin vorhanden sind, da svn standardmäßig keine Elemente entfernt. Wenn Sie sie entfernen möchten, führen Sie auf jedem einen svn del [filename] aus.

  6. Gut gemacht! Spielen Sie jetzt mit Ihrer Arbeitskopie, als ob all diese Zwischenbearbeitungen noch nie stattgefunden hätten. Und wenn Sie bereit sind, Ihre Anstrengungen zu unternehmen, verwenden Sie einfach wie gewohnt svn commit!

12
Felix

Das hat bei mir funktioniert. Vorausgesetzt, Sie haben die Revision 1234 als HEAD und möchten die letzten drei Commits wiederherstellen:

svnadmin create newrepo
svnadmin dump -r 0:1231 repo | svnadmin load newrepo
mv repo oldrepo
mv newrepo repo
71
martin

Ich weiß, dass dies eine alte Frage ist, aber ich habe gerade herausgefunden, wie man dies mit Windows/TortoiseSVN macht.

Ein Kommentar schlägt vor, dass Sie eine Revision nicht "löschen" können. Sie können jedoch eine aktuellere Revision erstellen, die der Revision entspricht, zu der Sie zurückkehren möchten.

  1. Überprüfen Sie das HEAD des Repositorys für das Verzeichnis, aus dem Sie die Revision wiederherstellen möchten.
  2. Laden Sie die Ansicht "Protokoll anzeigen" in TortoiseSVN für das Verzeichnis der höchsten Ebene, das Sie wiederherstellen möchten (z. B. "Trunk").
  3. Klicken Sie mit der rechten Maustaste auf die Version, die Sie entfernen möchten. HINWEIS: Dies ist die Version, die Sie entfernen möchten, und nicht die Version, zu der Sie zurückkehren möchten.
  4. Wählen Sie "Änderungen aus dieser Revision zurücksetzen".
  5. Klicken Sie bei der Eingabeaufforderung auf "Ja".
  6. Aktualisieren Sie die Kasse wie gewohnt, aber auf "HEAD".
  7. Übernehmen Sie es zurück.

Sie müssen dann zu allen anderen Benutzern gehen, die es ausgecheckt haben, und sie zum Aktualisieren auffordern und sicherstellen, dass alle neuen Dateien entfernt werden.

Außerdem müssen Sie sicherstellen, dass jeder weiß, was diese Revision war, und möglicherweise die Beschreibung aktualisieren.

5
Martin

Zu diesem Zweck können Sie dump/load verwenden.

Sie können auch svnsync verwenden, um eine Sicherungskopie einer Revision zu erstellen.

Wenn Sie ein großes Repository haben, dauert es einige Zeit.

4

Bei mir (VisualSVN, 30-HEAD) funktioniert das:

 del C:\Repositorys\MyRepo\revs\0\30 
 del C:\Repositorys\MyRepo\revs\0\29 
 del C:\Repositorys\MyRepo\revs\0\28 
 Del C:\Repositories\MyRepo\revprops\0\30 
 Del C:\Repositories\MyRepo\revprops\0\29 
 Del C:\Repositories\MyRepo\revprops\0\28 
 Echo 27> C:\Repositorys\MyRepo\db\current 
 
3
Anton Golikhoff

Gehen Sie zum Terminal und navigieren Sie zum SVN-Repository: Geben Sie nun Folgendes ein

svn update -r "Versionsnummer, die Sie wiederherstellen möchten"

0
Mohd Ikram