Как вы перемещаете Gerrit Change в другую ветку? - PullRequest
0 голосов
/ 18 января 2020

В нашей настройке Gerrit у нас не включен плагин Move Change, но у нас много изменений в ветви A, которые мы хотим переместить в ветку B с минимальным распределением.

Единственный способ До сих пор я делал это для извлечения изменений в ветви A в локальном репо, затем:

git push origin HEAD:refs/for/B

Это создает новое изменение в ветви B "Cherry Picked" из изменения Я пытаюсь перейти на ветку А. Это означает, что нам нужно отказаться от старого изменения на ветке А, создав таким образом больше беспорядка, чем хотелось бы (по сути, мы будем дублировать каждое изменение, которое мы хотим переместить).

Есть ли способ просто переместить изменение через git CLI? Я бы предпочел обновить ветку аналогичным образом, так как можно было бы загрузить новый набор изменений, а не создавать новое изменение.

1 Ответ

0 голосов
/ 24 января 2020

Move Change - это не плагин, а основная функция, доступная с версии 2.13. Начиная с версии 3.0.0, можно отключить в конфигурации сервера . (Обратите внимание, что конфигурация доступна с 3.0.0, но документирована только с 3.0.3).

Если версия Gerrit старше 2.13 или 3.0.0 или более поздней с отключенной функцией, это невозможно переместить ветку назначения изменения. Вам придется отказаться от него и повторно загрузить новый в нужную ветку.

Для 3.0.0+ вы можете попросить администратора сервера включить эту функцию, хотя если она отключена, это означает, что она была отключена намеренно ; он включен по умолчанию. Одна из причин, по которой люди могут захотеть отключить его, заключается в том, что он не автоматически перебазирует перемещенные изменения в новом месте назначения, что может привести к включению нежелательных фиксаций. См. выпуск 12216 .

...