Как вытащить / выбрать вишню коммит / патч gerrit для ветки, используя http ссылку на коммит? - PullRequest
0 голосов
/ 16 января 2020

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

Clone       $git clone ssh:me@gerrit.server.com/potato
Checkout    $git checkout fried_branch
Fetch       $git fetch ssh:me@gerrit.server.com/potato refs/changes/01/23456/7
Cherry-pick $git cherry-pick FETCH_HEAD
Pull        $git pull ssh:me@gerrit.server.com/potato refs/change/01/23456/7

, где ссылки / изменения используются для поиска коммитов / патчей. Вместо этого мне дается http-ссылка на gerrit commit / patch по линии

http://gerrit.server.com:8080/#/c/12345/

. Я предполагаю, что мне нужно изменить шаг Fetch и шага клона, checkout, fetch, cherry-pick, pull, но я не уверен, как это сделать с помощью ссылки http вместо ссылок. Как изменить шаг для работы с http?

1 Ответ

1 голос
/ 16 января 2020

Gerrit change - это один коммит, но в одном и том же изменении может быть несколько версий коммита; каждая версия называется набором патчей .

Вы не получите изменения от Gerrit; Вы фактически получаете определенный набор патчей для изменения. URL, который вам нужно использовать, будет включать не только номер изменения, но и номер набора патчей.

Ссылка, которую вы дали:

http://gerrit.server.com: 8080 / # / c / 12345 /

сообщает номер изменения (12345), но не сообщает, какой номер набора патчей использовать. На самом деле, он даже не говорит вам, для какого репозитория предназначено изменение (на сервере Gerrit может размещаться много репозиториев).

Если вы go обращаетесь к URL в вашем браузере, вы должен быть взят последний набор патчей для изменения. Вы должны увидеть Download 10 в правом верхнем углу. Найдите строку «Cherry Pick», которая дает вам две команды: команду git fetch для извлечения набора патчей (т. Е. Фиксации) и команду git cherry-pick для выбора вишни выбранной фиксации в любой ветви, в которой вы находитесь.

Вот пример из «Затмения Геррит». Это изменение:

https://git.eclipse.org/r/# / c / 154809 /

предназначено для репозитория jdt / eclipse.jdt.debug и имеет 3 набора патчей на момент письмо. Это ссылка на набор патчей 3:

https://git.eclipse.org/r/# / c / 154809/3

В правом верхнем углу команды выбора вишни:

git fetch https://git.eclipse.org/r/jdt/eclipse.jdt.debug refs/changes/09/154809/3 && git cherry-pick FETCH_HEAD

В команде git fetch 09 - две последние цифры номера изменения, 154809 - полный номер изменения, а 3 - номер набора патчей.

...