Repository 32bit  Forum
Repository 64bit  Wiki

git... modificare l'owner di un commit

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

git... modificare l'owner di un commit

Messaggioda ZeroUno » lun set 03, 2012 20:43

A volte scrivo del codice e lo faccio da diversi pc, allora per stare sincronizzato faccio un repository git.

Puntualmente però mi accorgo (spesso troppo tardi) che i vari pc potrebbero non avere le stesse impostazioni utente/email.

Così ogni tanto trovo dei commit fatti da
"no name" <root@hostname1>
"mio nome" <mail@valida>
"nome mio" <valida@mail>
"username" <username@hostname2>
"apache" <apache@hostname3>

insomma un casino.

Intanto devo imparare che quando do git init devo anche mettere le configurazioni utente/email a livello locale invece che globale per sicurezza, perchè per alcuni repository potrei usare una mail e per altri altre mail, ma dove non l'ho fatto mi ritrovo ormai commit incasinati.

E' possibile con qualche comando git modificare l'owner di un commit passato?
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4253
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: git... modificare l'owner di un commit

Messaggioda paolo86 » lun set 03, 2012 21:34

È successo anche a me da poco... stesso identico problema.. pc diversi e diversa configurazione :|

Alla fine ho risolto con un piccolo script.
Codice: Seleziona tutto
git filter-branch --commit-filter '
        if [ "$GIT_COMMITTER_EMAIL" = "mail_sbagliata@localhost" ];
        then
                GIT_COMMITTER_NAME="...";
                GIT_AUTHOR_NAME="...";
                GIT_COMMITTER_EMAIL="nuova_mail@corretta.com";
                GIT_AUTHOR_EMAIL="nuova_mail@corretta.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

Puoi sostituire la condizione usando le variabili che più preferisci per discriminare le modifiche oppure aggiungere vari elif in stile bash se hai varie condizioni

L'ho lanciato dalla root del progetto (senza modifiche non inviate o non commitate) con "bash ../git_filter.sh" (avevo lo script nella directory superiore), poi ho dato "git push -f" in modo da forzare l'aggiornamento sul server (non fare pull altrimenti genera un altro ramo nell'albero delle commit, mantenendo anche quello vecchio)
Dopo però ho dovuto rifare il clone dei sorgenti su tutti i pc. Non so se è colpa di questo comando o delle altre prove che stavo facendo con git rebase (e che avevo pure pushato... :( )

Spero di esserti stato utile
Avatar utente
paolo86
Linux 1.0
Linux 1.0
 
Messaggi: 73
Iscritto il: lun lug 14, 2008 18:22
Località: Cagliari
Nome Cognome: Paolo Cortis
Slackware: Slackware64 current
Kernel: 3.4.1-jiraiya
Desktop: KDE 4.8.2

Re: git... modificare l'owner di un commit

Messaggioda ZeroUno » lun set 03, 2012 22:00

Utilissimo, dopo me lo studio bene.

Ma questo mantiene le date dei commit?
L'hash invece mi sa che cambia vero?
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4253
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: git... modificare l'owner di un commit

Messaggioda paolo86 » lun set 03, 2012 22:02

Da me sia le date che gli hash sono rimasti come prima
Avatar utente
paolo86
Linux 1.0
Linux 1.0
 
Messaggi: 73
Iscritto il: lun lug 14, 2008 18:22
Località: Cagliari
Nome Cognome: Paolo Cortis
Slackware: Slackware64 current
Kernel: 3.4.1-jiraiya
Desktop: KDE 4.8.2

Re: git... modificare l'owner di un commit

Messaggioda ZeroUno » lun set 03, 2012 22:19

ok grazie, domani applico.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4253
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite