2010-04-19 4 views
31

Sto cercando di impostare Hudson con git secondo le this article, ma ho ancora ottenere gli errori durante la costruzione git:Hudson + git FATAL: non poteva applicare tag

FATAL: Could not apply tag-PROJECTNAME-ID 
... 
Caused by: hudson.plugins.git.GitException: Command returned status code 128: 
*** Please tell me who you are. 

esecuzione: git config --global user.name mostra dati validi, .gitconfig è accessibile.

Come correggere questi errori?

risposta

26

Se potrebbe essere necessario sia user.name e user.email.
C'è in realtà un open ticket to set them automatically.

Potrebbe anche essere un Hudson server issue:

ero un po 'confuso per vedere questo messaggio poiché avevo già configurato git ad avere il mio nome utente e-mail.
Quindi mi sono ricordato che Hudson è in esecuzione su tomcat che è in esecuzione con l'utente tomcat6.
Avevo bisogno di configurare l'utente tomcat6 per avere la configurazione git necessaria per taggare i repository git.

Imposta la configurazione git per l'utente tomcat6 effettuando le seguenti operazioni:

sudo -s -H -u tomcat6 
git config --global user.name "Hudson" 
git config --global user.email "[email protected]" 
exit 

Come nota, se si utilizza Hudson di impegnarsi e spingere per un altro repository verranno utilizzate queste impostazioni di configurazione per tutti i commit fatti da Hudson.

Il passaggio successivo è far sapere a Hudson dove è lo HOME per l'utente tomcat6.
Nella pagina Hudson/configure è presente una casella di controllo per la definizione delle variabili di ambiente.
Una volta verificato, sarà possibile inserire una coppia chiave-valore. Aggiungere la seguente coppia e salvare la configurazione:

name: HOME 
value: /usr/share/tomcat6/ 

La prossima volta che un progetto Hudson è costruito si dovrebbe vedere la seguente riga vicino alla parte superiore del l'uscita della console:

Env: HOME=/usr/share/tomcat6/ 

Il plugin git dovrebbe ora essere in grado di contrassegnare correttamente il repository e continuare con la compilazione.


Come mentioned here, si potrebbe avere un utente speciale tomcat6 senza conto (senza login consentito, senza shell: cito "tomcat6 は ロ グ イ ン 不 許可 (シ ェ ル は/bin/false) っ て な って い る "), nel qual caso è necessario configurare l'utente.nome e indirizzo email a livello di sistema)

git config - system user.email "kompiro @ ..." 
git config --system user.name " kompiro... " 

Se si utilizza l'utente tomcat6 a Hudson, Hudson avrà bisogno di vedere che l'utente in/etc/passwd, as mentioned here:

Più nello specifico, nel numero /etc/passwd. Per qualche ragione qui GIT ha bisogno di una voce nel campo per il nome completo. Sotto Ubuntu l'utente Tomcat si è posizionato lì per impostazione predefinita, nulla ("Utente di Ubuntu hat der Tomcat-User dort standardmäßig nichts gesetzt.").
Aggiunge uno lì ora semplicemente 'Tomcat 6,,, a', viene eseguito anche con i vicini CI.
("Fügt uomo jetzt dort einfach 'Tomcat 6,,,' ein, läuft es auch mit dem CI-Nachbarn")

+1

Vedere anche un altro tutorial con http://www.softwarebloat.com/2008/11/19/continuous-integration-blueprints-how-to-build-an-army-of -killer-robots-with-hudson-and-cetriolo/ – VonC

+0

Grazie VonC per le informazioni dettagliate. Sul mio Ubuntu Hudson gira su utente hudson. Ho appena configurato git name e email per hudson user e ora funziona. – takeshin

+1

ma non voglio che il plugin Git aggiunga tag al mio repository Git per ogni build (ogni 15 minuti circa). questo è molto strano, si contrassegna automaticamente per impostazione predefinita. – Alex

33

Dopo aver installato il git alimentabile è possibile configurare il nome git e-mail a Jenkins pagina "Configure System". ..

git options in jenkins

+2

Il plugin git risolve questo problema molto più velocemente della lettura dei commenti nella risposta. –

2

Nella nuova versione Hudson con il plugin git, è possibile impostare entrambi: il nome utente e la posta elettronica dell'utente tramite le opzioni di interfaccia web Hudson.

2

Oppure è possibile disabilitare la codifica. Nelle configurazioni di progetto, in Gestione codice sorgente andare su Avanzate. Qui puoi selezionare "Ignora tagging interno"

+0

L'aggiornamento dei plug-in deve averlo aggiunto in qualche modo, non c'era prima comunque. Dopo averlo rimosso come hai detto, ha funzionato di nuovo. – JugsteR