Ho un repository Git originariamente importato da Subversion. Alcune parti delle informazioni dell'autore/committer sono errate, il che non è colpa di Git, ma principalmente a causa di un errore di commit con Subversion.Utilizzare git filter-branch per riscrivere autori/committer e inviare messaggi simultaneamente
Vorrei utilizzare git filter-branch
per riscrivere la cronologia del repository, correggendo le informazioni del committer e dell'autore.
Il problema è ... Ho bisogno di ingannare le informazioni dell'autore dal commit messaggi. Per quanto ne so, git filter-branch
consente di filtrare e modificare le informazioni dell'autore (con --env-filter
) e/o di filtrare i messaggi di commit (con --msg-filter
), ma non per fare entrambe le cose contemporaneamente, con le informazioni condivise tra i diversi filtri .
Quindi sono un po 'perplesso su come farlo ... il meglio che posso pensare è farlo in più passaggi: prima raccogli tutti i messaggi di commit, poi fai uno script per passare e filtrare tutte le informazioni sull'autore/committer. Questo sembra abbastanza inelegante e soggetto a errori, quindi mi chiedo se qualcun altro ha capito di fare questo tipo di lavoro più agevolmente.
Grazie, Jefromi, darò uno scatto! Inoltre, buon punto sull'ordinazione di --env-filter e --msg-filter: avevo pensato di lasciare i file temporanei come suggerito, ma ho capito che non avrebbe funzionato nell'ordine che volevo. –