Auf die Formatierung des Codes kommt es an. Auch Einrückungen sind wichtig . Und Konsistenz ist wichtiger als kleine Verbesserungen. In der Regel verfügen Projekte jedoch nicht über einen klaren, vollständigen, überprüfbaren und erzwungenen Styleguide ab dem ersten Tag, und wichtige Verbesserungen können jeden Tag eintreten. Vielleicht findest du das
SELECT id, name, address
FROM persons JOIN addresses ON persons.id = addresses.person_id;
könnte besser geschrieben sein als
SELECT persons.id,
persons.name,
addresses.address
FROM persons
JOIN addresses ON persons.id = addresses.person_id;
während Sie daran arbeiten, der Abfrage weitere Spalten hinzuzufügen. Vielleicht ist dies die komplexeste aller vier Abfragen in Ihrem Code oder eine triviale Abfrage unter Tausenden. Egal wie schwierig der Übergang ist, Sie entscheiden, dass er sich lohnt. Aber wie verfolgen Sie Codeänderungen über wichtige Formatierungsänderungen hinweg? Sie können einfach aufgeben und sagen, "Dies ist der Punkt, an dem wir von vorne beginnen", oder Sie können alle Abfragen im gesamten Repository-Verlauf neu formatieren.
Wenn Sie ein verteiltes Versionskontrollsystem wie Git verwenden, können Sie zum allerersten Commit zurückkehren und Ihren Weg von dort zum aktuellen Status neu formatieren. Aber es ist eine Menge Arbeit, und alle anderen müssten die Arbeit unterbrechen (oder auf die Mutter aller Verschmelzungen vorbereitet sein), während sie weitergeht. Gibt es eine bessere Möglichkeit, die Geschichte zu ändern, die die besten Ergebnisse liefert?
- Gleicher Stil in allen Commits
- Minimale Zusammenführungsarbeit
?
Zur Verdeutlichung geht es hier nicht um bewährte Methoden beim Starten des Projekts, sondern darum, was zu tun ist, wenn ein umfangreiches Refactoring als eine gute Sache erachtet wurde, Sie aber dennoch eine nachvollziehbare Historie wünschen? Das Umschreiben von Verlaufsdaten ist immer dann von Vorteil, wenn nur so sichergestellt werden kann, dass Ihre Versionen immer gleich funktionieren. Was ist jedoch mit den Entwicklervorteilen eines sauberen Umschreibens? Vor allem, wenn Sie Möglichkeiten (Tests, Syntaxdefinitionen oder eine identische Binärdatei nach dem Kompilieren) haben, um sicherzustellen, dass die neu geschriebene Version genauso funktioniert wie das Original?