Невозможно объединиться в Gerrit

Всякий раз, когда я отправлял отзыв на Gerrit, и если рассмотрение ожидает некоторое время, я получаю сообщение cannot merge в Gerrit.

Я понял его, потому что кто-то другой изменил бы тот же файл/файлы и доставил передо мной. Я пытаюсь выполнить обходной путь, чтобы решить мою проблему.

  • Отмените текущий обзор.
  • Создайте новую локальную ветвь, возьмите
  • Cherry-pick my commit из старой ветки и отправьте на gerrit

Это работает, но комментарии по обзору, что бы я ни был, больше не будут доступны, и мой рецензент будет сложно проверить его снова.

Я ищу способ удалить cannot merge из текущего обзора. Спасибо!

Ответ 1

Вам не нужно отказываться от текущего изменения на Gerrit, чтобы решить проблему "не может объединиться". Все, что вам нужно сделать, это:

  • Обновите локальный репозиторий (git fetch)
  • Запустите ручную перезагрузку (git rebase)
  • Разрешить конфликты (git mergetool)
  • Зафиксировать результат (git commit -amend)
  • Нажмите новый патч-набор на Gerrit (git push)

Ответ 2

Попробуйте кнопку rebase, которая может решить большинство проблем с невозможностью объединения. Если он может найти правильную фиксацию для переустановки самостоятельно, все в порядке. Если он не может найти последнюю фиксацию целевой ветки и заполнить бланк фиксации. Иногда вам нужно сначала отправить коммит, на который не может быть слияния, есть зависимость. Если он не может работать так или иначе, просто оставите его и сделайте фиксацию на основе последней фиксации.

Ответ 3

Лучшая практика при работе с базой общего кода с использованием git/gerrit - сохранять как можно меньше отдельных изменений. Вместо того, чтобы отправлять свои изменения в одном большем коммите, разделите его на серию меньших коммитов (отправьте ветку gerrit), которые имеют одно логическое изменение на коммит. Этот рабочий процесс:

  • уменьшает вероятность конфликта в одно изменение
  • облегчает и ускоряет разрешение конфликтов
  • сделать изменения быстрее, чтобы рассмотреть

Таким образом, вероятность того, что кто-то объединит свои изменения до того, как вы уменьшите. Вам следует как можно скорее выполнить перебазирование, чтобы изменения можно было легко просмотреть. Регулярная перебазировка против вышестоящей ветки означает, что вы всегда в курсе изменений, и вам не нужно иметь дело с большим конфликтом слияния (вы получаете более мелкие, более управляемые проблемы, которые нужно решить).

Я не уверен, что это отвечает на ваш вопрос, но я следую этим двум правилам и у меня нет проблем.