Статус изменения Gerrit: отправлен, ожидает слияния, как его решить?

Система Геррит используется только нами несколькими людьми. Как только есть Изменение A, и его статус: «Отправлено, ожидание слияния». Список изменений на «открытой» веб-странице. Также я заметил, что это изменение зависело от другого изменения B (статус которого отменен).

  1. Как сделать так, чтобы А отображалось на «Объединенной» веб-странице?
  2. Как заставить B исчезнуть, чтобы A больше не зависело от B?

person gemfield    schedule 05.01.2012    source источник
comment
Я задал аналогичный вопрос и получил более подробные (полезные для новичков) ответы.   -  person trejder    schedule 12.12.2013


Ответы (7)


Если изменение A зависит от B, то A нельзя объединить, пока B не будет объединен. Поскольку вы отказались от B, Gerrit не будет автоматически объединять A.

Что вам нужно сделать, так это изменить A (возможно, используя git rebase), чтобы он больше не зависел от B, и повторно отправить изменение Gerrit.

person Greg Hewgill    schedule 05.01.2012
comment
Тогда как заставить B исчезнуть с веб-страницы? - person gemfield; 05.01.2012
comment
Вы уже отказались от Б. Что еще вы хотите с ним делать? - person Greg Hewgill; 06.01.2012
comment
@GregHewgill Я думаю, он имел в виду, как удалить запись об изменении B из Gerrit, как если бы она никогда не существовала (поэтому она нигде не отображается в веб-интерфейсе Gerrit). Я не думаю, что это возможно с помощью веб-интерфейса Gerrit, поскольку есть кнопка Restore Change на элементах «Заброшенные изменения», которая позволяет вернуть изменение из состояния «Заброшено». Если кто-то все еще хочет удалить, он может сделать это вручную из бэкэнда (хотя я никогда не пробовал) - person Vikram; 18.07.2013
comment
Предложение: попробуйте перебазировать источник / ветку ожидающим владельцем фиксации. - person herbertD; 19.07.2016

К вашему сведению. У меня была та же проблема «Отправлено, ожидание слияния», когда пользователь дважды нажимал «Отправить» на той же странице (она дважды щелкнула кнопку отправки). Это произошло в Gerrit 2.11.

Ошибка в журнале выглядит как

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:     Duplicate entry '5173-2-1' for key 'PRIMARY'
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)

Перед отправкой была всего 1 фиксация (изменения кода). Но после двойного нажатия происходит 2 коммита. Второй - с новым сообщением о фиксации и статусом «Отправлено, ожидание слияния».

Когда я удалил всю информацию о втором коммите:

$ ssh -p 29418 admin@machine gerrit gsql
gerrit> delete from `patch_set_approvals` where change_id=5173 and patch_set_id=2;
gerrit> delete from `patch_set_ancestors` where change_id=5173 and patch_set_id=2;
gerrit> delete from `patch_sets` where change_id=5173 and patch_set_id=2;

он отмечен как интегрированный пользователем Gerrit Code Review.

person Maxim Suslov    schedule 18.05.2015

То, что говорит Грег, правильно, автоматическое слияние невозможно. Можно включить только A, используя опцию Gerrit "выбор вишни" (по сути, ручное слияние). К сожалению, это не приведет к удалению статуса Gerrit «Ожидает слияния». Я обычно пишу комментарий на этот счет, если соавтору не удается перебазировать.

person jastram    schedule 09.01.2013

  1. Откажитесь от вашего толчка Геррита.

На Терминале:

  1. git журнал
  2. git сбросить HEAD ~ n

где n - количество коммитов сверху в списке коммитов, сгенерированных на терминале с шага 2

  1. git add.
  2. git commit -m "Ваше сообщение"
  3. git push

теперь объедините свой коммит на Gerrit.

person Venu Gopal Tewari    schedule 10.06.2017

Парень. Если у вашего коммита есть тег, вы можете столкнуться с ошибкой. Эта ошибка была исправлена ​​в Gerrit V2.7.

Ссылка на ошибку: https://groups.google.com/forum/#!topic/repo-discuss/tLVMibfzroc

person velly.zhou    schedule 15.11.2013

У меня была та же проблема «Отправлено, ожидание слияния» без какой-либо зависимости или конфликта. Быстрое исправление - просмотреть все открытые элементы и посмотреть, есть ли какие-либо другие фиксации в статусе «Отправлено, ожидание слияния». Если да, просто откажитесь от них всех.

Затем git commit --amend -m "ваши исходные комментарии" и снова git push, на этот раз вы можете объединить исправления.

person dyu    schedule 27.02.2015

Я столкнулся с этой проблемой, потому что добавил тег к имени ветки:

git tag x.y.z HEAD
git push -f origin x.y.z:master

Так что лучше вместо этого подтолкнуть ветку,

git tag x.y.z HEAD
git push -f origin HEAD:master

Таким образом, gerrit снова сможет объединить мои ожидающие исправления.

person RzR    schedule 07.12.2016