Considerare il seguente caso:Come trovare il nuovo percorso di un file rinominato di cui è noto il nome originale?
Sto lavorando alla filiale locale mentre il refactoring è stato eseguito sul ramo principale. Ora alcuni file (classi) sono stati rinominati e/o spostati in nuove posizioni. Durante la fusione ottengo molti e molti errori di importazione dovuti alla mancanza di classi.
--A--B--C--D--E-- (master)
\ \
F--G--H--I--J (topic)
In A
ci sono i vecchi nomi wich che ho usato in F--G--H--I
.
In B--C--D--E
i file vengono refactored con conseguente nuovi nomi di file in E
. Questo include incatenato rinomina come
B: path/to/File.java
-> C: path/to/BetterName.java
-> D: better/package/BetterName.java
-> E: final/package/FinalName.java
Ora si fondono risultati in J
con molti errori (di compilazione) a causa del refactoring mancanti sul mio ramo. (Perché ho ancora riferisco a path.to.File
invece di final.package.FinalName
Per fissare la build rotto, ho bisogno di conoscere i nuovi nomi per le vecchie classi.
Esiste un comando git per ottenere tutti del cambiamento di nome che hanno stato applicato a un particolare file?
funziona il vostro copione? se sì, non ricevo la tua domanda – CharlesB
Sì, funziona, ma mi chiedevo se c'è una soluzione più semplice rispetto allo script di cui sopra. Come devo farlo per ogni file. – helt
Devi dire a 'git log' per trovare i nomi con l'opzione' -M'. Quindi si desidera segnalare solo i nomi e ciò è fatto con l'opzione '--diff-filter'. Ho aggiunto più dettagli alla mia risposta. –