Как я могу создать версию с тегом в Mercurial с Hudson? - PullRequest
1 голос
/ 18 августа 2010

Я использую Hudson, чтобы построить свой проект из моего репозитория Mercurial.Есть два задания: одно собирает подсказку, другое должно собирать последнюю версию.Когда я отмечаю релиз и затем использую этот тег в поле «ветка», я получаю эту ошибку:

[workspace] $ hg update --clean --rev Release_1_2_beta1
abort: unknown revision 'Release_1_2_beta1'!

Когда я запускаю ту же команду в своей локальной копии, она работает.Это также работает, когда я клонирую. Что может быть причиной того, что это ломается на Гудзоне?

Ответы [ 2 ]

3 голосов
/ 18 августа 2010

Ничто из того, что вы делаете, по своей сути неправильно, но у меня есть предположение, основанное на том, как отслеживаются ртутные теги. Возможно ли, что вы клонируете в это рабочее пространство, используя --rev тоже?

Этот шаблон команд не работает:

% hg init test

% echo this > test/file

% hg -R test commit --addremove --message 'a commit'
adding file

% hg -R test tag mytag

% hg clone --rev mytag test test-clone

% hg -R test-clone update --rev mytag
abort: unknown revision 'mytag'!

Причина, по которой это не работает, заключается в том, что clone --rev переносит все наборы изменений вплоть до того, на который указывает тег mytag, но не переносит последующий набор изменений, который фактически создает тег по имени mytag.

Если это проблема (и опять-таки это только предположение), то вам либо нужно клонировать все, либо hg update до tip.

Если это не так, загляните в файл .hgtags и убедитесь, что в нем есть тег.

1 голос
/ 15 марта 2013

До сегодняшнего дня плагин Mercurial от Jenkins (Hudson) не поддерживает теги .

Один из подходов, который мне подходит, - это настроить ветку «по умолчанию» в задании и настроить «команду windows» или «сценарий оболочки» в качестве первого шага сборки, который выполняет: hg update -r TAGNAME

...