Как получить порядковый номер фиксации Mercurial в ветке - PullRequest
2 голосов
/ 17 февраля 2012

Я хочу получить номер заказа на коммит, считая ТОЛЬКО коммиты определенной ветки (master).Поскольку ветвь «мастер» одинакова на каждой машине / репо, это позволит мне: 1. иметь один и тот же номер независимо от репозитория 2. использовать этот номер в строке версии.

Итак,Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

hg log -b master --template "." | wc -m например

Вывод текущий количество наборов изменений в ветви

2 голосов
/ 23 февраля 2012

Ваша идея не сработает, даже если вы ограничите себя одной именованной веткой.Как упоминалось Ry4an, проблема в том, что порядок наборов изменений в этой ветви определяется порядком hg push и hg pull.Таким образом, вы легко можете столкнуться с ситуацией, когда у вас есть:

@    branch: master, changeset: 5:f5b6808f2f04, summary: merge
|\
| o  branch: master, changeset: 4:2b7bdcc98a88, summary: mmm
| |
o |  branch: master, changeset: 3:6b60342a01a6, summary: mm
|/
o  branch: master, changeset: 2:f39fa3fa1aaf, summary: m
|
o  branch: master, changeset: 1:4dd5e8ae6481, summary: create master
|
o  branch: default, changeset: 0:68b4eb1ca123, summary: a

в одном хранилище, но

@    branch: master, changeset: 5:f5b6808f2f04, summary: merge
|\
| o  branch: master, changeset: 4:6b60342a01a6, summary: mm
| |
o |  branch: master, changeset: 3:2b7bdcc98a88, summary: mmm
|/
o  branch: master, changeset: 2:f39fa3fa1aaf, summary: m
|
o  branch: master, changeset: 1:4dd5e8ae6481, summary: create master
|
o  branch: default, changeset: 0:68b4eb1ca123, summary: a

в другом.Обратите внимание, как в двух репозиториях поменялись местами mm и mmm.

Только в том случае, если ветвь имеет одинаковые заголовки в обоих репозиториях, вы можете говорить о том, что «ветвь одинакова»каждый репозиторий.Если это так, то, как предполагает Lazy, простой

hg log -b master --template "." | wc -m

даст одинаковое количество в обоих репозиториях.

...