2010-12-04 8 views
0

Also jemand in unserem Team benutzte TortoiseSVN und machte in fünf Minuten (ohne Kommentare, natürlich) zehn Verpflichtungen, nach denen unsere Software funktioniert nicht mehr ordnungsgemäß. Der Rest von uns machte Befehle in der Befehlszeile, und es traten keine Probleme auf. Ich denke, er tat Dinge, die er nicht wusste, und jetzt haben wir eine Gruppe von Problemen, die wir nicht lösen können. Es funktionierte perfekt bei r29, und wenn man seine lokale Kopie auf r29 zurücksetzt, verhält sich die Software wie erwartet. Ich werde jetzt nicht alle Details beschreiben, die wir versucht haben, um dieses Problem zu lösen, aber wir haben es bis jetzt versäumt, r29 auf eine neue Version zu übertragen. Alle Befehle zum Zurücksetzen scheinen bei der Erstellung einer NEUEN Version nicht zu funktionieren, und die Unterstützung scheint bei größeren Änderungen des Dateisystems nicht relevant zu sein.Masterversion in GC/SVN auf eine frühe Version zurücksetzen (dh schlechte Versionen entfernen und neu starten)

Also können Sie mir sagen, wie man eine alte Version auscheckt und es als die neueste Version festschreibt?

Antwort

2

Sie können durch die Durchführung dieses merge-Befehl in einem sauberen Arbeitsverzeichnis r29 zurück (mit keine Dateien geändert):

svn merge -rHEAD:29 . 
svn commit -m'rolling back to -r29.' 

Das bedeutet, "erstellen Sie einen Patch, der durch den Unterschied zwischen HEAD (späteste) und -r29 gebildet wird, und wenden Sie diesen Patch hier an." Dadurch werden alle seit -r29 durchgeführten Änderungen wirksam rückgängig gemacht.

2

Sie sollten in der Lage sein, r29 an einen Ort auf Ihrem lokalen Rechner zu exportieren und die Hauptversion an einen anderen Ort zu checken, alle Dateien im Kopf mit r29 zu überschreiben und sie dann zu committen. Es ist ein bisschen hacky, aber es sollte funktionieren.

Auch könnte Sie in der Lage sein, einen Reverse-merge zu tun ...

+2

Reverse Merge ist genau dafür gedacht, mit dieser Situation umzugehen. – Dialecticus

2

die chapter on undoing changes im Buch Versionskontrolle mit Subversion

Siehe

z Änderung 30 rückgängig zu machen: ist

svn merge -c -30 http://path/to/your/repo/trunk 

Was dies im Wesentlichen tut eine neue begehen, dass kehrt die Änderung von r30 zu erstellen. In Subversion gibt es kein Zurücksetzen, Geschichte bleibt immer erhalten (und das ist eine gute Sache, IMO)

Verwandte Themen