Ho avuto Jenkins in esecuzione da circa un anno. Costruisce master, rc * e rami di produzione. Ad ogni commit, esegue un clone git, installa un bundle, esegue una migrazione, ecc. Funziona perfettamente. Recentemente, si sta venendo a mancare e sto ottenendo il seguente traceback:Che cosa significa "FATAL: errore nel calcolo della base di unione"?
FATAL: Error computing merge base
hudson.plugins.git.GitException: Error computing merge base
at hudson.plugins.git.util.GitUtils.filterTipBranches(GitUtils.java:149)
at hudson.plugins.git.util.DefaultBuildChooser.getAdvancedCandidateRevisions(DefaultBuildChooser.java:201)
at hudson.plugins.git.util.DefaultBuildChooser.getCandidateRevisions(DefaultBuildChooser.java:46)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1057)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:948)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2417)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:679)
con il seguente visualizzato subito dopo:
Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing commit 2faf546491565d033b1e0a79bef4b2d107447f49
at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:149)
at org.eclipse.jgit.revwalk.RevWalk.getCachedBytes(RevWalk.java:853)
at org.eclipse.jgit.revwalk.RevCommit.parseHeaders(RevCommit.java:142)
at org.eclipse.jgit.revwalk.MergeBaseGenerator.next(MergeBaseGenerator.java:148)
at org.eclipse.jgit.revwalk.StartGenerator.next(StartGenerator.java:102)
at org.eclipse.jgit.revwalk.RevWalk.next(RevWalk.java:414)
at hudson.plugins.git.util.GitUtils.filterTipBranches(GitUtils.java:127)
... 14 more
Questo errore commesso è anche fonte di confusione dal momento che tutti i rami lo includono.
Che cosa fa esattamente, "Errore nel calcolo della base di unione?" e perché sto ricevendo il messaggio di commit mancante?
Qualsiasi approfondimento qui sarebbe molto apprezzato.
Grazie.
fsck git:
Checking object directories: 100% (256/256), done.
Checking objects: 100% (3203/3203), done.
Nella mia configurazione Jenkins, il mio git plug-config è impostato su:
- Pulire area di lavoro prima di costruire
- Usa clone superficiale
Sto usando Jenkins, ver. 1.528.
Sembra che il repository locale sia danneggiato. Qualche output strano da 'git fsck'? Inoltre, sono i tuoi telecomandi correttamente (i pls verificano a mano). Un'altra cosa è impostare Jenkins per ripulire lo spazio di lavoro prima di tirare (ad esempio, per eliminare tutte le modifiche locali). C'era un'impostazione per questo nella configurazione del progetto. – rlegendi
dovresti taggare questo con jenkins imho – mnagel
Hai sempre usato la clonazione superficiale? Penserei che, a seconda di quanto sia superficiale un clone, trovare una base di fusione di due rami (che è essenzialmente il commit più recente che entrambi hanno in comune, o il punto in cui i due rami divergono) potrebbe essere difficile. Forse non ti sei mai imbattuto in una situazione in cui hai avuto due rami la cui base di fusione era sufficientemente profonda da essere potata dal clone poco profondo ... – twalberg