Wie viele Programmierer neige ich zu periodischen "Inspirationsanfällen", in denen ich plötzlich das Licht sehe und eine größere Operation an meinem Code durchführe. Normalerweise klappt das gut, aber es gibt Zeiten, in denen ich später feststelle, dass ich - aufgrund von Schlaf-/Koffeinmangel oder einfach einem unvollkommenen Verständnis des Problems - etwas sehr Dummes getan habe.
Der nächste Schritt ist dann, den Schaden rückgängig zu machen. Am einfachsten geht das mit dem Rückgängig-Stapel in meinem Editor es sei denn, ich habe die Datei irgendwann mal geschlossen. Die Versionskontrolle ist der nächste Schritt, aber wenn ich zwischen meinem letzten Commit (ich habe die Gewohnheit, keinen Code zu committen, der den Build kaputt macht) und dem Moment der Inspiration Änderungen vorgenommen habe, sind diese verloren. Sie waren nicht im Repository, also hat der Code nie existiert.
Ich würde meine Arbeitsumgebung gerne so einrichten, dass ich mir darüber keine Gedanken machen muss, aber ich habe noch nie eine völlig zufriedenstellende Lösung gefunden. Idealerweise:
- Jedes Mal, wenn ich eine Datei speichere, würde eine neue, wiederherstellbare Version erstellt werden.
- Diese "automatisch gespeicherten" Versionen werden das Haupt-Repository nicht überladen. (Die große Mehrheit von ihnen wäre völlig nutzlos; ich drücke mehrmals pro Minute Strg-S.)
- Die "automatisch gespeicherten" Versionen müssen lokal gespeichert werden, damit ich sie sehr schnell durchsehen kann. Ein Repository mit einer Bearbeitungszeit von 3 Sekunden reicht einfach nicht aus, wenn man schnell durch Hunderte von Revisionen blättern will.
Optionen, die ich in Betracht gezogen habe:
- Übertragen Sie einfach in das Haupt-Repository, bevor Sie eine große Änderung vornehmen, auch wenn der Code möglicherweise fehlerhaft ist. Nachteile: Wenn ich "inspiriert" bin, habe ich in der Regel nicht die Geistesgegenwart dafür; das macht den Build kaputt.
- Ein lokal gehostetes Subversion-Repository mit aktivierter automatischer Versionierung, gemountet als "Webordner". Nachteile: spielt nicht gut mit Arbeitskopien anderer Repositories zusammen; das Einbinden von richtigen WebDAV-Ordnern unter Windows ist bestenfalls mühsam.
- Wie bei der vorherigen Methode, aber ich verwende stattdessen einen Zweig im Hauptrepository und führe ihn zu trunk zusammen, wenn ich normalerweise manuell übertragen würde. Nachteile: nicht bei allen gehosteten Repositorys kann die automatische Versionskontrolle aktiviert werden; erfüllt nicht die Punkte 2 und 3 oben; kann nicht sicher von Stamm zu Zweig zurückmischen.
- Wechseln Sie zu einem DVCS und "kombinieren" Sie alle meine kleinen Commits beim Pushen. Nachteile: Ich weiß nicht das Geringste über DVCS; manchmal ist Subversion das einzige verfügbare Werkzeug; ich weiß nicht, wie ich Punkt 1 oben erfüllen kann.
- Speichern der Arbeitskopie in einem versionierten Dateisystem. Nachteile: Gibt es so etwas auch für Windows? Wenn ja, hat Google es versäumt, mir den Weg zu zeigen.
Kennt jemand ein Werkzeug oder eine Kombination von Werkzeugen, mit denen ich das erreichen kann, was ich will? Oder habe ich mich selbst mit widersprüchlichen Anforderungen konfrontiert? (Was ich ziemlich stark vermute.)
更新しました。 Nach einer genaueren Untersuchung der Tools habe ich bereits verwenden (seufz), stellt sich heraus, dass mein Texteditor hat eine sehr nette Mehrfachsicherungsfunktion, die meine Bedürfnisse nahezu perfekt erfüllt. Es bietet nicht nur die Möglichkeit, alle Sicherungen in einem "versteckten" Ordner zu speichern (der dann zu den globalen Ignorierungen für VCSes hinzugefügt werden kann), sondern erlaubt auch das Durchsuchen und sogar den Vergleich mit Sicherungen direkt im Editor.
Problem gelöst. Danke für den Rat, Leute!
0 Stimmen
Ich habe gerade bemerkt, dass Sie nicht erwähnt haben, welchen Editor Sie verwenden. Vielleicht gibt es eine elegantere Option in Ihrem Editor, auf die jemand hinweisen könnte.
0 Stimmen
EditPad Pro, das zwar über ein System für Mehrfachsicherungen verfügt, aber das Dateisystem mit den Sicherungen überfrachtet. Ich teste es jetzt, um zu sehen, wie gut es für mich funktioniert.