Manchmal finde ich, dass ich eine Datei habe, die im Laufe der Zeit gewachsen ist, um mehr Klassen/Funktionen/whatevers zu enthalten, als ich mag. Es ist Zeit zu refaktorisieren! Normalerweise finde ich in diesem Fall, dass meine eine Datei zu mehreren wird: sich selbst und mehrere andere Dateien, von denen jede einzelne Segmente der Datei enthält.Ist es in Ordnung, Mercurials Umbenennungsfunktion zu "missbrauchen", um die Bewegung von Codeblöcken zu verfolgen?
Leider "nur" diese neuen Dateien erstellen "bricht" Geschichte ein wenig - es ist schwer zu sagen, dass diese Funktionen ursprünglich aus einer anderen Datei stammten. Es ist noch schlimmer, wenn während des Refactorings noch andere Änderungen am Code vorgenommen wurden.
Einer meiner Kollegen fanden heraus, dass er die Umbenennungs Funktionalität wie dies etwas zu tun „missbrauchen“ könnte:
hg rename --after original_file new_file_1
hg rename --after original_file new_file_2
hg rename --after original_file new_file_3
hg add original_file
Das Ergebnis ist, dass jedes der neuen Dateien wie ein Umbenennungs sieht mit dem Rest der Datei entfernt, und die ursprüngliche Datei sieht so aus, als hätte sie die entfernten Blöcke verloren. Bisher scheint das ideal zu sein. Allerdings mache ich mir Sorgen, dass diese mehrfache Umbenennung einige verwirrende Zusammenführungen nach unten verursacht.
Gibt es etwas falsch mit dieser "mehrere umbenennen" Ansatz?
Super! Danke für die ausführliche Antwort! –