Modifications apportées à une validation, modification de la validation effectuée. Faites un Push et j'obtiens l'erreur:
! [remote rejected] master -> refs/for/master (no changes made)
Vérifié l'ID de changement dans le message de validation et c'est toujours une validation valide.
J'ai essayé de changer un fichier, en vérifiant qu'il apparaît comme une altération, puis ajouté à la zone de transit et effectué une autre modification de validation. Essayez à nouveau le Push et obtenez le même problème. Aucune idée sur celui-ci.
Edit: Cela pousse à gerrit, pas à git directement.
Je suis entrain de courir:
git Push Origin master:refs/for/master
Et le résultat de l'obtention des détails d'origine est (avec les détails de l'entreprise édités):
$ git remote show Origin
* remote Origin
Fetch URL: ssh://[email protected]:29418/myrepo
Push URL: ssh://[email protected]:29418/myrepo
HEAD branch: master
Remote branch:
master tracked
Local branch configured for 'git pull':
master rebases onto remote master
Local ref configured for 'git Push':
master pushes to master (up to date)
Ce problème est dû aux actions que j'avais effectuées précédemment. J'essayais de Push
un nouveau changement, en plus d'un changement qui était encore à réviser, qui était également parent à réviser.
Trunk ------ Parent A ----- Parent B ----- New change
(merged) (unmerged) (unmerged)
J'avais utilisé cherry-pick
pour obtenir ces deux modifications localement (parent A et parent B), puis une troisième cherry-pick
pour obtenir ma modification d'une branche locale avant d'essayer de Push
. C'est ce qui a causé le problème, parce que mon changement personnel essayait essentiellement de réécrire l'histoire.
Le processus correct serait de seulement pull
Parent B au niveau du tronc. Cela tire automatiquement toutes les validations entre le tronc et lui (dans ce cas, uniquement le parent A). Ensuite cherry-pick
ma nouvelle modification en plus de cela et Push
fonctionnera bien.
Veuillez vous référer à la documentation officielle sur ce problème ici:
https://gerrit-review.googlesource.com/Documentation/error-no-new-changes.html
J'ai eu le même problème, mon problème était que j'ai poussé le changement, puis abandonné cette fusion, puis j'ai fait quelques ajustements, à tort modifié mon commit et poussé à nouveau. C'est là que j'ai eu l'erreur.
Ma solution:
git commit --amend
, supprimez l'existant change-Id
, en supposant que vous avez configuré les hooks git, vous pouvez terminer la validation et un nouveau change-Id
devrait vous être attribué.change-Id
, déterminez ce qui se passe et corrigez en conséquence. (conseillé)Si vous essayez de mettre à jour un ensemble de révisions, chacune avec son propre identifiant de modification que vous souhaitez conserver (par exemple, après un rebase où vous échangez l'ordre de deux validations), vous pouvez être rejeté si certaines des validations du pile reste inchangée. Vous devez forcer la génération d'un nouveau hachage en reformulant les validations ou quelque chose de similaire.
Il semble que vous fassiez tout correctement jusqu'à ce que vous vérifiiez que Gerrit devrait apporter un changement.
git Push Origin master:refs/for/master
C'est peut-être le problème? Si vos modifications ne se trouvent pas sur votre version locale de la branche principale, vous ne poussez pas vos modifications. Essayez plutôt:
git Push Origin HEAD:refs/for/master
HEAD
est un raccourci qui représente votre commit actuel dans git.
j'ai eu le même problème. Je viens de changer le message de validation et de pousser le code. C'était réussi.
J'ai eu le même message d'erreur, mais les modifications que j'essayais de pousser étaient au-dessus des validations différentes de l'ensemble de modifications d'origine (a fait quelques tours de magie avec git cherry-pick
et il semble que gerrit ne l'aimait pas). J'ai abandonné ma modification d'origine, puis l'ai rouverte lorsque j'ai réalisé que je pouvais résoudre le problème, mais j'ai échoué à envoyer à gerrit avec git review
.
À ce stade, ma solution rapide a été d'abandonner la modification d'origine du site Web gerrit et de créer une nouvelle modification en supprimant le change-Id: sha1
dernière ligne du message de validation avec git commit --amend
.
Avec ce message d'erreur, Gerrit refuse de pousser un commit en tant que nouvel ensemble de correctifs pour une modification, si la validation poussée est identique à l'ensemble de correctifs actuel de ce changement.
Un commit poussé est considéré comme identique à l'ensemble de correctifs actuel si
sont tous identiques.
J'ai eu le même problème. En même temps, un autre commit n'a pas été fusionné avec master et était en révision gerrit et rebasé en gerrit. c'est-à-dire que le code a été poussé pour examen. rebasé en gerrit et révision en attente de terminer. Une fois le code révisé, j'ai pu pousser sans erreur.