Esiste un modo per commettere trasformazioni di codice o refactoring in git, magari come metadati per un commit effettivo, in modo che gli strumenti di modifica del codice possano applicare il cambiamento come trasformazione concettuale anziché un intero lotto di modifiche del testo?
Per illustrare, supponiamo che una classe abbia una proprietà pubblica FOO. Qualcuno potrebbe rinominare FOO in BAR e commetterlo. Sfortunatamente ora ogni altro ramo che usa FOO ora avrà un conflitto di fusione o un'interruzione nella compilazione. Se invece il cambiamento fosse in qualche modo memorizzato come "refactor: rinominare FOO in BAR", quindi, su rebase, la modifica verrebbe implementata anche in altri rami.
Potrebbe essere che alcuni strumenti di codice che conoscono la lingua siano intelligenti in proposito e dicono "Oops, questa cosa non ha proprietà FOO. Ha mai avuto una proprietà FOO? Lasciami guardare indietro nella storia di git e aha, sì, sì, ora si chiama BAR. Aggiungo anche qui FOO to BAR. ". Ciò non richiederebbe alcuna annotazione speciale.
Personalmente la mia risposta è "non rinominare le cose a meno che non sia assolutamente necessario". Sfortunatamente gli editori hanno pulsanti di refactoring e alcune persone sono felici. Se c'è un pulsante, perché non premere? È così semplice e veloce!