2009-03-28 9 views
1

Lets sagen, ich habe die DateienWas sind in Subversion bewährte Methoden zum Ändern historischer Dateien?

helloworld.c 
helloworld.m 

Fünfzehn vor Änderungen jemand memroy in HelloWorld.c durchgesickert und dass es geschafft hat, es in mehrere Zweige zu machen. Ich möchte diese Version in der Geschichte in allen Zweigen korrigieren, in die sie gelangte.

Wie wirkt es sich aus, die Datei zurückzusetzen und zu versuchen, sie wieder einzuchecken? Offensichtlich ändert sich die 14 seitdem ich möchte nicht verlieren?

Update: Ich bin sicher, jemand hat dieses Problem konfrontiert und ich möchte wissen, was sie gefunden haben funktioniert für sie und warum.

Bin ich in der Annahme, dass die Art und Weise, wie Zweige und Stämme verwaltet werden, so dicht ist, dass ich die Datei in jedem Kontext besuchen müsste, in dem sie existiert?

Antwort

9

Warum möchten Sie die Geschichte korrigieren? Dieser Trick bringt Star Trek die ganze Zeit in Schwierigkeiten.

Besser noch, machen Sie die Änderung in einer aktuellen Version - oder die aktuelle Version - und begehen Sie es. Dann füge die Änderung in irgendwelche Zweige zusammen.

+0

Lustig und informativ ... – nxadm

+0

Es ist schwierig, mit William Shatner zu streiten ... aber finden Sie sich die Datei in vielen Kontexten besuchen? – ojblass

0

Sie können eine einzelne Version wiederherstellen. Es kann Konflikte geben, aber Sie können sie lösen.

Oder Sie können den Fehler in den aktuellen Dateien beheben und sie nur committen.

3

Sie möchten den Verlauf nicht ändern. Verlauf ist die Reihenfolge der Bearbeitungen, die die Datei durchlaufen hat - nicht etwas, an dem Sie manipulieren.

Aktualisieren Sie einfach den Kopf jedes Zweigs und des Stamms mit dem Speicherleckfix und seien Sie auf Ihrem Weg. Normalerweise ist es eine gute Idee, im neuen Commit zu referenzieren, dass Sie eine alte Änderung rückgängig machen. Zum Beispiel:

  1. Person führt Leck in r100
  2. -Team nimmt Änderungen in r101-r115
  3. Sie verpflichten r116 machen mit Commit-Nachricht: "r100 Zurückkehren aufgrund Speicherleck"

Gut Glück,

0

Selbst wenn Sie die Änderung auf dem Stamm zurückgesetzt werden die bereits erstellten Zweige haben das Problem in ihnen - Menschen müssten wieder mit Ihrem neuesten Zweig oder einfach das Update von der Tru zusammenführen nk zu ihren Filialen - was ich denke, könnte das Beste sein, wenn das Problem ein echtes Problem für alle von ihnen ist.

0

Sie müssen leider den Fix zu jedem Kopf hinzufügen. Obwohl ich sicher bin, dass es technisch eine Möglichkeit gibt, svnadmin dump und dumpfilter zu verwenden, um diesen Trick zu machen, wäre es ein zweifelhaftes Umschreiben des Verlaufs, um es gelinde auszudrücken und das Repository neu aufzubauen.

Das neueste tortoisesvn 1.6 hat eine wirklich gute Revisionsgrafik, mit der Sie herausfinden können, wo alle Änderungen hingegangen sind.

Verwandte Themen