2014-12-19 15 views
19

Ho jenkins di installazione per creare tutte le diramazioni di feature in un progetto e prima che la compilazione le unisca in "sviluppo" poiché sono più interessato se il risultato delle build di unione piuttosto che il caratteristica stessa ramo.unione prima della compilazione in jenkins fallisce ma non dovrebbe

Questo sembra funzionare se il ramo funzione si basa su sviluppo testa, ma se la si dipartono punto viene prima di sviluppare TESTA poi Jenkins dice: ERRORE: Branch non è adatto per l'integrazione in quanto non si fondono in modo pulito

E questo andrebbe bene se ci fosse un conflitto. Ma non c'è conflitto. Ho testato l'unione manualmente nella console e l'unione viene eseguita automaticamente.

Inoltre, se si confronta il ramo di funzionalità e si sviluppa in stalla atlassiana, viene visualizzato anche un diff pulito senza conflitti.

Mi sono perso. Perché Jenkins non riesce a fonderlo?

risposta

26

L'ho trovato anch'io. Era perché git sul server jenkins non era configurato con il nome dell'autore/email.

Dopo aver configurato questo (con comportamenti aggiuntivi) risolto il problema.

+4

Grazie mille, puoi anche impostarlo globalmente nella configurazione di jenkins nella sezione _Git_ _plugin_ – Mathias

+0

@Mathias, ho provato a configurarlo globalmente come hai detto ma non ha funzionato. Ho dovuto aggiungerlo come comportamento aggiuntivo selezionando ** Nome utente personalizzato/indirizzo email ** e poi ha funzionato. Immagino che i risultati possano variare. –

0

Ho avuto lo stesso errore in cui era bloccato cercando di costruire un ramo precedente SHA-1. Ho rimosso il ramo, ho ancora provato a costruire il ramo SHA-1 e ho fallito allo stesso modo. Ho configurato git con nome/email dell'autore come suggerito, ma ancora non è riuscito. Ho quindi rimosso la directory root dello spazio di lavoro di Jenkins e l'errore è stato modificato in "Impossibile eseguire il checkout ...". Ho quindi ricreato il ramo direttamente dal master, caricato una piccola modifica e creato una richiesta di pull. Jenkins ha ricostruito correttamente il nuovo ramo e ha iniziato a lavorare di nuovo. Questo discute il problema "Could not checkout": https://issues.jenkins-ci.org/browse/JENKINS-26748

0

Ho anche scoperto che questo errore si verificava se Jenkins/git fosse configurato per fare un clone superficiale. Se si è poco profonda la clonazione è necessario disabilitarlo:

  1. deselezionare "clone Shallow" in "Comportamenti aggiuntivi -> comportamenti clone avanzate" nella configurazione di lavoro
  2. vuota la profondità clone di bassa (o era ancora poco clonato se c'era qualche valore qui)
  3. elimina qualsiasi area di lavoro per questo lavoro, in quanto non "unshallow" il clone, sarà necessario ri-clonare.
0

Ho diversi progetti in Gitlab che utilizzano jenkins, ma a volte un progetto solleverà questo problema. Quindi non penso sia per nome o email.

Sempre, ho git pull dal monte, assicurarsi che il locale è coerente con il telecomando, poi git commit --amend (si può solo uscire, non hanno bisogno di modificarla) ->git pull -0>git push ->start jenkins.

Problemi correlati