2008-09-11 8 views
7

Ein Problem, das ich in eine Zeit lang lief zurück ...von einer sich erholenden Subversion-Repository heraus etwas veraltet Backup ausgecheckt habe ich nie eine gute Lösung für

Sagen Sie von Subversion auf Revision eine Arbeitskopie haben 7500 und Die Festplatte mit dem aktuellen Repository wird gelöscht. Sie haben eine Sicherung des Repositorys z. B. mit der Revision 7450. Es ist einfach, die Repository-Sicherung wiederherzustellen, aber jeder Versuch, die Arbeitskopie dagegen zu verwenden, gibt einen Fehler aus, der besagt, dass die Revision 7500 nicht im Repository vorhanden ist.

Was ist der beste Weg, um eine gigantische Revision einzuchecken, um den Inhalt des Repositorys dem Inhalt der Arbeitskopie anzupassen und die Arbeitskopie wieder in einen funktionsfähigen Zustand zu versetzen?

(Idealerweise hätte ich gerne etwas einfacheres, als eine brandneue Arbeitskopie auschecken und dann alle Dateien manuell kopieren zu müssen - ich glaube zu der Zeit, als die Arbeitskopien zur Konfiguration der Server verwendet wurden echte Schmerzen, um saubere Arbeitskopien zu haben)

+0

Sieht so aus, als hätte sich deine Einsendung verdoppelt, du könntest von dieser gefilmt werden! – ConroyP

Antwort

6

Sie könnten irgendwo eine rev.7450-Kopie auschecken und dann Ihre 7500-Kopie exportieren (um die .svn-Ordner zu entfernen). Ziehen Sie die exportierte Kopie (die neueste Kopie) über die 7450-Kopie. Alle neuen Dateien sollten einfach die älteren überschreiben, wobei die .svn-Ordner gleich bleiben.

Subversion wird vorausgesetzt, dass Sie nur ein paar Änderungen an 7450 gemacht, und die nächste checkin setzt sie als 7451.

5

Machen Sie einen neuen Checkout in einen anderen Ordner, dann verwenden Sie ein Diff-Programm, um einen Patch zu erstellen. Wenden Sie den Patch auf Ihre neue Arbeitskopie an.

1

Wenn Sie positiv sind Sie die aktuelle Version in Ihrem Verzeichnis haben, dann tun Sie dies:

  1. das Element aus dem
  2. löschen Sie die SVN-Referenzen aus Ihrer Kopie
  3. Repository löschen Sie den Code Check-in als neue Kopie.
  4. den Code Schauen Sie sich einfach in
  5. geprüft
1

Sie die fehlenden Revisionsnummern durch Laden in einer Dump-Datei mit einem Bündel von leeren Revisionen füllen. Es gibt Antworten zu diskutieren, wie dies bei How can I change the revision number of a repository zu tun. Laden Sie alle bis auf eine Revision auf diese Weise, dann können Sie alle Ihre Änderungen in einer letzten riesigen Revision einchecken.