Я написал другой ответ, но в итоге я нашел лучший способ сделать то, что нужно здесь (еще лучшее и окончательное решение - для меня - в конце этого поста, в разделе [EDIT]) .
Использование hg log
.
В частности, сначала введите команду hg sum
. Это даст мне:
parent: 189:77e9fd7e4554
<some commit message>
branch: default
commit: (clean)
update: 2 new changesets (update)
Чтобы увидеть, из чего сделаны эти 2 новых набора изменений, я использую
hg log -r tip -r 2 -v
Очевидно, что 2
должно быть заменено количеством наборов изменений, о которых сообщает hg sum
.
Это работает, потому что tip
будет ссылаться на самую последнюю (или «не примененную») ревизию. Ограничивая вывод двумя последними изменениями (-l 2
), информация отображается только для тех наборов изменений, которые меня интересуют. С -v
также отображается список файлов, затронутых набором изменений.
Чтобы упростить задачу, я определил пользовательскую команду в моем .bashrc
файле:
alias hglog="hg log -r tip -l $1"
Это позволяет мне набрать hg sum
(чтобы получить количество ожидающих / не примененных наборов изменений), а затем набрать hglog x
, где x
- количество наборов изменений, выявленных с помощью hg sum
.
Вероятно, есть более полный способ сделать это, например, с помощью пользовательских шаблонов, но я думаю, что это слишком далеко продвигается в плане сложности.
[EDIT] ( Третья итерация )
Я нашел наиболее удовлетворительный ответ на этот вопрос, расширив идею псевдонима, так что мне больше не нужно вводить hg sum
. Мой файл .bashrc теперь содержит это:
show_pending_changesets() {
nb=$(hg sum | grep "update:" | sed 's/update: \([0-9]*\) .*/\1/');
if [ `expr $nb + 1 2> /dev/null` ] ; then
hg log -r tip -v -l $nb
else
echo "Nothing new to report"
fi ;
}
...
alias hgwhatsnew=show_pending_changesets
Объяснение: Я использую sed
для извлечения количества наборов изменений из последней строки (которая начинается с update:
) из вывода hg sum
. Это число затем подается на hg log
. Все, что мне нужно сделать, это набрать hgw
и завершить его. НТН