Как отобразить идентификатор изменения Gerrit в командной строке? - PullRequest
0 голосов
/ 02 июня 2018

Кому-нибудь удалось получить gerrit changeid в командной строке?

Я использую zsh.

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Создайте функцию в файле .zshrc следующим образом:

get-change () { git show $1 --format=%B  -s | grep Change-Id: | cut -d " " -f2; }

Затем, если вы выполните «get-change» без параметров, вы получите Change-Id фиксации HEAD:

get-change
I694a3cee135c711e2df231cb84ab6c58183a4846

Или, если хотите, вы можете получить Change-Id любого другого коммита:

get-change master
I2cb7970b909322ff2c78a2326cf42dd2f6ae9975

get-change v1.0.0
Ia037c862c038ba78aba3724d12ba99ce298cbc55

get-change 7d09af3
I974b884a1699a798d569f0f638aa90bf531f76fe
0 голосов
/ 02 июня 2018

Я постараюсь ответить, не дожидаясь ответа, который я спросил в комментариях.Обратите внимание, что zsh не является моей основной оболочкой, но я использую bash, что немного похоже.Чтобы сделать то, что вы хотите:

in_git() {
     git rev-parse  --git-dir >/dev/null 2>&1
}

precmd() {
     in_git && PS1="$(git show --format=%B  -s | grep Change-Id: | cut -d " " -f2) $ " || PS1="$ "
}

Функция с именем in_git проверяет, находитесь ли вы в настоящее время в репозитории git - если вы пытаетесь извлечь Change-Id из текущего коммита, и если нетмы просто отображаем $ как подсказку.

...