2010-01-27 7 views
6

Wenn ich Code in das Subversion-Repository meiner Firma eintrage, muss ich oft mehrere Dateien einchecken. Oft möchte ich sie separat einchecken (committen), weil ich gerne gruppiere ähnliche Dateien zusammen.Eine Revision von TortoiseSVN löschen

Standardmäßig öffnet TortoiseSVN das Dialogfenster Commit mit allen ausgewählten Dateien. Wenn ich nur ein paar dieser Dateien committen möchte, muss ich alle abwählen, die ich nicht festlegen will, meine Kommentare/Notizen hinzufügen und dann das Commit durchführen.

Ab und zu vergesse ich aus Versehen "alle abwählen" und ziehe alle Dateien ein. Wenn es nicht meine Absicht wäre, alle Dateien zu übernehmen, würde ich gerne glauben, dass ich in der Lage sein würde, die Revision zu löschen und neu zu beginnen. Denken Sie daran, ich möchte die Dateien nicht von der Revision löschen, ich möchte nur, dass diese Revision nicht existiert hat.

Nehmen wir an, das versehentliche Commit führte zum Einchecken von 12 Dateien, und die Revision war die Revisionsnummer 9651. Wenn ich statt 12 Dateien in 2 Dateien einchecken wollte, würde ich diese Revision gerne löschen 2 Dateien richtig.

Von dem was ich sehen kann, ist eine Option "Änderungen von Revision 9651 rückgängig zu machen". Aber was das tut, ist, dass es 9651 im Repository behält und den Code in den vorherigen Zustand zurücksetzt. Das bedeutet im Wesentlichen, dass Sie die Änderungen, die Sie gerade vorgenommen haben, verlieren. Sie könnten dann "Auf Artikelversion 9651 aktualisieren" und dann den Festschreibungsprozess wiederholen.

Aber gibt es eine andere Möglichkeit, dies zu tun, eine Möglichkeit, die Revision aus dem Repository zu löschen und vermeiden, den betroffenen Code zurücksetzen zu müssen?

+0

Dies löst nicht wirklich mein Problem, eine Revision löschen/entfernen zu wollen, aber ich habe etwas gefunden, das helfen würde, in das beschriebene Szenario zu geraten. Ich habe die Einstellungen in TortoiseSVN überprüft und festgestellt, dass es eine Option gibt, die Objekte im Dialogfenster Commit nicht automatisch auswählen zu lassen. Auf diese Weise müsste ich manuell die Elemente auswählen, die ich festschreiben möchte, was das Problem, das ich hatte, fast vollständig eliminieren würde. Bei Interesse können Sie die Einstellungen über das Startmenü unter: TortoiseSVN> Einstellungen aufrufen. Allgemein> Dialoge 2> Commit: Elemente automatisch auswählen – Lawrence

Antwort

1

IMHO ist der beste Ansatz, dies zu umgehen, es zu vermeiden. Besser, Sie gewöhnen sich daran, nur an einer Sache gleichzeitig zu arbeiten, sie zu kompilieren, zu testen/zu debuggen und wenn es funktioniert, alle Änderungen sofort zu übernehmen. So können Sie alle geänderten Dateien einchecken und meistens nur einen Kommentar zu SVN eingeben. Beginne nicht mit dem nächsten Mikro-Feature, bis du deine Arbeit übernommen hast, wann immer es möglich ist. Das Teilen nur von Teilen erhöht die Chance, dass jemand nach einem Update einen Build-Break bekommt, also tu das nicht!

0

Ich empfehle, Changesets zu verwenden, um zuerst geänderte Dateien zu gruppieren und sie dann zu committen (zumindest bei Verwendung von SmartSVN). Leider funktioniert das nicht, wenn Dateien so geändert wurden, dass einige Zeilen in diesem Changeset/Commit gespeichert werden sollten, andere Zeilen in einem anderen.

+0

Ich bevorzuge mehrere Arbeitskopien und stelle sicher, dass jede Arbeitskopie nur für eine Sache verwendet wird – Andy

Verwandte Themen