2008-10-02 11 views
7

Ein Mitarbeiter von mir bat mich, etwas von meinem Code zu überprüfen, und er schickte mir eine Diff-Datei. Ich bin nicht neu in Diffs oder Versionskontrolle im Allgemeinen, aber die Diff-Datei war sehr schwer zu lesen wegen der Änderungen, die er gemacht hat. Insbesondere verwendete er die Funktion "Methode extrahieren" und ordnete einige Methoden neu an. Konzeptionell, sehr einfach zu verstehen, aber mit Blick auf das diff, war es sehr schwer zu sagen, was er getan hatte. Es war viel einfacher für mich, die vorherige Version auszufüllen und die "Vergleich" -Funktion von Eclipse zu verwenden, aber sie war immer noch ziemlich klobig.Refactoring Schön mit Versionskontrolle

Gibt es ein Versionskontrollsystem, das Metadaten zum Refactoring speichert? Natürlich wäre es IDE- und Programmiersprachenspezifisch, aber wir alle verwenden Eclipse und Java! Vielleicht könnte es einen Standard geben, auf dem IDEs und Versionskontrollimplementierungen gut spielen können?

Antwort

2

Ich weiß nicht, Werkzeuge zu vergleichen, die eine gute Arbeit ausführen, wenn die Datei neu angeordnet wurde. Im Allgemeinen ist dies eine schlechte Idee wegen dieser Art von Problem. Allzu oft tun es die Leute, um einfach ihren eigenen Stil zu treffen, was ein schlechter, schlechter Grund ist, den Code zu ändern. Es kann die Geschichte effektiv zerstören, genau wie die Neuformatierung der gesamten Datei, und sollte niemals durchgeführt werden, es sei denn, es ist bereits unordentlich und unlesbar.

Das andere Problem ist, dass Arbeitscode wahrscheinlich aufgrund einiger Stilvorlieben gebrochen wird. Wenn es nicht kaputt ist, repariere es nicht!

+0

Refactoring ist generell eine schlechte Idee? Interessant! (Devils befürworten, aber Sie haben es mit "die Datei wurde arrangiert worden") –

0

Ich fragte eine similar question vor einer Weile und bekam nie eine befriedigende Antwort. Ich werde deine Frage beobachten, um zu sehen, was die Leute denken.

Für Ihre spezielle Situation empfiehlt es sich, die neueste Version der Datei zu überprüfen, indem Sie das diff als Leitfaden verwenden. Das habe ich auch in meiner Situation gemacht.

0

Die Refactoring History-Funktion ist neu für mich, aber ich mag die Art, wie es klingt. Für eine weniger toolspezifische Methode schicke ich gerne Patch-Dateien. Die Person, die die Überprüfung durchführt, wendet nur den Patch an und überprüft die Ergebnisse. Anschließend können sie die Version in der Versionskontrolle wiederherstellen, wenn sie fertig sind.