2012-06-03 10 views
6

Tentativo di eseguire una versione su un progetto maven, che è stato rilasciato correttamente in precedenza.Rilascio Maven: preparazione non riesce a eseguire il commit del tag

Quando eseguo mvn release:prepare, vengono richiesti i tag di rilascio, i nuovi tag di istantanea e le build del progetto.

Ma quando si tenta di spingere al telecomando, ottengo

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project NeuralAnalysis: Unable to tag SCM [ERROR] Provider message: [ERROR] The git-push command failed. [ERROR] Command output: [ERROR] To ssh://[email protected]/NeuralAnalysis.git [ERROR] ! [rejected] NeuralAnalysis-1.5.6 -> NeuralAnalysis-1.5.6 (non-fast-forward) [ERROR] error: failed to push some refs to 'ssh://[email protected]/NeuralAnalysis.git' [ERROR] To prevent you from losing history, non-fast-forward updates were rejected

E infatti, il tentativo di eseguire manualmente git push ssh://[email protected]/NeuralAnalysis.git NeuralAnalysis-1.5.6, esce anche con la stessa denuncia.

L'esecuzione di git pull dice "Già aggiornato". git branch mostra che sono sul "master". git push origin restituisce "Tutto aggiornato".

Guardando il repository usando Tower si vede che "master", "origine/master" e "NeuralAnalysis-1.5.6" sono tutti uguali e sull'ultimo commit. La directory di lavoro contiene i file release.properties e pom.xml.releaseBackup.

Mi sembra che nel repository tutto vada bene.

+1

Hai (localmente o sul telecomando) un * ramo * chiamato "NeuralAnalysis-1.5.6' come il tag che stai provando a spingere? Puoi modificare la tua domanda con l'output di un 'git push --verbose ssh: //[email protected]/NeuralAnalysis.git NeuralAnalysis-1.5.6'? – VonC

risposta

9

Si è scoperto che si trattava di un tag remoto con lo stesso nome, come suggerito da VonC nel commento. Questo è stato probabilmente creato da una versione precedentemente abortita.

Anche se ho trovato il tag remoto ispezionando manualmente la directory refs/tag sul repository remoto, git ls-remote --tags mostrerà anche loro il git push --verbose mostrerà anche di più sul problema in generale.

Per risolvere questo problema, recuperare prima i tag remoti con git fetch --tags.

Un modo per eseguire il passaggio successivo consiste semplicemente nel bypassare il tag di rilascio aggiornando il pom.xml per avere una versione più alta di -SNAPSHOT (inclusi eventuali riferimenti nello stesso progetto da parte di altri moduli a quell'istantanea), controllare questi in, e fare mvn release:clean; mvn release:prepare di nuovo.

+0

Feedback interessante. +1 – VonC

+0

Sì, buon riscontro +1 –

Problemi correlati