Mercurial: пометьте текущую редакцию именем, определенным в текстовом файле - PullRequest
2 голосов
/ 16 сентября 2011

Обычно в Mercurial, если я хочу пометить текущую ревизию, я делаю это:

hg tag version12

Это пометит мою текущую ревизию на "version12"

Теперь предположим, что текст "version12" находится в файле с именем buildNumbers.txt Как я могу выполнить команду DOS, чтобы пометить его текстом, содержащимся в файле buildNumbers.txt?

То, что я уже пробовал, - это передача текстового файла.

hg tag < buildNumbers.txt

Но это приводит к тому, что Х.Г. снова дает мне экран справки. Это говорит мне, что она не понимает эту команду.

Так кто-нибудь знает, как извлечь номер версии из текстового файла и предоставить его в качестве параметра?

Ответы [ 4 ]

4 голосов
/ 17 сентября 2011

Учитывая buildNumbers.txt, содержащий только одну строку с одним тегом (без whitepsace):

for /f %v in (buildNumbers.txt) do hg tag %v

Если структура buildNumbers.txt более сложная (вы ее не указали), см. «Опции» команды for.

1 голос
/ 17 сентября 2011

Будет ли это то, что вам нужно?

D:\code>md htagtest

D:\code>echo bla>tagfile

D:\code>hg init

D:\code>touch a b c

D:\code>hg add a b c

D:\code>hg commit -m first

D:\code>cat tagfile | xargs hg tag

D:\code>hg log
changeset:   1:2dce938a816a
tag:         tip
user:        Tempos
date:        Sat Sep 17 00:34:36 2011 +0300
summary:     Added tag bla for changeset 349e58fd49a1

changeset:   0:349e58fd49a1
tag:         bla
user:        Tempos
date:        Sat Sep 17 00:34:27 2011 +0300
summary:     first


D:\code>
1 голос
/ 17 сентября 2011

Еще одна версия PowerShell, которая делает это в одну строку с трубами:

cat buildnumber.txt | %{hg tag $_}

обратите внимание, что здесь используется цикл, поэтому, если в вашем файле более одной строки, вам также придется использовать Select-Object, если только вы не хотите несколько тегов

cat buildnumber.txt | Select-Object -first 1 | %{hg tag $_}
1 голос
/ 17 сентября 2011

Вы можете использовать сценарий PowerShell, если ваш buildNumbers.txt является oneliner!

UrdaNumber.txt Содержание:

1.0

UrdaHgTag.ps1:

$ver = cat .\UrdaNumber.Txt
hg tag $($ver)

Это помечает текущую редакцию как 1.0, если выполняется внутри хранилища.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...